DashMachine/dashmachine/static/js/main/config-editor.js

46 lines
1.5 KiB
JavaScript

sleep(500).then(() => {
init_codemirror('properties');
$("#save-config-btn").on('click', function(e) {
$.ajax({
url: $(this).attr('data-url'),
type: 'POST',
data: {config: config_textarea_codemirror.getValue()},
success: function(data){
if (data.data.msg === "success"){
M.toast({html: 'Config applied successfully'});
$("#config-editor-error-div").closest('.col').addClass('hide');
fetch_settings();
load_apps();
load_card_editor();
load_settings_editor();
} else {
$("#config-editor-error-div").empty();
$("#config-editor-error-div").closest('.col').removeClass('hide');
$("#config-editor-error-div").append(data.data.msg);
}
}
});
});
var ctrlDown = false;
var saved = false;
$("#config-editor-container").keydown(function( e ) {
if (e.key === 'Control') {
ctrlDown = true;
}
if (e.key === 's' && ctrlDown && !saved) {
e.preventDefault(); // prevent save-as-webpage popup
saved = true;
$("#save-config-btn").trigger("click")
}
});
$("#config-editor-container").keyup(function( e ) {
if (e.key === 'Control') {
ctrlDown = false;
}
if (e.key === 's' && saved) {
saved = false;
}
});
});