Mohammed Shekha(Open ERP) has proposed merging
lp:~openerp-dev/openerp-web/6.1-opw-574224-msh into lp:openerp-web/6.1.
Requested reviews:
OpenERP Core Team (openerp)
For more details, see:
https://code.launchpad.net/~openerp-dev/openerp-web/6.1-opw-574224-msh/+merge/105957
Hello,
Improved the notification message, when record is unsaved which was not working
when user clicks on home, company logo, menu, switch view and on process view
button.
Hence checked whether form is dirty or not using can_be_discarded method on
each of above event so that it can show the notification about the record
changed.
Thanks.
--
https://code.launchpad.net/~openerp-dev/openerp-web/6.1-opw-574224-msh/+merge/105957
Your team OpenERP R&D Team is subscribed to branch
lp:~openerp-dev/openerp-web/6.1-opw-574224-msh.
=== modified file 'addons/web/static/src/js/chrome.js'
--- addons/web/static/src/js/chrome.js 2012-04-25 21:19:12 +0000
+++ addons/web/static/src/js/chrome.js 2012-05-16 11:37:17 +0000
@@ -645,6 +645,8 @@
return func(self.session.uid, ["name", "company_id"]).pipe(function(res) {
self.$content = $(QWeb.render("Header-content", {widget: self, user: res}));
self.$content.appendTo(self.$element);
+ self.$element.find(".home").click(self.on_home);
+ self.$element.find(".company_logo_link").click(self.on_company_logo);
self.$element.find(".logout").click(self.on_logout);
self.$element.find("a.preferences").click(self.on_preferences);
self.$element.find(".about").click(self.on_about);
@@ -653,6 +655,20 @@
};
this.update_promise = this.update_promise.pipe(fct, fct);
},
+ on_home: function(){
+ inner_viewmanager = this.widget_parent.action_manager.inner_viewmanager
+ if(inner_viewmanager && inner_viewmanager.active_view == 'form' && !inner_viewmanager.views['form'].controller.can_be_discarded()){
+ return false;
+ }
+ window.location.href = "/" + this.qs
+ },
+ on_company_logo: function(){
+ inner_viewmanager = this.widget_parent.action_manager.inner_viewmanager
+ if(inner_viewmanager && inner_viewmanager.active_view == 'form' && !inner_viewmanager.views['form'].controller.can_be_discarded()){
+ return false;
+ }
+ window.location.href = "/" + this.qs
+ },
on_about: function() {
var self = this;
self.rpc("/web/webclient/version_info", {}).then(function(res) {
@@ -711,11 +727,7 @@
e.stopPropagation();
var id = $(this).data('id');
self.session.active_id = id;
- self.rpc('/web/menu/action', {'menu_id':id}, function(ir_menu_data) {
- if (ir_menu_data.action.length){
- self.on_action(ir_menu_data.action[0][2]);
- }
- });
+ self.widget_parent.menu.on_menu_click(e,id)
});
});
},
@@ -889,6 +901,11 @@
'div[data-menu-parent=' + $primary_menu.data('menu') + ']').addClass('active').toggle(!this.folded);
},
on_menu_click: function(ev, id) {
+
+ var inner_viewmanager = this.widget_parent.action_manager.inner_viewmanager;
+ if(inner_viewmanager && inner_viewmanager.active_view == 'form' && !inner_viewmanager.views['form'].controller.can_be_discarded()){
+ return false;
+ }
id = id || 0;
var $clicked_menu, manual = false;
@@ -1124,6 +1141,10 @@
},
on_logout: function() {
var self = this;
+ inner_viewmanager = this.action_manager.inner_viewmanager
+ if(inner_viewmanager && inner_viewmanager.active_view == 'form' && !inner_viewmanager.views['form'].controller.can_be_discarded()){
+ return false;
+ }
this.session.session_logout().then(function () {
$(window).unbind('hashchange', self.on_hashchange);
self.do_push_state({});
=== modified file 'addons/web/static/src/js/views.js'
--- addons/web/static/src/js/views.js 2012-03-06 20:59:55 +0000
+++ addons/web/static/src/js/views.js 2012-05-16 11:37:17 +0000
@@ -259,6 +259,9 @@
this._super();
var self = this;
this.$element.find('.oe_vm_switch button').click(function() {
+ if(self.active_view == 'form' && !self.views['form'].controller.can_be_discarded()){
+ return $.Deferred().reject();
+ }
self.on_mode_switch($(this).data('view-type'));
});
var views_ids = {};
=== modified file 'addons/web/static/src/xml/base.xml'
--- addons/web/static/src/xml/base.xml 2012-05-15 10:45:20 +0000
+++ addons/web/static/src/xml/base.xml 2012-05-16 11:37:17 +0000
@@ -337,7 +337,7 @@
</t>
<t t-name="Header">
<div>
- <a t-att-href="'/' + widget.qs" class="company_logo_link">
+ <a href="javascript:void(0)" class="company_logo_link">
<div class="company_logo" />
</a>
</div>
@@ -350,7 +350,7 @@
<div class="header_corner">
<ul class="block">
<li>
- <a t-att-href="'/' + widget.qs" title="Home" class="home"><img t-att-src='_s + "/web/static/src/img/header-home.png"' width="16" height="16" border="0"/></a>
+ <a href="javascript:void(0)" title="Home" class="home"><img t-att-src='_s + "/web/static/src/img/header-home.png"' width="16" height="16" border="0"/></a>
</li>
<li class="preferences">
<a href="javascript:void(0)" title="Preferences" class="preferences"><img t-att-src='_s + "/web/static/src/img/header-preferences.png"' width="16" height="16" border="0"/></a>
=== modified file 'addons/web_process/static/src/js/process.js'
--- addons/web_process/static/src/js/process.js 2012-01-31 10:58:46 +0000
+++ addons/web_process/static/src/js/process.js 2012-05-16 11:37:17 +0000
@@ -27,6 +27,12 @@
},
initialize_process_view: function() {
var self = this;
+
+ if(this.active_view == 'form' && !this.views['form'].controller.can_be_discarded()){
+ return $.Deferred().reject();
+ }
+ this.views['form'].controller.$element.removeClass('oe_form_dirty');
+
this.record_id = false;
if(this.active_view == 'page' || this.active_view == 'form') {
this.record_id = this.views[this.active_view].controller.datarecord.id;
_______________________________________________
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