From 367706427455a68b17dff1980aefc7666db38127 Mon Sep 17 00:00:00 2001 From: Christophe Simonis Date: Wed, 5 Oct 2011 17:35:39 +0200 Subject: [IMP] notification: warnings does not expire bzr revid: chs@openerp.com-20111005153539-xxds5bog4p08m2yl --- addons/web/static/src/js/chrome.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'addons/web/static/src/js/chrome.js') diff --git a/addons/web/static/src/js/chrome.js b/addons/web/static/src/js/chrome.js index dae7ba62ceb..579a95b1bad 100644 --- a/addons/web/static/src/js/chrome.js +++ b/addons/web/static/src/js/chrome.js @@ -28,7 +28,9 @@ openerp.web.Notification = openerp.web.Widget.extend(/** @lends openerp.web.Not warn: function(title, text) { this.$element.notify('create', 'oe_notification_alert', { title: title, - text: text + text: text, + }, { + expires: false, }); } }); -- cgit v1.2.3 From 00b269d1c0a3507a01a296587e96bcb9e8e6da86 Mon Sep 17 00:00:00 2001 From: Christophe Simonis Date: Thu, 13 Oct 2011 12:26:53 +0200 Subject: [IMP] nivification of Notification Widget bzr revid: chs@openerp.com-20111013102653-wox1v4o9mfplzt2b --- addons/web/static/src/js/chrome.js | 56 ++++++++++++++++++++++++++------------ 1 file changed, 39 insertions(+), 17 deletions(-) (limited to 'addons/web/static/src/js/chrome.js') diff --git a/addons/web/static/src/js/chrome.js b/addons/web/static/src/js/chrome.js index 579a95b1bad..2b35fae540f 100644 --- a/addons/web/static/src/js/chrome.js +++ b/addons/web/static/src/js/chrome.js @@ -5,15 +5,11 @@ openerp.web.chrome = function(openerp) { var QWeb = openerp.web.qweb; openerp.web.Notification = openerp.web.Widget.extend(/** @lends openerp.web.Notification# */{ - /** - * @constructs openerp.web.Notification - * @extends openerp.web.Widget - * - * @param parent - * @param element_id - */ - init: function(parent, element_id) { - this._super(parent, element_id); + template: 'Notification', + identifier_prefix: 'notification-', + + start: function() { + this._super.apply(this, arguments); this.$element.notify({ speed: 500, expires: 1500 @@ -32,9 +28,36 @@ openerp.web.Notification = openerp.web.Widget.extend(/** @lends openerp.web.Not }, { expires: false, }); - } + }, + + do_notify: function() { this.notify.apply(this, arguments); }, + do_warn: function() {this.warn.apply(this, arguments); }, + +}); + +openerp.web.NotifiableWidget = openerp.web.Widget.extend({ + + init: function(/*arguments*/) { + this._super.apply(this, arguments); + this.notification = new openerp.web.Notification(this); + }, + + start: function() { + this._super.apply(this, arguments); + this.notification.prependTo(this.$element); + }, + + stop: function() { + this.notification.stop(); + return this._super.apply(this, arguments); + }, + + do_notify: function() { this.notification.notify.apply(this.notification, arguments); }, + do_warn: function() { this.notification.warn.apply(this.notification, arguments); }, }); + + openerp.web.Dialog = openerp.web.OldWidget.extend(/** @lends openerp.web.Dialog# */{ dialog_title: "", identifier_prefix: 'dialog', @@ -371,7 +394,7 @@ openerp.web.Database = openerp.web.Widget.extend(/** @lends openerp.web.Database } $db_list.find(':selected').remove(); self.db_list.splice(_.indexOf(self.db_list, db, true), 1); - self.notification.notify("Dropping database", "The database '" + db + "' has been dropped"); + self.do_notify("Dropping database", "The database '" + db + "' has been dropped"); }); } }); @@ -456,7 +479,7 @@ openerp.web.Database = openerp.web.Widget.extend(/** @lends openerp.web.Database self.display_error(result); return; } - self.notification.notify("Changed Password", "Password has been changed successfully"); + self.do_notify("Changed Password", "Password has been changed successfully"); }); } }); @@ -922,7 +945,7 @@ openerp.web.Menu = openerp.web.Widget.extend(/** @lends openerp.web.Menu# */{ } }); -openerp.web.WebClient = openerp.web.Widget.extend(/** @lends openerp.web.WebClient */{ +openerp.web.WebClient = openerp.web.NotifiableWidget.extend(/** @lends openerp.web.WebClient */{ /** * @constructs openerp.web.WebClient * @extends openerp.web.Widget @@ -945,9 +968,6 @@ openerp.web.WebClient = openerp.web.Widget.extend(/** @lends openerp.web.WebClie this.crashmanager = new openerp.web.CrashManager(this); this.crashmanager.start(); - // Do you autorize this ? will be replaced by notify() in controller - openerp.web.Widget.prototype.notification = new openerp.web.Notification(this, "oe_notification"); - this.header = new openerp.web.Header(this); this.login = new openerp.web.Login(this); this.header.on_logout.add(this.login.on_logout); @@ -967,6 +987,7 @@ openerp.web.WebClient = openerp.web.Widget.extend(/** @lends openerp.web.WebClie }, start: function() { + this._super.apply(this, arguments); this.header.appendTo($("#oe_header")); this.session.start(); this.login.appendTo($('#oe_login')); @@ -1060,7 +1081,8 @@ openerp.web.WebClient = openerp.web.Widget.extend(/** @lends openerp.web.WebClie this.action_manager.do_action(action); }, do_about: function() { - } + }, + }); }; -- cgit v1.2.3 From de5c2f58e81fefb2f5d23124f5b44ee00ec16da1 Mon Sep 17 00:00:00 2001 From: Christophe Simonis Date: Thu, 13 Oct 2011 17:03:17 +0200 Subject: [IMP] Notification Widget is now a singleton bzr revid: chs@openerp.com-20111013150317-kzy2h7bz407kiugz --- addons/web/static/src/js/chrome.js | 37 +++++++++++++++---------------------- 1 file changed, 15 insertions(+), 22 deletions(-) (limited to 'addons/web/static/src/js/chrome.js') diff --git a/addons/web/static/src/js/chrome.js b/addons/web/static/src/js/chrome.js index 2b35fae540f..1629dc1de55 100644 --- a/addons/web/static/src/js/chrome.js +++ b/addons/web/static/src/js/chrome.js @@ -8,6 +8,11 @@ openerp.web.Notification = openerp.web.Widget.extend(/** @lends openerp.web.Not template: 'Notification', identifier_prefix: 'notification-', + init: function() { + this._super.apply(this, arguments); + openerp.notification = this; + }, + start: function() { this._super.apply(this, arguments); this.$element.notify({ @@ -29,35 +34,21 @@ openerp.web.Notification = openerp.web.Widget.extend(/** @lends openerp.web.Not expires: false, }); }, - - do_notify: function() { this.notify.apply(this, arguments); }, - do_warn: function() {this.warn.apply(this, arguments); }, }); -openerp.web.NotifiableWidget = openerp.web.Widget.extend({ - - init: function(/*arguments*/) { - this._super.apply(this, arguments); - this.notification = new openerp.web.Notification(this); +openerp.web.Widget.include({ + do_notify: function() { + var n = openerp.notification; + n.notify.apply(n, arguments); }, - - start: function() { - this._super.apply(this, arguments); - this.notification.prependTo(this.$element); - }, - - stop: function() { - this.notification.stop(); - return this._super.apply(this, arguments); + do_warn: function() { + var n = openerp.notification; + n.warn.apply(n, arguments); }, - - do_notify: function() { this.notification.notify.apply(this.notification, arguments); }, - do_warn: function() { this.notification.warn.apply(this.notification, arguments); }, }); - openerp.web.Dialog = openerp.web.OldWidget.extend(/** @lends openerp.web.Dialog# */{ dialog_title: "", identifier_prefix: 'dialog', @@ -945,7 +936,7 @@ openerp.web.Menu = openerp.web.Widget.extend(/** @lends openerp.web.Menu# */{ } }); -openerp.web.WebClient = openerp.web.NotifiableWidget.extend(/** @lends openerp.web.WebClient */{ +openerp.web.WebClient = openerp.web.Widget.extend(/** @lends openerp.web.WebClient */{ /** * @constructs openerp.web.WebClient * @extends openerp.web.Widget @@ -963,6 +954,7 @@ openerp.web.WebClient = openerp.web.NotifiableWidget.extend(/** @lends openerp.w } this.$element.html(QWeb.render("Interface", params)); + this.notification = new openerp.web.Notification(); this.session = new openerp.web.Session(); this.loading = new openerp.web.Loading(this,"oe_loading"); this.crashmanager = new openerp.web.CrashManager(this); @@ -988,6 +980,7 @@ openerp.web.WebClient = openerp.web.NotifiableWidget.extend(/** @lends openerp.w }, start: function() { this._super.apply(this, arguments); + this.notification.prependTo(this.$element); this.header.appendTo($("#oe_header")); this.session.start(); this.login.appendTo($('#oe_login')); -- cgit v1.2.3 From 7dd8fcfad4acc09fa4c7ba92824d0a0e3229c11f Mon Sep 17 00:00:00 2001 From: Christophe Simonis Date: Thu, 13 Oct 2011 17:30:23 +0200 Subject: [IMP] do_notify and do_warn bubble the messages to the parent widget bzr revid: chs@openerp.com-20111013153023-xzu2y4j5qzuqem1e --- addons/web/static/src/js/chrome.js | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) (limited to 'addons/web/static/src/js/chrome.js') diff --git a/addons/web/static/src/js/chrome.js b/addons/web/static/src/js/chrome.js index 1629dc1de55..234d99fdb34 100644 --- a/addons/web/static/src/js/chrome.js +++ b/addons/web/static/src/js/chrome.js @@ -39,12 +39,14 @@ openerp.web.Notification = openerp.web.Widget.extend(/** @lends openerp.web.Not openerp.web.Widget.include({ do_notify: function() { - var n = openerp.notification; - n.notify.apply(n, arguments); + if(this.widget_parent) { + this.widget_parent.do_notify.apply(this.widget_parent, arguments); + } }, do_warn: function() { - var n = openerp.notification; - n.warn.apply(n, arguments); + if(this.widget_parent) { + this.widget_parent.do_warn.apply(this.widget_parent, arguments); + } }, }); @@ -986,6 +988,16 @@ openerp.web.WebClient = openerp.web.Widget.extend(/** @lends openerp.web.WebClie this.login.appendTo($('#oe_login')); this.menu.start(); }, + + do_notify: function() { + var n = this.notification; + n.notify.apply(n, arguments); + }, + do_warn: function() { + var n = this.notification; + n.warn.apply(n, arguments); + }, + on_logged: function() { this.menu.do_reload(); if(this.action_manager) -- cgit v1.2.3 From 57d635f44df6767c849bfaf6e8e9c27a31e9cfa3 Mon Sep 17 00:00:00 2001 From: Antony Lesuisse Date: Fri, 14 Oct 2011 01:20:54 +0200 Subject: [FIX] soft reload after module installation lp bug: https://launchpad.net/bugs/873362 fixed bzr revid: al@openerp.com-20111013232054-2i5ptzfurjc429zw --- addons/web/static/src/js/chrome.js | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'addons/web/static/src/js/chrome.js') diff --git a/addons/web/static/src/js/chrome.js b/addons/web/static/src/js/chrome.js index dae7ba62ceb..521dc6edc2b 100644 --- a/addons/web/static/src/js/chrome.js +++ b/addons/web/static/src/js/chrome.js @@ -970,6 +970,10 @@ openerp.web.WebClient = openerp.web.Widget.extend(/** @lends openerp.web.WebClie this.login.appendTo($('#oe_login')); this.menu.start(); }, + do_reload: function() { + this.session.session_restore(); + this.menu.do_reload(); + }, on_logged: function() { this.menu.do_reload(); if(this.action_manager) -- cgit v1.2.3 From 59b21310e899e7d75eeb6a906af61f8511ef45ce Mon Sep 17 00:00:00 2001 From: Christophe Simonis Date: Fri, 14 Oct 2011 17:49:50 +0200 Subject: [FIX] typo bzr revid: chs@openerp.com-20111014154950-5c805sb1dcff98l4 --- addons/web/static/src/js/chrome.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'addons/web/static/src/js/chrome.js') diff --git a/addons/web/static/src/js/chrome.js b/addons/web/static/src/js/chrome.js index 588c065b03b..69c9466a9ce 100644 --- a/addons/web/static/src/js/chrome.js +++ b/addons/web/static/src/js/chrome.js @@ -466,7 +466,7 @@ openerp.web.Database = openerp.web.Widget.extend(/** @lends openerp.web.Database }); openerp.web.Login = openerp.web.Widget.extend(/** @lends openerp.web.Login# */{ - remember_creditentials: true, + remember_credentials: true, template: "Login", identifier_prefix: 'oe-app-login-', @@ -484,7 +484,7 @@ openerp.web.Login = openerp.web.Widget.extend(/** @lends openerp.web.Login# */{ this.selected_db = null; this.selected_login = null; - if (this.has_local_storage && this.remember_creditentials) { + if (this.has_local_storage && this.remember_credentials) { this.selected_db = localStorage.getItem('last_db_login_success'); this.selected_login = localStorage.getItem('last_login_login_success'); if (jQuery.deparam(jQuery.param.querystring()).debug != undefined) { @@ -550,7 +550,7 @@ openerp.web.Login = openerp.web.Widget.extend(/** @lends openerp.web.Login# */{ this.session.session_login(db, login, password, function() { if(self.session.session_is_valid()) { if (self.has_local_storage) { - if(self.remember_creditentials) { + if(self.remember_credentials) { localStorage.setItem('last_db_login_success', db); localStorage.setItem('last_login_login_success', login); if (jQuery.deparam(jQuery.param.querystring()).debug != undefined) { -- cgit v1.2.3 From edb6f5708854f3a1ec8220fd790a320b87e366ff Mon Sep 17 00:00:00 2001 From: Fabien Meghazi Date: Mon, 17 Oct 2011 17:24:00 +0200 Subject: [FIX] Crashmanager only display one error at a time, closing the previous one. (stupid fme) bzr revid: fme@openerp.com-20111017152400-3ntwfzzxugkzrf0w --- addons/web/static/src/js/chrome.js | 55 +++++++++++++++++++++----------------- 1 file changed, 30 insertions(+), 25 deletions(-) (limited to 'addons/web/static/src/js/chrome.js') diff --git a/addons/web/static/src/js/chrome.js b/addons/web/static/src/js/chrome.js index 69c9466a9ce..a74c2cd4f8e 100644 --- a/addons/web/static/src/js/chrome.js +++ b/addons/web/static/src/js/chrome.js @@ -136,21 +136,11 @@ openerp.web.Dialog = openerp.web.OldWidget.extend(/** @lends openerp.web.Dialog# } }); -openerp.web.CrashManager = openerp.web.Dialog.extend(/** @lends openerp.web.CrashManager# */{ - identifier_prefix: 'dialog_crash', - /** - * @constructs opener.web.CrashManager - * @extends openerp.web.Dialog - * - * @param parent - */ +openerp.web.CrashManager = openerp.web.SessionAware.extend({ init: function(parent) { - this._super(parent); + this._super((parent || {}).session); this.session.on_rpc_error.add(this.on_rpc_error); }, - on_button_Ok: function() { - this.close(); - }, on_rpc_error: function(error) { this.error = error; if (error.data.fault_code) { @@ -161,20 +151,36 @@ openerp.web.CrashManager = openerp.web.Dialog.extend(/** @lends openerp.web.Cras } } if (error.code === 200 && error.type) { - this.dialog_title = "OpenERP " + _.capitalize(error.type); - this.template = 'DialogWarning'; - this.open({ - width: 'auto', - height: 'auto' - }); + this.on_managed_error(error); } else { - this.dialog_title = "OpenERP Error"; - this.template = 'DialogTraceback'; - this.open({ - width: 'auto', - height: 'auto' - }); + this.on_traceback(error); } + }, + on_managed_error: function(error) { + $('
' + QWeb.render('DialogWarning', {error: error}) + '
').dialog({ + title: "OpenERP " + _.capitalize(error.type), + buttons: { + Ok: function() { + $(this).dialog("close"); + } + } + }); + }, + on_traceback: function(error) { + var dialog = new openerp.web.Dialog(this, { + title: "OpenERP " + _.capitalize(error.type), + autoOpen: true, + width: '90%', + height: '90%', + min_width: '800px', + min_height: '600px', + buttons: { + Ok: function() { + $(this).dialog("close"); + } + } + }).start(); + dialog.$element.html(QWeb.render('DialogTraceback', {error: error})); } }); @@ -946,7 +952,6 @@ openerp.web.WebClient = openerp.web.Widget.extend(/** @lends openerp.web.WebClie this.session = new openerp.web.Session(); this.loading = new openerp.web.Loading(this,"oe_loading"); this.crashmanager = new openerp.web.CrashManager(this); - this.crashmanager.start(); this.header = new openerp.web.Header(this); this.login = new openerp.web.Login(this); -- cgit v1.2.3 From 066f4425f059bd287b56d9b4a9d69e3b86f30a0f Mon Sep 17 00:00:00 2001 From: Christophe Simonis Date: Mon, 10 Oct 2011 14:31:16 +0200 Subject: [IMP] allow overwrite of default dbname and login from querystring bzr revid: chs@openerp.com-20111010123116-8ibjek78ub83u7mp --- addons/web/static/src/js/chrome.js | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'addons/web/static/src/js/chrome.js') diff --git a/addons/web/static/src/js/chrome.js b/addons/web/static/src/js/chrome.js index 1955298ba27..399751f00c0 100644 --- a/addons/web/static/src/js/chrome.js +++ b/addons/web/static/src/js/chrome.js @@ -487,6 +487,15 @@ openerp.web.Login = openerp.web.Widget.extend(/** @lends openerp.web.Login# */{ this.selected_password = localStorage.getItem('last_password_login_success'); } } + + var qs = jQuery.deparam(jQuery.param.querystring()); + if (qs.db) { + this.selected_db = qs.db; + } + if (qs.login) { + this.selected_login = qs.login; + } + }, start: function() { var self = this; -- cgit v1.2.3 From 7a8d4be486e38b840329351308b45c00d1057ab1 Mon Sep 17 00:00:00 2001 From: Fabien Meghazi Date: Wed, 12 Oct 2011 11:30:31 +0200 Subject: [FIX] Menus, manual triggering of menus does not work when folded bzr revid: fme@openerp.com-20111012093031-3htkczhktnascdcg --- addons/web/static/src/js/chrome.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'addons/web/static/src/js/chrome.js') diff --git a/addons/web/static/src/js/chrome.js b/addons/web/static/src/js/chrome.js index 1955298ba27..3b08cc9d36d 100644 --- a/addons/web/static/src/js/chrome.js +++ b/addons/web/static/src/js/chrome.js @@ -823,7 +823,9 @@ openerp.web.Menu = openerp.web.Widget.extend(/** @lends openerp.web.Menu# */{ this.session.active_id = id; this.rpc('/web/menu/action', {'menu_id': id}, this.on_menu_action_loaded); } - ev.stopPropagation(); + if (ev) { + ev.stopPropagation(); + } return false; }, do_menu_click: function($clicked_menu, manual) { @@ -866,6 +868,7 @@ openerp.web.Menu = openerp.web.Widget.extend(/** @lends openerp.web.Menu# */{ $sub_menu.hide(); return true; } + return manual; } else { return true; } -- cgit v1.2.3 From a58395f2af3181bf94738a6cfcfa7c691172437a Mon Sep 17 00:00:00 2001 From: Christophe Simonis Date: Thu, 13 Oct 2011 10:14:45 +0200 Subject: [FIX] do no load the menu until a session is active [IMP] make menu loading hookable bzr revid: chs@openerp.com-20111013081445-1xzvodzrtxvacbzz --- addons/web/static/src/js/chrome.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'addons/web/static/src/js/chrome.js') diff --git a/addons/web/static/src/js/chrome.js b/addons/web/static/src/js/chrome.js index 1742bd91c95..dae7ba62ceb 100644 --- a/addons/web/static/src/js/chrome.js +++ b/addons/web/static/src/js/chrome.js @@ -788,9 +788,8 @@ openerp.web.Menu = openerp.web.Widget.extend(/** @lends openerp.web.Menu# */{ }, start: function() { this.$secondary_menu.addClass(this.folded ? 'oe_folded' : 'oe_unfolded'); - this.reload(); }, - reload: function() { + do_reload: function() { this.rpc("/web/menu/load", {}, this.on_loaded); }, on_loaded: function(data) { @@ -972,6 +971,7 @@ openerp.web.WebClient = openerp.web.Widget.extend(/** @lends openerp.web.WebClie this.menu.start(); }, on_logged: function() { + this.menu.do_reload(); if(this.action_manager) this.action_manager.stop(); this.action_manager = new openerp.web.ActionManager(this); -- cgit v1.2.3 From ddb9a163770f30625dd9c45c5fca38e9a750cc50 Mon Sep 17 00:00:00 2001 From: Christophe Simonis Date: Thu, 13 Oct 2011 11:17:38 +0200 Subject: [IMP] change cursor when loading bzr revid: chs@openerp.com-20111013091738-l1vmy572zic3wg7i --- addons/web/static/src/js/chrome.js | 2 ++ 1 file changed, 2 insertions(+) (limited to 'addons/web/static/src/js/chrome.js') diff --git a/addons/web/static/src/js/chrome.js b/addons/web/static/src/js/chrome.js index dae7ba62ceb..7b3dc54b1c2 100644 --- a/addons/web/static/src/js/chrome.js +++ b/addons/web/static/src/js/chrome.js @@ -194,8 +194,10 @@ openerp.web.Loading = openerp.web.Widget.extend(/** @lends openerp.web.Loading# //this.$element.html(QWeb.render("Loading", {})); this.$element.html("Loading ("+this.count+")"); this.$element.show(); + this.widget_parent.$element.addClass('loading'); } else { this.$element.fadeOut(); + this.widget_parent.$element.removeClass('loading'); } } }); -- cgit v1.2.3