comparison rhodecode/templates/files/files_add.html @ 4026:a60a0e9092c6

added codemirror edit mode with autodetection
author Marcin Kuzminski <marcin@python-works.com>
date Thu, 20 Jun 2013 23:53:18 +0200
parents 072a37c44f58
children ffd45b185016
comparison
equal deleted inserted replaced
4025:cd23cc2c9961 4026:a60a0e9092c6
4 ${_('%s Files Add') % c.repo_name} &middot; ${c.rhodecode_name} 4 ${_('%s Files Add') % c.repo_name} &middot; ${c.rhodecode_name}
5 </%def> 5 </%def>
6 6
7 <%def name="js_extra()"> 7 <%def name="js_extra()">
8 <script type="text/javascript" src="${h.url('/js/codemirror.js')}"></script> 8 <script type="text/javascript" src="${h.url('/js/codemirror.js')}"></script>
9 <script type="text/javascript" src="${h.url('/js/codemirror_loadmode.js')}"></script>
10 <script type="text/javascript" src="${h.url('/js/mode/meta.js')}"></script>
9 </%def> 11 </%def>
10 <%def name="css_extra()"> 12 <%def name="css_extra()">
11 <link rel="stylesheet" type="text/css" href="${h.url('/css/codemirror.css')}"/> 13 <link rel="stylesheet" type="text/css" href="${h.url('/css/codemirror.css')}"/>
12 </%def> 14 </%def>
13 15
66 </div> 68 </div>
67 </div> 69 </div>
68 </div> 70 </div>
69 </div> 71 </div>
70 <div id="body" class="codeblock"> 72 <div id="body" class="codeblock">
73 <div class="code-header">
74 <label class="commit" for="set_mode">${_('New file mode')}</label>
75 ${h.select('set_mode','plain',[('plain',_('plain'))])}
76 </div>
71 <div id="editor_container"> 77 <div id="editor_container">
72 <pre id="editor_pre"></pre> 78 <pre id="editor_pre"></pre>
73 <textarea id="editor" name="content" style="display:none"></textarea> 79 <textarea id="editor" name="content" style="display:none"></textarea>
74 </div> 80 </div>
75 <div style="padding: 10px;color:#666666">${_('Commit message')}</div> 81 <div style="padding: 10px;color:#666666">${_('Commit message')}</div>
80 ${h.reset('reset',_('Reset'),class_="ui-btn")} 86 ${h.reset('reset',_('Reset'),class_="ui-btn")}
81 </div> 87 </div>
82 ${h.end_form()} 88 ${h.end_form()}
83 <script type="text/javascript"> 89 <script type="text/javascript">
84 var reset_url = "${h.url('files_home',repo_name=c.repo_name,revision=c.cs.raw_id,f_path=c.f_path)}"; 90 var reset_url = "${h.url('files_home',repo_name=c.repo_name,revision=c.cs.raw_id,f_path=c.f_path)}";
85 initCodeMirror('editor',reset_url); 91 var myCodeMirror = initCodeMirror('editor',reset_url);
92 CodeMirror.modeURL = "${h.url('/js/mode/%N/%N.js')}";
93
94 //inject new modes
95 var modes_select = YUD.get('set_mode');
96 for(var i=0;i<CodeMirror.modeInfo.length;i++){
97 var m = CodeMirror.modeInfo[i];
98 var opt = new Option(m.name, m.mode);
99 modes_select.options[i+1] = opt
100 }
101 YUE.on(modes_select, 'change', function(e){
102 var selected = e.currentTarget;
103 var new_mode = selected.options[selected.selectedIndex].value;
104 setCodeMirrorMode(myCodeMirror, new_mode);
105 })
86 </script> 106 </script>
87 </div> 107 </div>
88 </div> 108 </div>
89 </div> 109 </div>
90 </%def> 110 </%def>