diff --git a/app/assets/javascripts/projects/canvas.js.erb b/app/assets/javascripts/projects/canvas.js.erb index bd070ad7a..1e5087844 100644 --- a/app/assets/javascripts/projects/canvas.js.erb +++ b/app/assets/javascripts/projects/canvas.js.erb @@ -240,6 +240,7 @@ function initializeEdit() { // Restore draggable position restoreDraggablePosition($("#diagram"), $("#canvas-container")); + preventCanvasReloadOnSave(); $("#canvas-container").submit(function (){ animateSpinner( this, @@ -3108,3 +3109,39 @@ function tutorialAfterCb() { .css({'pointer-events': 'auto'}); }); } + +/** prevent reload page */ +var preventCanvasReloadOnSave = (function() { + 'use strict'; + + function confirmReload() { + if( confirm(I18n.t('experiments.canvas.reload_on_submit')) ) { + return true; + } else { + return false + } + } + + function preventCanvasReload() { + document.onkeydown = function(){ + switch (event.keyCode){ + case 116: + event.returnValue = false; + return confirmReload(); + case 82: + if (event.ctrlKey){ + event.returnValue = false; + return confirmReload(); + } + } + } + } + + function bindToCanvasSave(fun) { + $('#canvas-save').on('click', function() { + fun(); + }) + } + + return function() { bindToCanvasSave(preventCanvasReload) }; +})(); diff --git a/config/locales/en.yml b/config/locales/en.yml index 827016a01..2183553f9 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -682,6 +682,7 @@ en: head_title: "%{project} | Overview" canvas_edit: "Edit experiment" zoom: "Zoom: " + reload_on_submit: "Save action is running. Reloading this page may cause unexpected behavior." modal_manage_tags: head_title: "Manage tags for" subtitle: "Showing tags of task %{module}"