From 38e339258ccc391cc9ab021c31f63da3d0749b87 Mon Sep 17 00:00:00 2001 From: Jeremy Kersten Date: Thu, 22 Mar 2018 10:04:36 +0100 Subject: [PATCH] [FIX] base: settings view match on label.text Before this commit, search was broken because containsLike was searching on the innerHtml. (3dd93ed129) Settings use _wordHighlighter to change the background of the matching text into the label, so the label was not only text, but html. : looking for (mul) After this commit, the match is based on the text content and not on the html. --- addons/web/static/src/js/libs/jquery.js | 3 +++ odoo/addons/base/static/src/js/res_config_settings.js | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/addons/web/static/src/js/libs/jquery.js b/addons/web/static/src/js/libs/jquery.js index 0b12b4fed0d..4bcab8eb866 100644 --- a/addons/web/static/src/js/libs/jquery.js +++ b/addons/web/static/src/js/libs/jquery.js @@ -11,6 +11,9 @@ $.extend($.expr[':'], { containsLike: function (element, index, matches){ return element.innerHTML.toUpperCase().indexOf(matches[3].toUpperCase()) >= 0; }, + containsTextLike: function (element, index, matches){ + return element.innerText.toUpperCase().indexOf(matches[3].toUpperCase()) >= 0; + }, containsExact: function (element, index, matches){ return $.trim(element.innerHTML) === matches[3]; }, diff --git a/odoo/addons/base/static/src/js/res_config_settings.js b/odoo/addons/base/static/src/js/res_config_settings.js index 28f5ac17c9b..8285133c64c 100644 --- a/odoo/addons/base/static/src/js/res_config_settings.js +++ b/odoo/addons/base/static/src/js/res_config_settings.js @@ -277,7 +277,7 @@ var BaseSettingRenderer = FormRenderer.extend({ module.settingView.find('h2').addClass('o_hidden'); module.settingView.find('.settingSearchHeader').addClass('o_hidden'); module.settingView.find('.o_settings_container').removeClass('mt16'); - var resultSetting = module.settingView.find("label:containsLike('" + self.searchText + "')"); + var resultSetting = module.settingView.find("label:containsTextLike('" + self.searchText + "')"); if (resultSetting.length > 0) { resultSetting.each(function () { var settingBox = $(this).closest('.o_setting_box');