diff --git a/src/main/resources/static/main.js b/src/main/resources/static/main.js index 34c4e6e..a563530 100644 --- a/src/main/resources/static/main.js +++ b/src/main/resources/static/main.js @@ -105,6 +105,11 @@ function filter(filterString) { fetchQuery(fetchURL); } +function getFilterQuery() { + let filterString = filterButton.value.toUpperCase(); + return "?type=" + filterString; +} + function search(searchString) { updateSections(); let fetchURL = new URL(apiEndpoint + "/search", baseURL); @@ -113,6 +118,11 @@ function search(searchString) { fetchQuery(fetchURL); } +function getSearchQuery() { + let searchString = searchBar.value; + return "?search=" + (searchString.length === 0 ? "%" : searchString); +} + function sort(sortString) { let query = sortString.toLowerCase().split(" "); if (query[1] === "a-z" || query[1] === "↑" || query[1] === "oldest-newest") { @@ -128,9 +138,26 @@ function sort(sortString) { fetchQuery(fetchURL); } +function getSortQuery() { + let sortString = sortButton.value.toLowerCase().split(" "); + if (sortString[1] === "a-z" || sortString[1] === "↑" || sortString[1] === "oldest-newest") { + sortString[1] = "asc"; + } else { + sortString[1] = "desc"; + } + return "?sort=" + sortString[0] + "&direction=" + sortString[1]; +} + // creates query for the whole toolbar, so that searching, sorting and filtering are always combined function createQuery() { - + updateSections(); + let queryURL = new URL(apiEndpoint + "/search", baseURL); + queryURL.append(getSearchQuery()); + queryURL.append(getFilterQuery()); + queryURL.append(getSortQuery()); + queryURL.append("&size=" + defaultPagingValue); + console.log(queryURL); // TODO: remove + fetchQuery(queryURL); } export function vote(entryID, up) {