diff options
Diffstat (limited to 'addons/web/static/src/js/core')
| -rw-r--r-- | addons/web/static/src/js/core/domain.js | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/addons/web/static/src/js/core/domain.js b/addons/web/static/src/js/core/domain.js index dbf2b18eb40..a1d6e7e7c49 100644 --- a/addons/web/static/src/js/core/domain.js +++ b/addons/web/static/src/js/core/domain.js @@ -106,20 +106,31 @@ var Domain = collections.Tree.extend({ return _.intersection( _.isArray(this._data[2]) ? this._data[2] : [this._data[2]], _.isArray(fieldValue) ? fieldValue : [fieldValue], - ).length !== 0;; + ).length !== 0; case "not in": return _.intersection( _.isArray(this._data[2]) ? this._data[2] : [this._data[2]], _.isArray(fieldValue) ? fieldValue : [fieldValue], ).length === 0; case "like": - return (fieldValue.toLowerCase().indexOf(this._data[2].toLowerCase()) >= 0); + if (fieldValue === false) { + return false; + } + return (fieldValue.indexOf(this._data[2]) >= 0); case "=like": - var regExp = new RegExp(this._data[2].toLowerCase().replace(/([.\[\]\{\}\+\*])/g, '\\\$1').replace(/%/g, '.*')); - return regExp.test(fieldValue.toLowerCase()); + if (fieldValue === false) { + return false; + } + return new RegExp(this._data[2].replace(/%/g, '.*')).test(fieldValue); case "ilike": - return (fieldValue.indexOf(this._data[2]) >= 0); + if (fieldValue === false) { + return false; + } + return (fieldValue.toLowerCase().indexOf(this._data[2].toLowerCase()) >= 0); case "=ilike": + if (fieldValue === false) { + return false; + } return new RegExp(this._data[2].replace(/%/g, '.*'), 'i').test(fieldValue); default: throw new Error(_.str.sprintf( |
