diff options
| author | Yannick Tivisse <yti@odoo.com> | 2019-06-04 15:36:04 +0200 |
|---|---|---|
| committer | Yannick Tivisse <yti@odoo.com> | 2019-06-04 15:36:04 +0200 |
| commit | fd86ffd5aa6f633de879bd62b2fe0b6826395825 (patch) | |
| tree | 5a89678bec7dce6bb641b627bbff33b922e61bb5 | |
| parent | 39615db00d07a0fe31af13154a8e930bd5a4d234 (diff) | |
[IMP] web: Keep dropdown open and show multi company changes before reload
| -rw-r--r-- | addons/web/static/src/js/widgets/switch_company_menu.js | 22 |
1 files changed, 16 insertions, 6 deletions
diff --git a/addons/web/static/src/js/widgets/switch_company_menu.js b/addons/web/static/src/js/widgets/switch_company_menu.js index 153c6b164cb..62e2a27f3d0 100644 --- a/addons/web/static/src/js/widgets/switch_company_menu.js +++ b/addons/web/static/src/js/widgets/switch_company_menu.js @@ -51,16 +51,21 @@ var SwitchCompanyMenu = Widget.extend({ * @param {MouseEvent} ev */ _onSwitchCompanyClick: function (ev) { - ev.preventDefault(); - var companyID = $(ev.currentTarget).parent().data('company-id'); + ev.stopPropagation(); + var dropdownItem = $(ev.currentTarget).parent() + var dropdownMenu = dropdownItem.parent() + var companyID = dropdownItem.data('company-id'); var hash = $.bbq.getState() var allowed_company_ids = _.map(hash.cids.split(','), function(company_id) {return parseInt(company_id);}); - if ($($(ev.currentTarget).parent()).find('.fa-square-o').length) { + if (dropdownItem.find('.fa-square-o').length) { // 1 enabled company: Stay in single company mode if (this.allowed_company_ids.length === 1) { - allowed_company_ids = [companyID] + dropdownMenu.find('.fa-check-square').removeClass('fa-check-square').addClass('fa-square-o'); + dropdownItem.find('.fa-square-o').removeClass('fa-square-o').addClass('fa-check-square'); + allowed_company_ids = [companyID] } else { // Multi company mode allowed_company_ids.push(companyID); + dropdownItem.find('.fa-square-o').removeClass('fa-square-o').addClass('fa-check-square'); } } session.setCompanies(companyID, allowed_company_ids); @@ -75,14 +80,19 @@ var SwitchCompanyMenu = Widget.extend({ * @param {MouseEvent} ev */ _onToggleCompanyClick: function (ev) { - var companyID = $(ev.currentTarget).parent().data('company-id'); + ev.stopPropagation(); + var dropdownItem = $(ev.currentTarget).parent() + var dropdownMenu = dropdownItem.parent() + var companyID = dropdownItem.data('company-id'); var hash = $.bbq.getState() var allowed_company_ids = _.map(hash.cids.split(','), function(company_id) {return parseInt(company_id);}); var current_company_id = allowed_company_ids[0]; - if ($(ev.currentTarget).find('.fa-square-o').length) { + if (dropdownItem.find('.fa-square-o').length) { allowed_company_ids.push(companyID); + dropdownItem.find('.fa-square-o').removeClass('fa-square-o').addClass('fa-check-square'); } else { allowed_company_ids.splice(allowed_company_ids.indexOf(companyID), 1); + dropdownItem.find('.fa-check-square').addClass('fa-square-o').removeClass('fa-check-square'); } session.setCompanies(current_company_id, allowed_company_ids); }, |
