Select option added in editor config button to enable/disable autoclosetag in html mode
This commit is contained in:
@@ -563,7 +563,7 @@ def edit():
|
||||
# Load json only if it is ajax edited...
|
||||
app = get_app(request.vars.app)
|
||||
app_path = apath(app, r=request)
|
||||
editor_defaults={'theme':'web2py', 'editor': 'default'}
|
||||
editor_defaults={'theme':'web2py', 'editor': 'default', 'closetag': 'true'}
|
||||
config = Config(os.path.join(request.folder, 'settings.cfg'),
|
||||
section='editor', default_values=editor_defaults)
|
||||
preferences = config.read()
|
||||
@@ -589,7 +589,7 @@ def edit():
|
||||
response.headers["web2py-component-flash"] = T('Preferences saved correctly')
|
||||
else:
|
||||
response.headers["web2py-component-flash"] = T('Preferences saved on session only')
|
||||
response.headers["web2py-component-command"] = "update_theme('%s');update_editor('%s');jQuery('a[href=#editor_settings] button.close').click();" % (config.read()['theme'], config.read()['editor'])
|
||||
response.headers["web2py-component-command"] = "update_editor('%s', '%s', '%s');jQuery('a[href=#editor_settings] button.close').click();" % (config.read()['theme'], config.read()['editor'], config.read()['closetag'])
|
||||
return
|
||||
else:
|
||||
details = {'filename':'settings', 'id':'editor_settings', 'force': False}
|
||||
|
||||
@@ -1,6 +1,10 @@
|
||||
[DEFAULT]
|
||||
theme = web2py
|
||||
closetag = true
|
||||
editor = default
|
||||
|
||||
[editor]
|
||||
theme = web2py
|
||||
editor = default
|
||||
closetag = true
|
||||
|
||||
|
||||
@@ -18,7 +18,6 @@
|
||||
<link rel="stylesheet" href="{{=cm}}/lib/codemirror.css">
|
||||
<link rel="stylesheet" href="{{='%s/theme/%s.css' % (cm, editor_settings['theme'])}}">
|
||||
<script src="{{=cm}}/lib/codemirror.js"></script>
|
||||
<script src="{{=cm}}/mode/clike/clike.js"></script>
|
||||
<script src="{{=cm}}/addon/edit/matchbrackets.js"></script>
|
||||
<script src="{{=cm}}/addon/edit/closetag.js"></script>
|
||||
{{if editor_settings['editor'] != 'default':}}<script src="{{='%s/keymap/%s.js' % (cm, editor_settings['editor'])}}"></script>{{pass}}
|
||||
@@ -45,6 +44,12 @@
|
||||
<script type="text/javascript">
|
||||
var current_theme = "{{=editor_settings['theme']}}"; //Default theme
|
||||
var current_editor = "{{=editor_settings['editor']}}"; //Default editor
|
||||
{{if editor_settings['closetag'] == 'true':}}
|
||||
var current_closetag = true; //Default closetag
|
||||
{{else:}}
|
||||
var current_closetag = false; //Default closetag
|
||||
{{pass}}
|
||||
|
||||
var current_font_incr = 0; // Default font-size, 0 means don't set
|
||||
jQuery(document).on('shown click', 'a[data-toggle="tab"]', function (e) {
|
||||
var tab_id = jQuery(this).attr('href');
|
||||
@@ -97,23 +102,15 @@ jQuery(document).on('click', 'a.editor_filelink, a#editor_settingslink', functio
|
||||
load_file(url);
|
||||
});
|
||||
|
||||
function update_theme(name) {
|
||||
var href = "{{="%s/theme/" % cm}}" + name + ".css";
|
||||
function update_editor(editor_theme, editor_name, editor_closetag) {
|
||||
var href = "{{="%s/theme/" % cm}}" + editor_theme + ".css";
|
||||
var link = jQuery("<link>");
|
||||
link.attr({
|
||||
type: 'text/css',
|
||||
rel: 'stylesheet',
|
||||
href: href
|
||||
});
|
||||
jQuery("head").append( link );
|
||||
jQuery('textarea[name="data"]') .each(function(id, ta) {
|
||||
editor = jQuery(ta).data('editor');
|
||||
editor.setOption("theme", name);
|
||||
});
|
||||
current_theme = name;
|
||||
}
|
||||
|
||||
function update_editor(editor_name) {
|
||||
jQuery("head").append( link );
|
||||
if (editor_name !='default'){
|
||||
var src = "{{='%s/keymap/' % cm}}" + editor_name + ".js";
|
||||
//var src = "/admin/static/codemirror/keymap/" + editor_name + ".js";
|
||||
@@ -122,13 +119,19 @@ function update_editor(editor_name) {
|
||||
src: src
|
||||
});
|
||||
jQuery("head").append( script );
|
||||
}
|
||||
current_theme = editor_theme;
|
||||
current_editor = editor_name;
|
||||
switch (editor_closetag){
|
||||
case 'true': current_closetag = true; break;
|
||||
case 'false': current_closetag = false;
|
||||
}
|
||||
jQuery('textarea[name="data"]') .each(function(id, ta) {
|
||||
editor = jQuery(ta).data('editor');
|
||||
editor.setOption("keyMap", editor_name);
|
||||
editor.setOption("theme", current_theme);
|
||||
editor.setOption("keyMap", current_editor);
|
||||
editor.setOption("autoCloseTags", current_closetag);
|
||||
});
|
||||
current_editor = editor_name;
|
||||
|
||||
}
|
||||
|
||||
// incr/decr editor font-size
|
||||
@@ -139,7 +142,7 @@ jQuery(document).on('click', 'a.font_button', function (e) {
|
||||
switch (id) {
|
||||
case 'incr': new_incr = 2; break;
|
||||
case 'decr': new_incr = -2; break;
|
||||
case 'default': new_incr = 0; break;
|
||||
case 'default': new_incr = 0;
|
||||
}
|
||||
jQuery('textarea[name="data"]').each(function(id, ta) {
|
||||
editor = jQuery(ta).data('editor');
|
||||
|
||||
@@ -50,7 +50,7 @@
|
||||
lineNumbers: true,
|
||||
indentUnit: 4,
|
||||
styleActiveLine: true,
|
||||
autoCloseTags: true,
|
||||
autoCloseTags: current_closetag,
|
||||
theme: current_theme,
|
||||
tabMode: "shift",
|
||||
lineWrapping: true,
|
||||
|
||||
@@ -7,12 +7,15 @@
|
||||
}}
|
||||
{{themes = [f[:-4] for f in listfiles('admin', "static/codemirror/theme", regexp='.*\.css$' )]}}
|
||||
{{editors = ['default', 'vim', 'emacs']}}
|
||||
{{closetag = ['true', 'false']}}
|
||||
<form id="editor_settings_form" class="form-horizontal">
|
||||
<div class="control-group">
|
||||
<label class="control-label" for="selectTheme">{{=T('Theme')}}</label>
|
||||
<div class="controls">{{=SELECT(themes, value=editor_settings['theme'], _name="theme" )}}</div>
|
||||
<label class="control-label" for="selectEditor">{{=T('Editor')}}</label>
|
||||
<div class="controls">{{=SELECT(editors, value=editor_settings['editor'], _name="editor" )}}</div>
|
||||
<label class="control-label" for="closeTag">{{=T('Enable Close-Tag')}}</label>
|
||||
<div class="controls">{{=SELECT(closetag, value=editor_settings['closetag'], _name="closetag" )}}</div>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<div class="controls"><button type="submit" class="disabled btn btn-primary">{{=T('Save')}}</button></div>
|
||||
|
||||
Reference in New Issue
Block a user