added simple loose wildcard search term support in the Admin UI
This commit is contained in:
@@ -1424,7 +1424,7 @@ export default class CommonHelper {
|
||||
*/
|
||||
static getAllCollectionIdentifiers(collection, prefix = "") {
|
||||
if (!collection) {
|
||||
return;
|
||||
return [];
|
||||
}
|
||||
|
||||
let result = [prefix + "id"];
|
||||
@@ -1655,4 +1655,36 @@ export default class CommonHelper {
|
||||
|
||||
return hasChange ? CommonHelper.buildIndex(parsed) : idx;
|
||||
}
|
||||
|
||||
/**
|
||||
* Normalizes the search filter by converting a simple search term into
|
||||
* a wildcard filter expression using the provided fallback search fields.
|
||||
*
|
||||
* If searchTerm is already an expression it is returned without changes.
|
||||
*
|
||||
* @param {String} searchTerm
|
||||
* @param {Array} fallbackFields
|
||||
* @return {String}
|
||||
*/
|
||||
static normalizeSearchFilter(searchTerm, fallbackFields) {
|
||||
searchTerm = (searchTerm || "").trim();
|
||||
if (!searchTerm || !fallbackFields.length) {
|
||||
return searchTerm;
|
||||
}
|
||||
|
||||
const opChars = ["=", "!=", "~", "!~", ">", ">=", "<", "<="];
|
||||
|
||||
// loosely check if it is already a filter expression
|
||||
for (const op of opChars) {
|
||||
if (searchTerm.includes(op)) {
|
||||
return searchTerm;
|
||||
}
|
||||
}
|
||||
|
||||
searchTerm = isNaN(searchTerm) && searchTerm != "true" && searchTerm != "false"
|
||||
? `"${searchTerm.replace(/^[\"\'\`]|[\"\'\`]$/gm, "")}"`
|
||||
: searchTerm;
|
||||
|
||||
return fallbackFields.map((f) => `${f}~${searchTerm}`).join("||");
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user