autosave after 1.5 s no changes

This commit is contained in:
James B. Pollack 2016-08-23 11:53:20 -07:00
parent 6ec429fa0b
commit 5166a33370

View file

@ -23,6 +23,8 @@ var ICON_FOR_TYPE = {
Multiple: "" Multiple: ""
} }
var EDITOR_TIMEOUT_DURATION = 1500;
var colorPickers = []; var colorPickers = [];
debugPrint = function(message) { debugPrint = function(message) {
@ -347,6 +349,7 @@ function setTextareaScrolling(element) {
}; };
var editor = null; var editor = null;
var editorTimeout = null;
function createJSONEditor() { function createJSONEditor() {
var container = document.getElementById("userdata-editor"); var container = document.getElementById("userdata-editor");
@ -360,6 +363,15 @@ function createJSONEditor() {
}, },
onError: function(e) { onError: function(e) {
alert('JSON editor:' + e) alert('JSON editor:' + e)
},
onChange: function() {
if (editorTimeout !== null) {
clearTimeout(editorTimeout);
}
editorTimeout = setTimeout(function() {
saveJSONUserData();
}, EDITOR_TIMEOUT_DURATION)
//saveJSONUserData();
} }
}; };
editor = new JSONEditor(container, options); editor = new JSONEditor(container, options);
@ -412,7 +424,8 @@ function removeStaticUserData() {
}; };
function setEditorJSON(json) { function setEditorJSON(json) {
return editor.set(json) editor.set(json)
editor.expandAll();
}; };
function getEditorJSON() { function getEditorJSON() {
@ -425,6 +438,19 @@ function deleteJSONEditor() {
} }
}; };
var savedJSONTimer = null;
function saveJSONUserData() {
setUserDataFromEditor();
$('#userdata-saved').show();
if (savedJSONTimer !== null) {
clearTimeout(savedJSONTimer);
}
savedJSONTimer = setTimeout(function() {
$('#userdata-saved').hide();
}, 1500)
}
function loaded() { function loaded() {
openEventBridge(function() { openEventBridge(function() {
var allSections = []; var allSections = [];
@ -1064,16 +1090,9 @@ function loaded() {
}); });
var savedJSONTimer = null;
elSaveUserData.addEventListener("click", function() { elSaveUserData.addEventListener("click", function() {
setUserDataFromEditor(); saveJSONUserData();
$('#userdata-saved').show();
if (savedJSONTimer !== null) {
clearTimeout(savedJSONTimer);
}
savedJSONTimer = setTimeout(function() {
$('#userdata-saved').hide();
}, 1500)
}); });
elUserData.addEventListener('change', createEmitTextPropertyUpdateFunction('userData')); elUserData.addEventListener('change', createEmitTextPropertyUpdateFunction('userData'));