]> _ Git - fluidbook-toolbox.git/commitdiff
wip #5459 @0.5
authorVincent Vanwaelscappel <vincent@cubedesigners.com>
Thu, 15 Sep 2022 16:39:35 +0000 (18:39 +0200)
committerVincent Vanwaelscappel <vincent@cubedesigners.com>
Thu, 15 Sep 2022 16:39:35 +0000 (18:39 +0200)
public/packages/fluidbook/toolbox/js/linkeditor.js

index cf6b69bd90b2484d2d028f54b27b6fafae927acf..713db790bfe69b67d244def25181f524d3750c03 100644 (file)
@@ -14,6 +14,8 @@ var movingRuler = null;
 var rasterizePages = splitPages(FLUIDBOOK_DATA.settings.rasterizePages);
 var vectorPages = splitPages(FLUIDBOOK_DATA.settings.vectorPages);
 var unsavedChanges = false;
+var automaticSaveTimeout;
+var runningAutomaticSaveTimeout = false;
 
 $(function () {
     init();
@@ -27,12 +29,11 @@ function init() {
     $(window).on('resize', function () {
         resize();
     });
-    $(window).on('beforeunload',function(){
-        if(unsavedChanges){
+    $(window).on('beforeunload', function () {
+        if (unsavedChanges) {
             return TRANSLATIONS.warning_unsaved_changes;
         }
     })
-
     // Disable scroll by spacebar
     $(window).on('keydown', function (e) {
         if (e.keyCode == 32) {
@@ -178,6 +179,8 @@ function saveLinks(message) {
                 type: "success", text: TRANSLATIONS.success_save,
             }).show();
             unsavedChanges = false;
+            runningAutomaticSaveTimeout=false;
+            clearTimeout(automaticSaveTimeout);
         }, error: function (jqXHR, status, error) {
             new Noty({
                 type: "error", text: TRANSLATIONS.error_save + ' : ' + error,
@@ -186,6 +189,10 @@ function saveLinks(message) {
     });
 }
 
+function automaticSaveLinks() {
+    saveLinks(TRANSLATIONS.automatic_save_message);
+}
+
 function firstPage() {
     changePage(1);
 }
@@ -254,6 +261,12 @@ function deleteRuler(ruler) {
 
 function hasChanged() {
     unsavedChanges = true;
+    if (runningAutomaticSaveTimeout === false) {
+        runningAutomaticSaveTimeout = true;
+        automaticSaveTimeout = setTimeout(function () {
+            automaticSaveLinks();
+        }, 1000 * 5 * 60);
+    }
 }
 
 function moveRuler() {