Merge pull request #22824 from bosue/bolden_match_part

This commit is contained in:
Suraj Shetty 2023-11-15 12:48:59 +05:30 committed by GitHub
commit 3cd1fe0636
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 10 additions and 41 deletions

View file

@ -600,40 +600,11 @@ frappe.search.utils = {
return { score, marked_string };
},
/**
* @deprecated Use frappe.search.utils.fuzzy_search(subseq, str, true).marked_string instead.
*/
bolden_match_part: function (str, subseq) {
if (fuzzy_match(subseq, str)[0] === false) {
return str;
}
if (str.indexOf(subseq) == 0) {
var tail = str.split(subseq)[1];
return "<mark>" + subseq + "</mark>" + tail;
}
var rendered = "";
var str_orig = str;
var str_len = str.length;
str = str.toLowerCase();
subseq = subseq.toLowerCase();
outer: for (var i = 0, j = 0; i < subseq.length; i++) {
var sub_ch = subseq.charCodeAt(i);
while (j < str_len) {
if (str.charCodeAt(j) === sub_ch) {
var str_char = str_orig.charAt(j);
if (str_char === str_char.toLowerCase()) {
rendered += "<mark>" + subseq.charAt(i) + "</mark>";
} else {
rendered += "<mark>" + subseq.charAt(i).toUpperCase() + "</mark>";
}
j++;
continue outer;
}
rendered += str_orig.charAt(j);
j++;
}
return str_orig;
}
rendered += str_orig.slice(j);
return rendered;
return this.fuzzy_search(subseq, str, true).marked_string;
},
get_executables(keywords) {

View file

@ -13,15 +13,14 @@ frappe.tags.utils = {
return [];
}
for (let i in frappe.tags.tags) {
let tag = frappe.tags.tags[i];
let level = frappe.search.utils.fuzzy_search(txt, tag);
if (level) {
frappe.tags.tags.forEach((tag) => {
const search_result = frappe.search.utils.fuzzy_search(txt, tag, true);
if (search_result.score) {
out.push({
type: "Tag",
label: __("#{0}", [frappe.search.utils.bolden_match_part(__(tag), txt)]),
label: __("#{0}", [search_result.marked_string]),
value: __("#{0}", [__(tag)]),
index: 1 + level,
index: 1 + search_result.score,
match: tag,
onclick() {
// Use Global Search Dialog for tag search too.
@ -29,8 +28,7 @@ frappe.tags.utils = {
},
});
}
}
});
return out;
},