Jiten (OpenERP) has proposed merging
lp:~openerp-dev/openerp-web/trunk-form-notifier-vda into lp:openerp-web.
Requested reviews:
OpenERP R&D Web Team (openerp-dev-web)
Related bugs:
Bug #986042 in OpenERP Web: "[6.1/Trunk] Web client does not warn of unsaved
changes when navigating away from page"
https://bugs.launchpad.net/openerp-web/+bug/986042
For more details, see:
https://code.launchpad.net/~openerp-dev/openerp-web/trunk-form-notifier-vda/+merge/104228
Fix the issue of Web client does not warn of unsaved changes when navigating
away from page.
--
https://code.launchpad.net/~openerp-dev/openerp-web/trunk-form-notifier-vda/+merge/104228
Your team OpenERP R&D Team is subscribed to branch
lp:~openerp-dev/openerp-web/trunk-form-notifier-vda.
=== modified file 'addons/web/static/src/js/view_form.js'
--- addons/web/static/src/js/view_form.js 2012-04-26 15:28:00 +0000
+++ addons/web/static/src/js/view_form.js 2012-05-01 10:29:19 +0000
@@ -583,7 +583,7 @@
return def.promise();
},
can_be_discarded: function() {
- return !this.$element.is('.oe_form_dirty') || confirm(_t("Warning, the record has been modified, your changes will be discarded."));
+ return !this.$element.is('.oe_form_dirty') || confirm(_t("Warning! \nThe record has been modified, your changes will be discarded.\nAre you sure you want to leave this page ?"));
},
/**
* Triggers saving the form's record. Chooses between creating a new
=== added directory 'addons/web_notification'
=== added file 'addons/web_notification/__init__.py'
=== added file 'addons/web_notification/__openerp__.py'
--- addons/web_notification/__openerp__.py 1970-01-01 00:00:00 +0000
+++ addons/web_notification/__openerp__.py 2012-05-01 10:29:19 +0000
@@ -0,0 +1,11 @@
+{
+ "name": "web notification",
+ "category" : "Hidden",
+ "description":'Openerp web Notication',
+ "version": "2.0",
+ "depends": ['web'],
+ "js": ["static/src/js/notification.js"],
+ "css": [],
+ 'qweb' : [],
+ "auto_install": True
+}
\ No newline at end of file
=== added directory 'addons/web_notification/static'
=== added directory 'addons/web_notification/static/src'
=== added directory 'addons/web_notification/static/src/js'
=== added file 'addons/web_notification/static/src/js/notification.js'
--- addons/web_notification/static/src/js/notification.js 1970-01-01 00:00:00 +0000
+++ addons/web_notification/static/src/js/notification.js 2012-05-01 10:29:19 +0000
@@ -0,0 +1,119 @@
+openerp.web_notification = function(instance) {
+ instance.web.Menu = instance.web.Menu.extend({
+ on_menu_click: function() {
+ var action_manager = this.getParent().action_manager;
+ if(action_manager.inner_viewmanager && action_manager.inner_viewmanager.active_view == 'form') {
+ var active_view = action_manager.inner_viewmanager.active_view,
+ controller = action_manager.inner_viewmanager.views[active_view].controller;
+ if( ! controller.can_be_discarded()) {
+ return false;
+ }
+ }
+ this._super.apply(this, arguments);
+ }
+ });
+
+ instance.web.UserMenu.include({
+ on_menu_settings: function() {
+ var action_manager = this.getParent().action_manager;
+ if(action_manager.inner_viewmanager && action_manager.inner_viewmanager.active_view == 'form') {
+ var active_view = action_manager.inner_viewmanager.active_view,
+ controller = action_manager.inner_viewmanager.views[active_view].controller;
+ if(!controller.can_be_discarded()) {
+ return $.Deferred().reject();
+ }
+ }
+ this._super.apply(this, arguments);
+ },
+
+ on_menu_shortcut: function() {
+ var action_manager = this.getParent().action_manager;
+ if(action_manager.inner_viewmanager && action_manager.inner_viewmanager.active_view == 'form') {
+ var active_view = action_manager.inner_viewmanager.active_view,
+ controller = action_manager.inner_viewmanager.views[active_view].controller;
+ if(!controller.can_be_discarded()) {
+ return $.Deferred().reject();
+ }
+ }
+ this._super.apply(this, arguments);
+ }
+ });
+
+ instance.web.ViewManager.include({
+ initialize_process_view: function() {
+ if(this.active_view === 'form') {
+ var controller = this.views[this.active_view].controller;
+ var def = $.Deferred();
+ if(!controller.can_be_discarded()) {
+ return def.reject();
+ } else {
+ controller.$element.removeClass('oe_form_dirty');
+ }
+ }
+ return this._super.apply(this, arguments);
+ },
+ on_mode_switch: function(view_type, no_store) {
+ if(this.active_view === 'form') {
+ var controller = this.views[this.active_view].controller;
+ var def = $.Deferred();
+ if(!no_store && !controller.can_be_discarded()) {
+ return def.reject();
+ }
+ }
+ return this._super.apply(this, arguments);
+ }
+ });
+
+ instance.web.FormView.include({
+ do_save: function() {
+ if(this.dataset.index === null & !this.dataset.o2m) {
+ this.$element.removeClass('oe_form_dirty');
+ }
+ return this._super.apply(this, arguments);
+ }
+ });
+
+
+ instance.web.View.include({
+ on_sidebar_translate: function() {
+ if(this.getParent().active_view === 'form') {
+ var def = $.Deferred();
+ if(!this.can_be_discarded()) {
+ return def.reject();
+ }
+ }
+ return this._super.apply(this, arguments);
+ }
+ });
+
+ instance.web.Sidebar.include({
+ on_item_action_clicked: function() {
+ var controller = this.getParent();
+ if(controller.can_be_discarded) {
+ var def = $.Deferred();
+ if(!controller.can_be_discarded()) {
+ return def.reject();
+ }
+ }
+ this._super.apply(this, arguments);
+ }
+ });
+
+ var base_logout = instance.webclient.on_logout;
+
+ instance.webclient.on_logout = function() {
+ var action_manager = openerp.webclient.action_manager;
+ if(action_manager.inner_viewmanager && action_manager.inner_viewmanager.active_view == 'form') {
+ var active_view = action_manager.inner_viewmanager.active_view,
+ controller = action_manager.inner_viewmanager.views[active_view].controller;
+ if(!controller.can_be_discarded()) {
+ return $.Deferred().reject();
+ } else {
+ base_logout.apply(this, arguments);
+ }
+ } else {
+ base_logout.apply(this, arguments);
+ }
+ }
+}
+
_______________________________________________
Mailing list: https://launchpad.net/~openerp-dev-gtk
Post to : [email protected]
Unsubscribe : https://launchpad.net/~openerp-dev-gtk
More help : https://help.launchpad.net/ListHelp