« get me outta code hell

hsmusic-wiki - HSMusic - static wiki software cataloguing collaborative creation
about summary refs log tree commit diff
path: root/src/static/js
diff options
context:
space:
mode:
Diffstat (limited to 'src/static/js')
-rw-r--r--src/static/js/client/sidebar-search.js16
-rw-r--r--src/static/js/search-worker.js7
2 files changed, 21 insertions, 2 deletions
diff --git a/src/static/js/client/sidebar-search.js b/src/static/js/client/sidebar-search.js
index 051ba079..c8f42e91 100644
--- a/src/static/js/client/sidebar-search.js
+++ b/src/static/js/client/sidebar-search.js
@@ -809,7 +809,7 @@ function showSidebarSearchResults(results) {
 
 function tidyResults(results) {
   const tidiedResults =
-    results.map(({doc, id}) => ({
+    results.results.map(({doc, id}) => ({
       reference: id ?? null,
       referenceType: (id ? id.split(':')[0] : null),
       directory: (id ? id.split(':')[1] : null),
@@ -851,6 +851,8 @@ function fillResultElements(results, {
 }
 
 function showFilterElements(results) {
+  const {queriedKind} = results;
+
   const tidiedResults = tidyResults(results);
 
   const allReferenceTypes =
@@ -864,6 +866,18 @@ function showFilterElements(results) {
     if (allReferenceTypes.includes(type)) {
       shownAny = true;
       cssProp(filterLink, 'display', null);
+
+      if (queriedKind) {
+        filterLink.setAttribute('inert', 'inert');
+      } else {
+        filterLink.removeAttribute('inert');
+      }
+
+      if (type === queriedKind) {
+        filterLink.classList.add('active-from-query');
+      } else {
+        filterLink.classList.remove('active-from-query');
+      }
     } else {
       cssProp(filterLink, 'display', 'none');
     }
diff --git a/src/static/js/search-worker.js b/src/static/js/search-worker.js
index 5ecb6eb4..8c265735 100644
--- a/src/static/js/search-worker.js
+++ b/src/static/js/search-worker.js
@@ -373,6 +373,8 @@ function postActionResult(id, status, value) {
 function performSearchAction({query, options}) {
   const {generic, verbatim} = indexes;
 
+  const {queriedKind} = processTerms(query);
+
   const genericResults =
     queryGenericIndex(generic, query, options);
 
@@ -388,7 +390,10 @@ function performSearchAction({query, options}) {
           .filter(({id}) => verbatimIDs.has(id))
       : verbatimResults ?? genericResults);
 
-  return commonResults;
+  return {
+    results: commonResults,
+    queriedKind,
+  };
 }
 
 const interestingFieldCombinations = [