summaryrefslogtreecommitdiff
path: root/addons/web/static/src/js/widgets/domain_selector.js
diff options
context:
space:
mode:
authorChristophe Simonis <chs@odoo.com>2018-09-05 18:52:27 +0200
committerChristophe Simonis <chs@odoo.com>2018-09-05 18:52:27 +0200
commitf19e6ce561b80d291cc97bf928c4b84b48ec0f59 (patch)
tree7c5419b940876244f95d055682bbe19429ff4747 /addons/web/static/src/js/widgets/domain_selector.js
parent7700bd172f790858fb4cb9e64b90c9c77d9e5b0a (diff)
parent213759b03e5466f119f52a557d7feefb9d477267 (diff)
[MERGE] forward port branch 11.0 up to 213759b03e5
Diffstat (limited to 'addons/web/static/src/js/widgets/domain_selector.js')
-rw-r--r--addons/web/static/src/js/widgets/domain_selector.js40
1 files changed, 27 insertions, 13 deletions
diff --git a/addons/web/static/src/js/widgets/domain_selector.js b/addons/web/static/src/js/widgets/domain_selector.js
index c5a561b1b77..f7d5e02c5e5 100644
--- a/addons/web/static/src/js/widgets/domain_selector.js
+++ b/addons/web/static/src/js/widgets/domain_selector.js
@@ -177,18 +177,12 @@ var DomainTree = DomainNode.extend({
* operator from the domain.
* @see DomainTree._addFlattenedChildren
*/
- init: function (parent, model, domain, options) {
+ init: function (parent, model, domain) {
this._super.apply(this, arguments);
- try {
- domain = Domain.prototype.stringToArray(domain);
- } catch (err) {
- // TODO: domain could contain `parent` for example, which is
- // currently not handled by the DomainSelector
- this.invalidDomain = true;
- this.children = [];
- return;
+ var parsedDomain = this._parseDomain(domain);
+ if (parsedDomain) {
+ this._initialize(parsedDomain);
}
- this._initialize(domain);
},
/**
* @see DomainNode.start
@@ -386,6 +380,23 @@ var DomainTree = DomainNode.extend({
});
}).bind(this));
},
+ /**
+ * @param {string} domain
+ * @returns {Array[]}
+ */
+ _parseDomain: function (domain) {
+ var parsedDomain = false;
+ try {
+ parsedDomain = Domain.prototype.stringToArray(domain);
+ this.invalidDomain = false;
+ } catch (err) {
+ // TODO: domain could contain `parent` for example, which is
+ // currently not handled by the DomainSelector
+ this.invalidDomain = true;
+ this.children = [];
+ }
+ return parsedDomain;
+ },
//--------------------------------------------------------------------------
// Handlers
@@ -471,14 +482,17 @@ var DomainSelector = DomainTree.extend({
* If the internal domain value was already equal to the given one, this
* does nothing.
*
- * @param {Array|string} domain
+ * @param {string} domain
* @returns {Deferred} resolved when the rerendering is finished
*/
setDomain: function (domain) {
- if (Domain.prototype.arrayToString(domain) === Domain.prototype.arrayToString(this.getDomain())) {
+ if (domain === Domain.prototype.arrayToString(this.getDomain())) {
return $.when();
}
- return this._redraw(domain);
+ var parsedDomain = this._parseDomain(domain);
+ if (parsedDomain) {
+ return this._redraw(domain);
+ }
},
//--------------------------------------------------------------------------