1 | {{ |
---|
2 | def listfiles(app, dir, regexp='.*\.py$'): |
---|
3 | files = sorted( |
---|
4 | listdir(apath('%(app)s/%(dir)s/' % {'app':app, 'dir':dir}, r=request), regexp)) |
---|
5 | files = [x.replace('\\', '/') for x in files if not x.endswith('.bak')] |
---|
6 | return files |
---|
7 | }} |
---|
8 | {{themes = [f[:-4] for f in listfiles('admin', "static/codemirror/theme", regexp='.*\.css$' )]}} |
---|
9 | {{editors = ['default', 'vim', 'emacs', 'sublime']}} |
---|
10 | |
---|
11 | <form id="editor_settings_form" class="form-horizontal" action=""> |
---|
12 | <div class="control-group"> |
---|
13 | <label class="control-label" for="selectTheme">{{=T('Theme')}}</label> |
---|
14 | <div class="controls">{{=SELECT(themes, value=editor_settings['theme'], _name="theme" )}}</div> |
---|
15 | </div> |
---|
16 | <div class="control-group"> |
---|
17 | <label class="control-label" for="selectEditor">{{=T('Editor')}}</label> |
---|
18 | <div class="controls">{{=SELECT(editors, value=editor_settings['editor'], _name="editor" )}}</div> |
---|
19 | </div> |
---|
20 | <div class="control-group"> |
---|
21 | <label class="control-label" for="closeTag">{{=T('Enable Close-Tag')}}</label> |
---|
22 | <div class="controls">{{=stateWidget("closetag", value=editor_settings['closetag'])}}</div> |
---|
23 | </div> |
---|
24 | <div class="control-group"> |
---|
25 | <label class="control-label" for="codefolding">{{=T('Enable Code Folding')}}</label> |
---|
26 | <div class="controls">{{=stateWidget("codefolding", value=editor_settings['codefolding'])}}</div> |
---|
27 | </div> |
---|
28 | <div class="control-group"> |
---|
29 | <label class="control-label" for="tabwidth">{{=T('Tab width (# characters)')}}</label> |
---|
30 | <div class="controls">{{=SELECT(list(range(1,9, 1)), value=editor_settings['tabwidth'], _name="tabwidth" )}}</div> |
---|
31 | </div> |
---|
32 | <div class="control-group"> |
---|
33 | <label class="control-label" for="indentwithtabs">{{=T('Indent with tabs')}}</label> |
---|
34 | <div class="controls">{{=stateWidget("indentwithtabs", value=editor_settings['indentwithtabs'])}}</div> |
---|
35 | </div> |
---|
36 | <div class="control-group"> |
---|
37 | <label class="control-label" for="linenumbers">{{=T('Display line numbers')}}</label> |
---|
38 | <div class="controls">{{=stateWidget("linenumbers", value=editor_settings['linenumbers'])}}</div> |
---|
39 | </div> |
---|
40 | <div class="control-group"> |
---|
41 | <label class="control-label" for="highlightline">{{=T('Highlight current line')}}</label> |
---|
42 | <div class="controls">{{=stateWidget("highlightline", value=editor_settings['highlightline'])}}</div> |
---|
43 | </div> |
---|
44 | <div class="control-group"> |
---|
45 | <div class="controls"><button type="submit" class="disabled btn btn-primary">{{=T('Save')}}</button></div> |
---|
46 | </div> |
---|
47 | </form> |
---|
48 | <script> |
---|
49 | $.web2py.trap_form("{{=URL('default', 'edit', args=request.args, vars={'settings':True})}}", "editor_settings"); |
---|
50 | $("#editor_settings_form").on('change', 'select, input', function (e) { |
---|
51 | $("#editor_settings_form button[type=submit]").removeClass('disabled'); |
---|
52 | }); |
---|
53 | </script> |
---|