From 9b219e0e4272b48b45c0f0520eb1d8824453cff5 Mon Sep 17 00:00:00 2001 From: Julio-Oliveira-Encora Date: Thu, 18 Apr 2024 20:37:18 -0300 Subject: [PATCH] Addressed PR comments --- netbox/project-static/src/search.ts | 62 ++++++++++++------ netbox/templates/inc/table_controls_htmx.html | 64 ++++++------------- 2 files changed, 63 insertions(+), 63 deletions(-) diff --git a/netbox/project-static/src/search.ts b/netbox/project-static/src/search.ts index e3bdc18dc..dc0325e24 100644 --- a/netbox/project-static/src/search.ts +++ b/netbox/project-static/src/search.ts @@ -1,5 +1,6 @@ import { isTruthy } from './util'; + /** * Show/hide quicksearch clear button. * @@ -9,36 +10,59 @@ function quickSearchEventHandler(event: Event): void { const quicksearch = event.currentTarget as HTMLInputElement; const inputgroup = quicksearch.parentElement as HTMLDivElement; if (isTruthy(inputgroup)) { - if (quicksearch.value === "") { - inputgroup.classList.add("hide-last-child"); + if (quicksearch.value === '') { + inputgroup.classList.add('hide-last-child'); } else { - inputgroup.classList.remove("hide-last-child"); + inputgroup.classList.remove('hide-last-child'); } } } +/** + * Update the Export View link to add the Quick Search parameters. + * @param event + */ + +function handleQuickSearchParams(event: Event): void { + console.log('getParams'); + const quickSearchParameters = event.currentTarget as HTMLInputElement; + const link = document.getElementById('current_view') as HTMLLinkElement; + if (quickSearchParameters != null) { + const search_parameter = `q=${quickSearchParameters.value}`; + const linkUpdated = link?.href + '&' + search_parameter; + link.setAttribute('href', linkUpdated); + } +} + /** * Initialize Quicksearch Event listener/handlers. */ export function initQuickSearch(): void { - const quicksearch = document.getElementById("quicksearch") as HTMLInputElement; - const clearbtn = document.getElementById("quicksearch_clear") as HTMLButtonElement; + const quicksearch = document.getElementById('quicksearch') as HTMLInputElement; + const clearbtn = document.getElementById('quicksearch_clear') as HTMLButtonElement; + if (isTruthy(quicksearch)) { - quicksearch.addEventListener("keyup", quickSearchEventHandler, { - passive: true - }) - quicksearch.addEventListener("search", quickSearchEventHandler, { - passive: true - }) + quicksearch.addEventListener('keyup', quickSearchEventHandler, { + passive: true, + }); + quicksearch.addEventListener('search', quickSearchEventHandler, { + passive: true, + }); + quicksearch.addEventListener('change', handleQuickSearchParams); + if (isTruthy(clearbtn)) { - clearbtn.addEventListener("click", async () => { - const search = new Event('search'); - quicksearch.value = ''; - await new Promise(f => setTimeout(f, 100)); - quicksearch.dispatchEvent(search); - }, { - passive: true - }) + clearbtn.addEventListener( + 'click', + async () => { + const search = new Event('search'); + quicksearch.value = ''; + await new Promise(f => setTimeout(f, 100)); + quicksearch.dispatchEvent(search); + }, + { + passive: true, + }, + ); } } } diff --git a/netbox/templates/inc/table_controls_htmx.html b/netbox/templates/inc/table_controls_htmx.html index 300953f61..eb5a241e9 100644 --- a/netbox/templates/inc/table_controls_htmx.html +++ b/netbox/templates/inc/table_controls_htmx.html @@ -2,49 +2,25 @@ {% load i18n %}
-
-
- - -
- {% block extra_table_controls %}{% endblock %} -
-
- {% if request.user.is_authenticated and table_modal %} -
- -
- {% endif %} +
+
+ +
+ {% block extra_table_controls %}{% endblock %} +
+
+ {% if request.user.is_authenticated and table_modal %} +
+ +
+ {% endif %} +
- - -