diff options
Diffstat (limited to 'addons/web/static/src')
6 files changed, 46 insertions, 5 deletions
diff --git a/addons/web/static/src/js/views/control_panel/control_panel_model.js b/addons/web/static/src/js/views/control_panel/control_panel_model.js index 0229daa41ee..02e1c49508b 100644 --- a/addons/web/static/src/js/views/control_panel/control_panel_model.js +++ b/addons/web/static/src/js/views/control_panel/control_panel_model.js @@ -407,7 +407,17 @@ var ControlPanelModel = mvc.Model.extend({ // we need to deactivate all groups when activating a favorite if (filter.type === 'favorite') { this.query.forEach(function (groupId) { - self.groups[groupId].activeFilterIds = []; + var group = self.groups[groupId]; + group.activeFilterIds.forEach(function (id) { + var filter = self.filters[id]; + if (filter.autoCompleteValues) { + filter.autoCompleteValues = []; + } + if (filter.currentOptionId) { + filter.currentOptionId = false; + } + }) + group.activeFilterIds = []; }); this.query = []; } diff --git a/addons/web/static/src/js/views/control_panel/search/add_new_favorite_menu.js b/addons/web/static/src/js/views/control_panel/search/add_new_favorite_menu.js index 421fec3e04b..07c80d38c29 100644 --- a/addons/web/static/src/js/views/control_panel/search/add_new_favorite_menu.js +++ b/addons/web/static/src/js/views/control_panel/search/add_new_favorite_menu.js @@ -40,6 +40,12 @@ var AddNewFavoriteMenu = Widget.extend({ //-------------------------------------------------------------------------- /** + * @param {Object} params + */ + update: function (params) { + this.favorites = params.favorites; + }, + /** * Close the menu and re-render the widget. */ closeMenu: function () { diff --git a/addons/web/static/src/js/views/control_panel/search/favorite_menu.js b/addons/web/static/src/js/views/control_panel/search/favorite_menu.js index 8b9ae4d44d6..0a536820735 100644 --- a/addons/web/static/src/js/views/control_panel/search/favorite_menu.js +++ b/addons/web/static/src/js/views/control_panel/search/favorite_menu.js @@ -49,6 +49,18 @@ var FavoriteMenu = DropdownMenu.extend({ }, //-------------------------------------------------------------------------- + // Public + //-------------------------------------------------------------------------- + + /** + * @override + */ + update: function (items) { + this._super.apply(this, arguments); + _.invoke(this.subMenus, 'update', { favorites: this.items }); + }, + + //-------------------------------------------------------------------------- // Private //-------------------------------------------------------------------------- diff --git a/addons/web/static/src/js/widgets/domain_selector.js b/addons/web/static/src/js/widgets/domain_selector.js index ed71679699c..755ee32979e 100644 --- a/addons/web/static/src/js/widgets/domain_selector.js +++ b/addons/web/static/src/js/widgets/domain_selector.js @@ -652,7 +652,7 @@ var DomainLeaf = DomainNode.extend({ this.fieldSelector = new ModelFieldSelector( this, this.model, - this.chain ? this.chain.split(".") : [], + this.chain !== undefined ? this.chain.toString().split(".") : [], this.options ); defs.push(this.fieldSelector.appendTo($("<div/>")).then((function () { diff --git a/addons/web/static/src/js/widgets/model_field_selector.js b/addons/web/static/src/js/widgets/model_field_selector.js index 08a7ae47c81..ed74b2da44a 100644 --- a/addons/web/static/src/js/widgets/model_field_selector.js +++ b/addons/web/static/src/js/widgets/model_field_selector.js @@ -301,11 +301,16 @@ var ModelFieldSelector = Widget.extend({ }).bind(this)); function processChain(chain) { - var field = this._getLastPageField(chain.pop()); + var fieldName = chain.pop(); + var field = this._getLastPageField(fieldName); if (field && field.relation && chain.length > 0) { // Fetch next chain node if any and possible return this._pushPageData(field.relation).then(processChain.bind(this, chain)); } else if (field && chain.length === 0) { // Last node fetched return Promise.resolve(); + } else if (!field && fieldName === "1") { // TRUE_LEAF + this._validate(true); + } else if (!field && fieldName === "0") { // FALSE_LEAF + this._validate(true); } else { // Wrong node chain this._validate(false); } diff --git a/addons/web/static/src/xml/base.xml b/addons/web/static/src/xml/base.xml index bb744cbdb03..5eff2fb4422 100644 --- a/addons/web/static/src/xml/base.xml +++ b/addons/web/static/src/xml/base.xml @@ -650,8 +650,16 @@ <i class="fa fa-chevron-right" role="img" aria-label="Followed by" title="Followed by"/> </t> <span class="o_field_selector_chain_part"> - <t t-set="fieldInfo" t-value="_.findWhere(pages[fieldName_index], {'name': fieldName})"/> - <t t-esc="fieldInfo && fieldInfo.string || '?'"/> + <t t-if="fieldName === '1'"> + <t t-esc="fieldName"/> + </t> + <t t-elif="fieldName === '0'"> + <t t-esc="fieldName"/> + </t> + <t t-else=""> + <t t-set="fieldInfo" t-value="_.findWhere(pages[fieldName_index], {'name': fieldName})"/> + <t t-esc="fieldInfo && fieldInfo.string || '?'"/> + </t> </span> </t> </t> |
