From 709d2e8a7a7dbbc959b8a4f6b29a13fee1c07196 Mon Sep 17 00:00:00 2001 From: Julien Mougenot Date: Tue, 26 May 2020 09:45:25 +0000 Subject: [PATCH] [IMP] account,web: SearchPanel: improve folding behaviour 1) Clicks on a section value are now bound to the entire header, meaning that the sole purpose of the carets is purely esthetic. 2) Search panel categories will now only be folded if they are being clicked on while already selected. Classes that were no longer useful have been removed and tests have been updated accordingly. Task 2264700 closes odoo/odoo#51555 Signed-off-by: Aaron Bohy (aab) --- .../static/src/scss/account_searchpanel.scss | 2 +- .../web/static/src/js/views/search_panel.js | 19 ++------- addons/web/static/src/scss/search_panel.scss | 2 +- addons/web/static/src/xml/kanban.xml | 6 +-- .../static/tests/views/search_panel_tests.js | 42 ++++++++++++------- 5 files changed, 34 insertions(+), 37 deletions(-) diff --git a/addons/account/static/src/scss/account_searchpanel.scss b/addons/account/static/src/scss/account_searchpanel.scss index b8b04a11a9e..621a283a581 100644 --- a/addons/account/static/src/scss/account_searchpanel.scss +++ b/addons/account/static/src/scss/account_searchpanel.scss @@ -13,7 +13,7 @@ margin-left: 0; padding-left: 0; } - .o_search_panel_category_value .o_toggle_fold_container { + .o_search_panel_category_value .o_toggle_fold { width: 0.3rem; } } diff --git a/addons/web/static/src/js/views/search_panel.js b/addons/web/static/src/js/views/search_panel.js index eba680627f2..38019fc01cd 100644 --- a/addons/web/static/src/js/views/search_panel.js +++ b/addons/web/static/src/js/views/search_panel.js @@ -67,7 +67,6 @@ const SearchPanel = Widget.extend({ className: 'o_search_panel', events: { 'click .o_search_panel_category_value header': '_onCategoryValueClicked', - 'click .o_search_panel_category_value .o_toggle_fold_container': '_onToggleFoldCategory', 'change .o_search_panel_filter_value > header > div > input': '_onFilterValueChanged', 'change .o_search_panel_filter_group > header > div > input': '_onFilterGroupChanged', }, @@ -726,8 +725,9 @@ const SearchPanel = Widget.extend({ item.dataset.id || false; const hasChanged = category.activeValueId !== valueId; category.activeValueId = valueId; - if (category.values[valueId]) { - category.values[valueId].folded = !category.values[valueId].folded; + const value = category.values[category.activeValueId]; + if (value) { + value.folded = value.folded ? false : !hasChanged; } if (hasChanged) { const storageKey = this._getLocalStorageKey(category); @@ -769,19 +769,6 @@ const SearchPanel = Widget.extend({ } this._notifyDomainUpdated(); }, - /** - * @private - * @param {MouseEvent} ev - */ - _onToggleFoldCategory(ev) { - ev.preventDefault(); - ev.stopPropagation(); - const item = ev.currentTarget.closest('.o_search_panel_category_value'); - const category = this.categories[item.dataset.categoryId]; - const valueId = item.dataset.id; - category.values[valueId].folded = !category.values[valueId].folded; - this._render(); - }, }); return SearchPanel; diff --git a/addons/web/static/src/scss/search_panel.scss b/addons/web/static/src/scss/search_panel.scss index a3cf4b319c3..c40686804ea 100644 --- a/addons/web/static/src/scss/search_panel.scss +++ b/addons/web/static/src/scss/search_panel.scss @@ -32,7 +32,7 @@ $o-searchpanel-filter-default-color: #D59244; color: $o-searchpanel-filter-default-color; } - .o_toggle_fold_container { + .o_toggle_fold { text-align: center; width: 1.5rem; } diff --git a/addons/web/static/src/xml/kanban.xml b/addons/web/static/src/xml/kanban.xml index 980decc1a8e..374ddf73353 100644 --- a/addons/web/static/src/xml/kanban.xml +++ b/addons/web/static/src/xml/kanban.xml @@ -226,7 +226,7 @@
  • @@ -247,8 +247,8 @@