[FIX] sale: fix search issue in settings

Before this rev., we searched for 'label' tagname into the DOM, but
the fields labels are not always inside <label> (sometimes <span>).

However, they always have className 'o_form_label', so we use this
instead.

task 1961427

closes odoo/odoo#33487

Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
This commit is contained in:
Priyanka Kakadiya
2019-05-21 07:34:26 +00:00
committed by Aaron Bohy
parent 92393a6b8e
commit 8ffedf4545
2 changed files with 11 additions and 9 deletions
@@ -305,7 +305,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:containsTextLike('" + self.searchText + "')");
var resultSetting = module.settingView.find(".o_form_label:containsTextLike('" + self.searchText + "')");
if (resultSetting.length > 0) {
resultSetting.each(function () {
var settingBox = $(this).closest('.o_setting_box');
@@ -343,8 +343,8 @@ var BaseSettingRenderer = FormRenderer.extend({
}
var match = text.search(new RegExp(word, "i"));
word = text.substring(match, match + word.length);
var hilitedWord = "<span class='highlighter'>" + word + '</span>';
return text.replace(word, hilitedWord);
var highlightedWord = "<span class='highlighter'>" + word + '</span>';
return text.replace(word, highlightedWord);
},
});
@@ -25,7 +25,7 @@ QUnit.module('base_settings_tests', {
QUnit.module('BaseSetting');
QUnit.test('change setting on nav bar click in base settings', function (assert) {
assert.expect(4);
assert.expect(5);
var form = createView({
View: BaseSettingsView,
@@ -63,7 +63,7 @@ QUnit.module('base_settings_tests', {
'<field name="foo"/>'+
'</div>'+
'<div class="o_setting_right_pane">'+
'<label for="foo"/>'+
'<span class="o_form_label">Foo</span>'+
'<div class="text-muted">'+
'this is foo'+
'</div>'+
@@ -77,12 +77,14 @@ QUnit.module('base_settings_tests', {
});
form.$("div[setting='project']").click();
assert.strictEqual(form.$('.selected').attr('data-key'),"crm","crm setting selected");
assert.strictEqual(form.$(".settings .app_settings_block").hasClass('o_hidden'),false,"project settings show");
assert.strictEqual(form.$('.selected').attr('data-key'), "crm", "crm setting selected");
assert.strictEqual(form.$(".settings .app_settings_block").hasClass('o_hidden'), false, "project settings show");
form.$('.searchInput').val('b').trigger('keyup');
assert.strictEqual($('.highlighter').html(),"B","b word hilited");
assert.strictEqual(form.$('.highlighter').html(), "B", "b word highlighted");
form.$('.searchInput').val('bx').trigger('keyup');
assert.strictEqual(form.$('.notFound').hasClass('o_hidden'),false,"record not found message shown");
assert.strictEqual(form.$('.notFound').hasClass('o_hidden'), false, "record not found message shown");
form.$('.searchInput').val('f').trigger('keyup');
assert.strictEqual(form.$('span.o_form_label .highlighter').html(), "F", "F word highlighted");
form.destroy();
});