[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:
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user