Browse Source

[ADD] Ask confirmation when closing a form page with unsaved data

pull/2/head
Stefan Rijnhart 12 years ago
parent
commit
79c84e4485
  1. 0
      web_confirm_window_close/__init__.py
  2. 45
      web_confirm_window_close/__openerp__.py
  3. 30
      web_confirm_window_close/static/src/js/web_confirm_window_close.js

0
web_confirm_window_close/__init__.py

45
web_confirm_window_close/__openerp__.py

@ -0,0 +1,45 @@
# -*- 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 6.1.
''',
'version': '6.1.1',
'author': 'Therp BV',
'category': 'Usability',
'website': 'http://therp.nl',
'email': 'info@therp.nl',
'license': 'AGPL-3',
'depends': [
'web',
],
'js': [
'static/src/js/web_confirm_window_close.js'
],
}

30
web_confirm_window_close/static/src/js/web_confirm_window_close.js

@ -0,0 +1,30 @@
/*
Copyright (C) 2013 Therp BV
License: GNU AFFERO GENERAL PUBLIC LICENSE
Version 3 or any later version
*/
openerp.web_confirm_window_close = function(openerp) {
openerp.web.FormView.include({
warning_on_close: function() {
if (this.widget_parent && this.widget_parent.active_view == 'form' && this.$element.hasClass('oe_form_dirty')) {
// Firefox will show a generic confirmation dialog
// When any text is returned here.
return openerp.web._t('You have unsaved data in this window. Do you really want to leave?');
}
},
start: function() {
res = this._super();
if (!(this.embedded_view)) {
$(window).bind('beforeunload', _.bind(
this.warning_on_close, this));
}
return res;
}
});
}
Loading…
Cancel
Save