From 180770f28eacc9ec687a7101455232d94c5671ff Mon Sep 17 00:00:00 2001 From: J-Klinke Date: Thu, 20 Jun 2024 15:54:01 +0200 Subject: [PATCH] refined search minor bugfixes in other functionalities --- src/main/resources/static/contentUtility.js | 5 ++++- src/main/resources/static/main.js | 23 ++++++++++++++++----- src/main/resources/templates/index.html | 2 +- 3 files changed, 23 insertions(+), 7 deletions(-) diff --git a/src/main/resources/static/contentUtility.js b/src/main/resources/static/contentUtility.js index eb2c2ce..dc3eace 100644 --- a/src/main/resources/static/contentUtility.js +++ b/src/main/resources/static/contentUtility.js @@ -1,4 +1,7 @@ -function fetchQuery(fetchString) { +import {searchBarTimeout} from "./main.js" + +export function fetchQuery(fetchString) { + clearTimeout(searchBarTimeout); fetch(fetchString) .then(resp => resp.json()) .then((data) => { diff --git a/src/main/resources/static/main.js b/src/main/resources/static/main.js index 9b74cd2..0c30d5b 100644 --- a/src/main/resources/static/main.js +++ b/src/main/resources/static/main.js @@ -1,3 +1,5 @@ +import { fetchQuery } from "./contentUtility.js"; + const baseURL = "http://" + window.location.host + "/api/v1/datasets"; const defaultPagingValue = 20; const lastQuery = { @@ -23,10 +25,20 @@ searchButton.addEventListener("click", () => { search(searchString); }); const searchBar = document.getElementById("search-entry"); +export let searchBarTimeout; searchBar.addEventListener("input", () => { - const searchString = searchBar.value; - search(searchString); + clearTimeout(searchBarTimeout); + searchBarTimeout = setTimeout(() => { + const searchString = searchBar.value; + search(searchString); + }, 1000); }); +searchBar.addEventListener('keypress', function (e) { + if (e.key === 'Enter') { + const searchString = searchBar.value; + search(searchString); + } +}) const sortButton = document.getElementById("sort-btn"); sortButton.addEventListener("change", () => { @@ -58,19 +70,20 @@ function navigateToAdd() { function filter(filterString) { filterString = filterString.toUpperCase(); - const fetchURL = baseURL + "?type=" + filterString + "&size=" + defaultPagingValue; + const fetchURL = baseURL + "?type=" + encodeURIComponent(filterString) + "&size=" + defaultPagingValue; + console.log(fetchURL) fetchQuery(fetchURL); } function search(searchString) { - const fetchURL = baseURL + "?search=" + encodeURIComponent(searchString.length === 0?"%":searchString); + const fetchURL = baseURL + "/search" + "?search=" + encodeURIComponent(searchString.length === 0?"%":searchString); console.log(fetchURL); fetchQuery(fetchURL); } function sort(sortString) { let query = sortString.toLowerCase().split(" "); - if (query[1] === "A-Z" || query[1] === "↑") { + if (query[1] === "a-z" || query[1] === "↑") { query[1] = "asc"; } else { query[1] = "desc"; diff --git a/src/main/resources/templates/index.html b/src/main/resources/templates/index.html index f80de12..7969a63 100644 --- a/src/main/resources/templates/index.html +++ b/src/main/resources/templates/index.html @@ -5,7 +5,7 @@ DataDash - +