Mercurial > kallithea
comparison 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 |
comparison
equal
deleted
inserted
replaced
4029:c9bcfe2d2ade | 4030:647308db13ff |
---|---|
35 <div> | 35 <div> |
36 <div class="gravatar"> | 36 <div class="gravatar"> |
37 <img alt="gravatar" src="${h.gravatar_url(h.email_or_none(c.rhodecode_user.full_contact),32)}"/> | 37 <img alt="gravatar" src="${h.gravatar_url(h.email_or_none(c.rhodecode_user.full_contact),32)}"/> |
38 </div> | 38 </div> |
39 <textarea style="resize:vertical; width:400px;border: 1px solid #ccc;border-radius: 3px;" id="description" name="description" placeholder="${_('Gist description ...')}"></textarea> | 39 <textarea style="resize:vertical; width:400px;border: 1px solid #ccc;border-radius: 3px;" id="description" name="description" placeholder="${_('Gist description ...')}"></textarea> |
40 <div style="padding:0px 0px 0px 42px"> | |
41 <label for='lifetime'>${_('Gist lifetime')}</label> | |
42 ${h.select('lifetime', '', c.lifetime_options)} | |
43 </div> | |
40 </div> | 44 </div> |
41 <div id="body" class="codeblock"> | 45 <div id="body" class="codeblock"> |
42 <div style="padding: 10px 10px 10px 26px;color:#666666"> | 46 <div style="padding: 10px 10px 10px 26px;color:#666666"> |
43 ##<input type="text" value="" size="30" name="filename" id="filename" placeholder="gistfile1.txt"> | 47 ##<input type="text" value="" size="30" name="filename" id="filename" placeholder="gistfile1.txt"> |
44 ${h.text('filename', size=30, placeholder='gistfile1.txt')} | 48 ${h.text('filename', size=30, placeholder='gistfile1.txt')} |
45 ##<input type="text" value="" size="30" name="filename" id="filename" placeholder="gistfile1.txt"> | 49 ##<input type="text" value="" size="30" name="filename" id="filename" placeholder="gistfile1.txt"> |
46 ${h.select('lifetime', '', c.lifetime_options)} | 50 ${h.select('mimetype','plain',[('plain',_('plain'))])} |
47 ${h.select('set_mode','plain',[('plain',_('plain'))])} | |
48 </div> | 51 </div> |
49 <div id="editor_container"> | 52 <div id="editor_container"> |
50 <pre id="editor_pre"></pre> | 53 <pre id="editor_pre"></pre> |
51 <textarea id="editor" name="content" style="display:none"></textarea> | 54 <textarea id="editor" name="content" style="display:none"></textarea> |
52 </div> | 55 </div> |
60 <script type="text/javascript"> | 63 <script type="text/javascript"> |
61 var myCodeMirror = initCodeMirror('editor', ''); | 64 var myCodeMirror = initCodeMirror('editor', ''); |
62 CodeMirror.modeURL = "${h.url('/js/mode/%N/%N.js')}"; | 65 CodeMirror.modeURL = "${h.url('/js/mode/%N/%N.js')}"; |
63 | 66 |
64 //inject new modes | 67 //inject new modes |
65 var modes_select = YUD.get('set_mode'); | 68 var modes_select = YUD.get('mimetype'); |
66 for(var i=0;i<CodeMirror.modeInfo.length;i++){ | 69 for(var i=0;i<CodeMirror.modeInfo.length;i++){ |
67 var m = CodeMirror.modeInfo[i]; | 70 var m = CodeMirror.modeInfo[i]; |
68 var opt = new Option(m.name, m.mode); | 71 var opt = new Option(m.name, m.mime); |
69 modes_select.options[i+1] = opt | 72 YUD.setAttribute(opt, 'mode', m.mode) |
73 modes_select.options[i+1] = opt; | |
70 } | 74 } |
71 YUE.on(modes_select, 'change', function(e){ | 75 YUE.on(modes_select, 'change', function(e){ |
72 var selected = e.currentTarget; | 76 var selected = e.currentTarget; |
73 var new_mode = selected.options[selected.selectedIndex].value; | 77 var node = selected.options[selected.selectedIndex]; |
78 var mimetype = node.value; | |
79 var new_mode = YUD.getAttribute(node, 'mode') | |
74 setCodeMirrorMode(myCodeMirror, new_mode); | 80 setCodeMirrorMode(myCodeMirror, new_mode); |
81 | |
82 var proposed_mimetypes = MIME_TO_EXT[mimetype] || []; | |
83 if(proposed_mimetypes.length < 1){ | |
84 //fallback to text/plain | |
85 proposed_mimetypes = ['.txt'] | |
86 } | |
87 var mt = proposed_mimetypes[0]; | |
88 if(mt[0] == '*'){ | |
89 mt = mt.substr(1) | |
90 } | |
91 YUD.get('filename').value = 'filename1' + mt; | |
75 }) | 92 }) |
76 </script> | 93 </script> |
77 </div> | 94 </div> |
78 </div> | 95 </div> |
79 | 96 |