diff --git a/app/src/main/webapp/WEB-INF/jsps/editor/EntryEditor.jsp b/app/src/main/webapp/WEB-INF/jsps/editor/EntryEditor.jsp index 05548ce930..e58d61539b 100644 --- a/app/src/main/webapp/WEB-INF/jsps/editor/EntryEditor.jsp +++ b/app/src/main/webapp/WEB-INF/jsps/editor/EntryEditor.jsp @@ -124,6 +124,22 @@ textAreaElement.focus(); } } + // Added event listener to confirm once the editor content is changed + $("#edit_content").one("change", function() { + var confirmFunction = function(event) { + // Chrome requires returnValue to be set and original event is found as originalEvent + // see https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers/onbeforeunload#Example + if (event.originalEvent) + event.originalEvent.returnValue = "Are you sure you want to leave?"; + return "Are you sure you want to leave?"; + } + $(window).on("beforeunload", confirmFunction); + + // Remove it if it is form submit + $(this.form).on('submit', function() { + $(window).off("beforeunload", confirmFunction); + }); + }); @@ -146,6 +162,22 @@ height: 400 } ); + // Added event listener to confirm once the editor content is changed + $('#edit_content').on('summernote.change', function(we, contents, $editable) { + var confirmFunction = function(event) { + // Chrome requires returnValue to be set and original event is found as originalEvent + // see https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers/onbeforeunload#Example + if (event.originalEvent) + event.originalEvent.returnValue = "Are you sure you want to leave?"; + return "Are you sure you want to leave?"; + } + $(window).on("beforeunload", confirmFunction); + + // Remove it if it is form submit + $(this.form).on('submit', function() { + $(window).off("beforeunload", confirmFunction); + }); + }); }); function insertMediaFile(toInsert) {