From 5166a33370fac052f10f277e3b7bd74945eb08f6 Mon Sep 17 00:00:00 2001 From: "James B. Pollack" Date: Tue, 23 Aug 2016 11:53:20 -0700 Subject: [PATCH] autosave after 1.5 s no changes --- scripts/system/html/js/entityProperties.js | 39 ++++++++++++++++------ 1 file changed, 29 insertions(+), 10 deletions(-) diff --git a/scripts/system/html/js/entityProperties.js b/scripts/system/html/js/entityProperties.js index 5d6ce8f97e..9f58fbe04d 100644 --- a/scripts/system/html/js/entityProperties.js +++ b/scripts/system/html/js/entityProperties.js @@ -23,6 +23,8 @@ var ICON_FOR_TYPE = { Multiple: "" } +var EDITOR_TIMEOUT_DURATION = 1500; + var colorPickers = []; debugPrint = function(message) { @@ -347,6 +349,7 @@ function setTextareaScrolling(element) { }; var editor = null; +var editorTimeout = null; function createJSONEditor() { var container = document.getElementById("userdata-editor"); @@ -360,6 +363,15 @@ function createJSONEditor() { }, onError: function(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); @@ -412,7 +424,8 @@ function removeStaticUserData() { }; function setEditorJSON(json) { - return editor.set(json) + editor.set(json) + editor.expandAll(); }; 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() { openEventBridge(function() { var allSections = []; @@ -1064,16 +1090,9 @@ function loaded() { }); - var savedJSONTimer = null; + elSaveUserData.addEventListener("click", function() { - setUserDataFromEditor(); - $('#userdata-saved').show(); - if (savedJSONTimer !== null) { - clearTimeout(savedJSONTimer); - } - savedJSONTimer = setTimeout(function() { - $('#userdata-saved').hide(); - }, 1500) + saveJSONUserData(); }); elUserData.addEventListener('change', createEmitTextPropertyUpdateFunction('userData'));