diff --git a/frappe/public/js/frappe/desk.js b/frappe/public/js/frappe/desk.js index 2816c755ad..50c0c57634 100644 --- a/frappe/public/js/frappe/desk.js +++ b/frappe/public/js/frappe/desk.js @@ -45,6 +45,7 @@ frappe.Application = Class.extend({ this.make_nav_bar(); this.set_favicon(); this.setup_analytics(); + this.setup_beforeunload(); frappe.ui.keys.setup(); this.set_rtl(); @@ -480,6 +481,19 @@ frappe.Application = Class.extend({ } }, + setup_beforeunload: function() { + window.onbeforeunload = function () { + var unsaved_docs = []; + for (doctype in locals) { + for (name in locals[doctype]) { + var doc = locals[doctype][name]; + if(doc.__unsaved) { unsaved_docs.push(doc.name); } + } + } + return unsaved_docs.length ? true : false; + }; + }, + show_notes: function() { var me = this; if(frappe.boot.notes.length) {