32 lines
1.2 KiB
JavaScript
32 lines
1.2 KiB
JavaScript
import {searchBarTimeout, searchSection, lastQuery} from "./main.js"
|
|
import Dataset from "./dataset.js"
|
|
// TODO consider renaming this to "searchUtility.js"
|
|
export function fetchQuery(fetchString, clearResults) {
|
|
clearTimeout(searchBarTimeout);
|
|
fetch(fetchString)
|
|
.then(resp => resp.json())
|
|
.then((data) => {
|
|
parseContent(data.content, clearResults);
|
|
lastQuery.totalPages = data.totalPages;
|
|
if (clearResults) {
|
|
lastQuery.currentPage = 0;
|
|
}
|
|
});
|
|
}
|
|
|
|
function parseContent(content, clearResults) {
|
|
if (content.length === 0) {
|
|
searchSection.querySelector("#nothing-found ").classList.remove("hidden");
|
|
} else {
|
|
searchSection.querySelector("#nothing-found").classList.add("hidden");
|
|
const datasets = content.map(dataset => new Dataset(dataset));
|
|
if (clearResults) {
|
|
Array.from(searchSection.querySelectorAll(".datasets .dataset")).forEach(e => e.remove());
|
|
}
|
|
for (const dataset of datasets) {
|
|
searchSection.querySelector(".datasets")
|
|
.appendChild(dataset.createDatasetHTMLElement());
|
|
}
|
|
}
|
|
}
|