summaryrefslogtreecommitdiff
path: root/addons/web/static/src
diff options
context:
space:
mode:
Diffstat (limited to 'addons/web/static/src')
-rw-r--r--addons/web/static/src/js/chrome/systray_menu.js41
1 files changed, 21 insertions, 20 deletions
diff --git a/addons/web/static/src/js/chrome/systray_menu.js b/addons/web/static/src/js/chrome/systray_menu.js
index fd214c0b650..cb292a9b90f 100644
--- a/addons/web/static/src/js/chrome/systray_menu.js
+++ b/addons/web/static/src/js/chrome/systray_menu.js
@@ -1,6 +1,7 @@
odoo.define('web.SystrayMenu', function (require) {
"use strict";
+var dom = require('web.dom');
var Widget = require('web.Widget');
/**
@@ -18,35 +19,35 @@ var SystrayMenu = Widget.extend({
this.widgets = [];
},
/**
+ * Instanciate the items and add them into a temporary fragmenet
* @override
- * @returns {Promise}
*/
- start: function () {
+ willStart: function () {
var self = this;
- self._super.apply(this, arguments);
- self._loadItems();
-
- return new Promise(function (resolve, reject) {
- Promise.all(self.items).then(resolve).guardedCatch(resolve);
+ var proms = [];
+ SystrayMenu.Items = _.sortBy(SystrayMenu.Items, function (item) {
+ return !_.isUndefined(item.prototype.sequence) ? item.prototype.sequence : 50;
});
- },
- //--------------------------------------------------------------------------
- // Private
- //--------------------------------------------------------------------------
+ SystrayMenu.Items.forEach(function (WidgetClass) {
+ var cur_systray_item = new WidgetClass(self);
+ self.widgets.push(cur_systray_item);
+ proms.push(cur_systray_item.appendTo($('<div>')));
+ });
+ return this._super.apply(this, arguments).then(function () {
+ return Promise.all(proms);
+ });
+ },
/**
- * Instantiate items, using the classes located in SystrayMenu.items.
+ * Add the instanciated items, using the object located in this.wisgets
*/
- _loadItems: function () {
+ start: function () {
var self = this;
- SystrayMenu.Items = _.sortBy(SystrayMenu.Items, function (item) {
- return !_.isUndefined(item.prototype.sequence) ? item.prototype.sequence : 50;
- });
- _.each(SystrayMenu.Items, function (WidgetClass) {
- var cur_systray_item = new WidgetClass(self);
- self.widgets.push(cur_systray_item);
- self.items.push(cur_systray_item.prependTo(self.$el));
+ return this._super.apply(this, arguments).then(function () {
+ self.widgets.forEach(function (widget) {
+ dom.prepend(self.$el, widget.$el);
+ });
});
},
});