Browse Source

[MERGE] ADDED: Check for unsaved data when closing browser window

pull/4/head
Nhomar Hernandez 11 years ago
parent
commit
07fdb08410
  1. 0
      web_confirm_window_close/__init__.py
  2. 44
      web_confirm_window_close/__openerp__.py
  3. 42
      web_confirm_window_close/static/src/js/web_confirm_window_close.js

0
web_confirm_window_close/__init__.py

44
web_confirm_window_close/__openerp__.py

@ -0,0 +1,44 @@
# -*- coding: utf-8 -*-
##############################################################################
#
# OpenERP, Open Source Management Solution
# This module copyright (C) 2013 Therp BV (<http://therp.nl>).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
{
'name': 'Check for unsaved data when closing browser window',
'description': '''
This addon will show a confirmation dialog when the user closes
a window with an OpenERP form containing unsaved data.
This functionality is browser dependent. Opera ignores it at all,
while Firefox displays a generic confirmation message.
This module is compatible with OpenERP 7.0.
''',
'version': '7.0.1',
'author': 'Therp BV',
'category': 'Usability',
'website': 'https://launchpad.net/web-addons',
'license': 'AGPL-3',
'depends': [
'web',
],
'js': [
'static/src/js/web_confirm_window_close.js'
],
}

42
web_confirm_window_close/static/src/js/web_confirm_window_close.js

@ -0,0 +1,42 @@
/*
Copyright (C) 2013 Therp BV
License: GNU AFFERO GENERAL PUBLIC LICENSE
Version 3 or any later version
*/
openerp.web_confirm_window_close = function(instance) {
instance.web.FormView.include({
init: function(parent, dataset, view_id, options) {
res = this._super(parent, dataset, view_id, options);
instance.web.bus.on('report_uncommitted_changes', this, function(e) {
if (this.$el.is('.oe_form_dirty')) {
e.preventDefault();
}
});
return res;
}
}),
instance.web.WebClient.include({
warning_on_close: function() {
var $e = $.Event('report_uncommitted_changes');
instance.web.bus.trigger('report_uncommitted_changes', $e);
if ($e.isDefaultPrevented()) {
return instance.web._t(
"You have unsaved data in this window. " +
"Do you really want to leave?");
}
},
start: function() {
res = this._super();
$(window).on("beforeunload", _.bind(
this.warning_on_close, this));
return res;
}
});
}
Loading…
Cancel
Save