[FIX] calendar,pos,web: show_application should return a deferred

Also remove unused options dict from WebClient (especially action_post_login)
This commit is contained in:
Aaron Bohy
2016-06-16 13:48:18 +02:00
parent d632679a72
commit 2e29f388c5
5 changed files with 19 additions and 34 deletions
@@ -218,12 +218,11 @@ WebClient.include({
self.get_next_notif();
}, 5 * 60 * 1000);
},
//Override the show_application of addons/web/static/src/js/chrome.js
show_application: function() {
this._super();
this.check_notifications();
return this._super.apply(this, arguments).then(this.check_notifications.bind(this));
},
//Override addons/web/static/src/js/chrome.js
// FIXME: on_logout is no longer used
on_logout: function() {
this._super();
clearInterval(this.intervalNotif);
+1 -1
View File
@@ -43,7 +43,7 @@
web_client._title_changed = function() {};
web_client.show_application = function() {
web_client.action_manager.do_action("pos.ui");
return web_client.action_manager.do_action("pos.ui");
};
$(function () {
@@ -31,13 +31,10 @@ var WebClient = Widget.extend({
this.toggle_fullscreen(event.data.fullscreen);
},
},
init: function(parent, client_options) {
init: function(parent) {
this.client_options = {};
this._super(parent);
this.origin = undefined;
if (client_options) {
_.extend(this.client_options, client_options);
}
this._current_state = null;
this.menu_dm = new utils.DropMisordered();
this.action_mutex = new utils.Mutex();
@@ -65,13 +62,7 @@ var WebClient = Widget.extend({
// though it has no valid session
return $.when();
}
}).then(function () {
if (self.client_options.action) {
self.do_action(self.client_options.action);
delete(self.client_options.action);
}
core.bus.trigger('web_client_ready');
});
}).then(core.bus.trigger.bind(core.bus, 'web_client_ready'));
},
bind_events: function() {
var self = this;
+13 -18
View File
@@ -24,37 +24,32 @@ return AbstractWebClient.extend({
},
show_application: function() {
var self = this;
self.toggle_bars(true);
self.update_logo();
this.toggle_bars(true);
this.set_title();
this.update_logo();
// Menu is rendered server-side thus we don't want the widget to create any dom
self.menu = new Menu(self);
self.menu.setElement(this.$el.parents().find('.oe_application_menu_placeholder'));
self.menu.on('menu_click', this, this.on_menu_action);
this.menu = new Menu(this);
this.menu.setElement(this.$el.parents().find('.oe_application_menu_placeholder'));
this.menu.on('menu_click', this, this.on_menu_action);
// Create the user menu (rendered client-side)
self.user_menu = new UserMenu(self);
this.user_menu = new UserMenu(this);
var $user_menu_placeholder = $('body').find('.oe_user_menu_placeholder').show();
var user_menu_loaded = self.user_menu.appendTo($user_menu_placeholder);
var user_menu_loaded = this.user_menu.appendTo($user_menu_placeholder);
// Create the systray menu (rendered server-side)
self.systray_menu = new SystrayMenu(self);
self.systray_menu.setElement(this.$el.parents().find('.oe_systray'));
var systray_menu_loaded = self.systray_menu.start();
this.systray_menu = new SystrayMenu(this);
this.systray_menu.setElement(this.$el.parents().find('.oe_systray'));
var systray_menu_loaded = this.systray_menu.start();
// Start the menu once both systray and user menus are rendered
// to prevent overflows while loading
$.when(systray_menu_loaded, user_menu_loaded).done(function() {
return $.when(systray_menu_loaded, user_menu_loaded).then(function() {
self.menu.start();
self.bind_hashchange();
});
self.bind_hashchange();
self.set_title();
if (self.client_options.action_post_login) {
self.action_manager.do_action(self.client_options.action_post_login);
delete(self.client_options.action_post_login);
}
},
toggle_bars: function(value) {
this.$('tr:has(td.navbar),.oe_leftbar').toggle(value);
+1 -1
View File
@@ -320,8 +320,8 @@ var Tip = Class.extend({
WebClient.include({
show_application: function() {
this._super();
this.tips_handler = new Tips();
return this._super.apply(this, arguments);
}
});