summaryrefslogtreecommitdiff
path: root/addons/web/static/src/js/core/widget.js
diff options
context:
space:
mode:
Diffstat (limited to 'addons/web/static/src/js/core/widget.js')
-rw-r--r--addons/web/static/src/js/core/widget.js37
1 files changed, 33 insertions, 4 deletions
diff --git a/addons/web/static/src/js/core/widget.js b/addons/web/static/src/js/core/widget.js
index b25cd99587b..d3b9cc1033c 100644
--- a/addons/web/static/src/js/core/widget.js
+++ b/addons/web/static/src/js/core/widget.js
@@ -84,6 +84,32 @@ var Widget = core.Class.extend(mixins.PropertiesMixin, ServicesMixin, {
* @type {null|string[]}
*/
xmlDependencies: null,
+ /**
+ * List of paths to css files that need to be loaded before the widget can
+ * be rendered. This will not induce loading anything that has already been
+ * loaded.
+ *
+ * @type {null|string[]}
+ */
+ cssLibs: null,
+ /**
+ * List of paths to js files that need to be loaded before the widget can
+ * be rendered. This will not induce loading anything that has already been
+ * loaded.
+ *
+ * @type {null|string[]}
+ */
+ jsLibs: null,
+ /**
+ * List of xmlID that need to be loaded before the widget can be rendered.
+ * The content css (link file or style tag) and js (file or inline) of the
+ * assets are loaded.
+ * This will not induce loading anything that has already been
+ * loaded.
+ *
+ * @type {null|string[]}
+ */
+ assetLibs: null,
/**
* Constructs the widget and sets its parent if a parent is given.
@@ -115,13 +141,16 @@ var Widget = core.Class.extend(mixins.PropertiesMixin, ServicesMixin, {
* @returns {Deferred}
*/
willStart: function () {
+ var defs = [];
if (this.xmlDependencies) {
- var defs = _.map(this.xmlDependencies, function (xmlPath) {
+ defs.push.apply(defs, _.map(this.xmlDependencies, function (xmlPath) {
return ajax.loadXML(xmlPath, core.qweb);
- });
- return $.when.apply($, defs);
+ }));
}
- return $.when();
+ if (this.jsLibs || this.cssLibs || this.assetLibs) {
+ defs.push(ajax.loadLibs(this));
+ }
+ return $.when.apply($, defs);
},
/**
* Method called after rendering. Mostly used to bind actions, perform