Mercurial > kallithea
diff rhodecode/templates/admin/gists/new.html @ 4030:647308db13ff
Added codemirror syntax mode in gists.
- autopropose file extension when syntax mode is choosen
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Fri, 21 Jun 2013 02:42:32 +0200 |
parents | 4eaeae84f474 |
children | 35fcc232f652 |
line wrap: on
line diff
--- a/rhodecode/templates/admin/gists/new.html Fri Jun 21 01:11:16 2013 +0200 +++ b/rhodecode/templates/admin/gists/new.html Fri Jun 21 02:42:32 2013 +0200 @@ -37,14 +37,17 @@ <img alt="gravatar" src="${h.gravatar_url(h.email_or_none(c.rhodecode_user.full_contact),32)}"/> </div> <textarea style="resize:vertical; width:400px;border: 1px solid #ccc;border-radius: 3px;" id="description" name="description" placeholder="${_('Gist description ...')}"></textarea> + <div style="padding:0px 0px 0px 42px"> + <label for='lifetime'>${_('Gist lifetime')}</label> + ${h.select('lifetime', '', c.lifetime_options)} + </div> </div> <div id="body" class="codeblock"> <div style="padding: 10px 10px 10px 26px;color:#666666"> ##<input type="text" value="" size="30" name="filename" id="filename" placeholder="gistfile1.txt"> ${h.text('filename', size=30, placeholder='gistfile1.txt')} ##<input type="text" value="" size="30" name="filename" id="filename" placeholder="gistfile1.txt"> - ${h.select('lifetime', '', c.lifetime_options)} - ${h.select('set_mode','plain',[('plain',_('plain'))])} + ${h.select('mimetype','plain',[('plain',_('plain'))])} </div> <div id="editor_container"> <pre id="editor_pre"></pre> @@ -62,16 +65,30 @@ CodeMirror.modeURL = "${h.url('/js/mode/%N/%N.js')}"; //inject new modes - var modes_select = YUD.get('set_mode'); + var modes_select = YUD.get('mimetype'); for(var i=0;i<CodeMirror.modeInfo.length;i++){ var m = CodeMirror.modeInfo[i]; - var opt = new Option(m.name, m.mode); - modes_select.options[i+1] = opt + var opt = new Option(m.name, m.mime); + YUD.setAttribute(opt, 'mode', m.mode) + modes_select.options[i+1] = opt; } YUE.on(modes_select, 'change', function(e){ var selected = e.currentTarget; - var new_mode = selected.options[selected.selectedIndex].value; + var node = selected.options[selected.selectedIndex]; + var mimetype = node.value; + var new_mode = YUD.getAttribute(node, 'mode') setCodeMirrorMode(myCodeMirror, new_mode); + + var proposed_mimetypes = MIME_TO_EXT[mimetype] || []; + if(proposed_mimetypes.length < 1){ + //fallback to text/plain + proposed_mimetypes = ['.txt'] + } + var mt = proposed_mimetypes[0]; + if(mt[0] == '*'){ + mt = mt.substr(1) + } + YUD.get('filename').value = 'filename1' + mt; }) </script> </div>