summaryrefslogtreecommitdiff
path: root/addons/web/static/src/js/core
diff options
context:
space:
mode:
Diffstat (limited to 'addons/web/static/src/js/core')
-rw-r--r--addons/web/static/src/js/core/ajax.js13
-rw-r--r--addons/web/static/src/js/core/service_mixins.js9
-rw-r--r--addons/web/static/src/js/core/widget.js2
3 files changed, 19 insertions, 5 deletions
diff --git a/addons/web/static/src/js/core/ajax.js b/addons/web/static/src/js/core/ajax.js
index cf5fe87b2ae..67a46e29d55 100644
--- a/addons/web/static/src/js/core/ajax.js
+++ b/addons/web/static/src/js/core/ajax.js
@@ -428,6 +428,8 @@ var loadXML = (function () {
* Loads a template file according to the given xmlId.
*
* @param {string} [xmlId] - the template xmlId
+ * @param {Object} [context]
+ * additionnal rpc context to be merged with the default one
* @returns {Deferred} resolved with an object
* cssLibs: list of css files
* cssContents: list of style tag contents
@@ -437,16 +439,17 @@ var loadXML = (function () {
var loadAsset = (function () {
var cache = {};
- var load = function loadAsset(xmlId) {
+ var load = function loadAsset(xmlId, context) {
if (cache[xmlId]) {
return Promise.resolve(cache[xmlId]);
}
+ context = _.extend({}, odoo.session_info.user_context, context);
var params = {
args: [xmlId, {
debug: config.isDebug()
}],
kwargs: {
- context: odoo.session_info.user_context,
+ context: context,
},
method: 'render_template',
model: 'ir.ui.view',
@@ -499,10 +502,12 @@ var loadAsset = (function () {
* List of inline styles to add after loading the CSS files.
* @param {string[]} [libs.jsContents=[]]
* List of inline scripts to add after loading the JS files.
+ * @param {Object} [context]
+ * additionnal rpc context to be merged with the default one
*
* @returns {Promise}
*/
-function loadLibs(libs) {
+function loadLibs(libs, context) {
var mutex = new concurrency.Mutex();
mutex.exec(function () {
var defs = [];
@@ -525,7 +530,7 @@ function loadLibs(libs) {
});
mutex.exec(function () {
return _loadArray(libs.assetLibs || [], function (xmlID) {
- return ajax.loadAsset(xmlID).then(function (asset) {
+ return ajax.loadAsset(xmlID, context).then(function (asset) {
return ajax.loadLibs(asset);
});
});
diff --git a/addons/web/static/src/js/core/service_mixins.js b/addons/web/static/src/js/core/service_mixins.js
index 0576364fa7c..9e6a40b494c 100644
--- a/addons/web/static/src/js/core/service_mixins.js
+++ b/addons/web/static/src/js/core/service_mixins.js
@@ -124,6 +124,15 @@ var ServicesMixin = {
return result;
},
/**
+ * @private
+ * @param {Object} libs - @see ajax.loadLibs
+ * @param {Object} [context] - @see ajax.loadLibs
+ * @returns {Promise}
+ */
+ _loadLibs: function (libs, context) {
+ return this.call('ajax', 'loadLibs', libs, context);
+ },
+ /**
* Builds and executes RPC query. Returns a promise resolved with
* the RPC result.
*
diff --git a/addons/web/static/src/js/core/widget.js b/addons/web/static/src/js/core/widget.js
index c6530b7fb7a..a089f8876fe 100644
--- a/addons/web/static/src/js/core/widget.js
+++ b/addons/web/static/src/js/core/widget.js
@@ -148,7 +148,7 @@ var Widget = core.Class.extend(mixins.PropertiesMixin, ServicesMixin, {
}));
}
if (this.jsLibs || this.cssLibs || this.assetLibs) {
- proms.push(ajax.loadLibs(this));
+ proms.push(this._loadLibs(this));
}
return Promise.all(proms);
},