From 78aaacb8b38489513d01f636da292418ccbfa5e5 Mon Sep 17 00:00:00 2001 From: "D. Berge" Date: Wed, 2 Sep 2020 11:09:04 +0200 Subject: [PATCH] Improve sequence list search --- .../client/source/src/views/SequenceList.vue | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/lib/www/client/source/src/views/SequenceList.vue b/lib/www/client/source/src/views/SequenceList.vue index 2630b74..b0047ad 100644 --- a/lib/www/client/source/src/views/SequenceList.vue +++ b/lib/www/client/source/src/views/SequenceList.vue @@ -25,6 +25,7 @@ item-key="sequence" :server-items-length="num_rows" :search="filter" + :custom-filter="customFilter" :loading="loading" :fixed-header="true" show-expand @@ -352,6 +353,39 @@ export default { return basename(path, ext); }, + customFilter (value, search, item) { + if (!search) return true; + + const number = Number(search); + + if (!isNaN(number)) { + if (item.sequence == number) return true; + + if (search.length > 3) { + const searchShots = [ "fsp", "lsp", "fsp_final", "lsp_final" ].some( k => + item[k] == number + ); + if (searchShots) return true; + } + } + + if (search.length > 2) { + const searchDates = [ "ts0", "ts1" ].some(k => { + const i = item[k].indexOf(search); + return i >= 0 && i < 10; + }); + if (searchDates) return true; + } + + if ((item.remarks||"").indexOf(search) != -1) return true; + + if ((item.remarks_final||"").indexOf(search) != -1) return true; + + if (item.status.indexOf(search.toLowerCase()) == 0) return true; + + return false; + }, + ...mapActions(["api"]) },