From 108eeaed0afa45108342f4708551e1f2657c7880 Mon Sep 17 00:00:00 2001 From: Russell Cloran Date: Mon, 24 Mar 2025 17:59:32 -0700 Subject: [PATCH] Make printer model search more flexible (#9050) The printer model search can be hard to use, depending on how profiles are named. This makes it a little easier by matching on both the vendor and model name, and tokenizing the query and matching all of the tokens, instead of trying to find the whole query substring in the model name. --- resources/web/guide/21/21.js | 6 ++++-- resources/web/guide/24/24.js | 6 ++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/resources/web/guide/21/21.js b/resources/web/guide/21/21.js index d7a4d640dc..deca4516d0 100644 --- a/resources/web/guide/21/21.js +++ b/resources/web/guide/21/21.js @@ -216,14 +216,16 @@ function FilterModelList(keyword) { let nTotal = pModel.length; let ModelHtml = {}; + let kwSplit = keyword.toLowerCase().match(/\S+/g) || []; $('#Content').empty(); for (let n = 0; n < nTotal; n++) { let OneModel = pModel[n]; let strVendor = OneModel['vendor']; - let ModelName = OneModel['model']; - if (ModelName.toLowerCase().indexOf(keyword.toLowerCase()) == -1) + let search = (OneModel['model'] + '\0' + strVendor).toLowerCase(); + + if (!kwSplit.every(s => search.includes(s))) continue; //Add Vendor Html Node diff --git a/resources/web/guide/24/24.js b/resources/web/guide/24/24.js index 611020f704..ed929f74d4 100644 --- a/resources/web/guide/24/24.js +++ b/resources/web/guide/24/24.js @@ -216,14 +216,16 @@ function FilterModelList(keyword) { let nTotal = pModel.length; let ModelHtml = {}; + let kwSplit = keyword.toLowerCase().match(/\S+/g) || []; $('#Content').empty(); for (let n = 0; n < nTotal; n++) { let OneModel = pModel[n]; let strVendor = OneModel['vendor']; - let ModelName = OneModel['model']; - if (ModelName.toLowerCase().indexOf(keyword.toLowerCase()) == -1) + let search = (OneModel['model'] + '\0' + strVendor).toLowerCase(); + + if (!kwSplit.every(s => search.includes(s))) continue; //Add Vendor Html Node