From 907c5fa6877160a99c07aa42cf172cbee85ead32 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Wed, 26 Jul 2023 09:42:10 -0400 Subject: [PATCH] feat: closes #11843, refresh search after changing filters --- public/src/client/search.js | 14 ++++++++++---- public/src/modules/search.js | 3 +-- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/public/src/client/search.js b/public/src/client/search.js index f9d7bdbc6d..4ca01b80f9 100644 --- a/public/src/client/search.js +++ b/public/src/client/search.js @@ -15,7 +15,7 @@ define('forum/search', [ let selectedUsers = []; let selectedTags = []; let selectedCids = []; - + let searchFilters = {}; Search.init = function () { const searchIn = $('#search-in'); searchIn.on('change', function () { @@ -30,9 +30,7 @@ define('forum/search', [ $('#advanced-search form').off('submit').on('submit', function (e) { e.preventDefault(); - searchModule.query(getSearchDataFromDOM(), function () { - $('#search-input').val(''); - }); + searchModule.query(getSearchDataFromDOM()); return false; }); @@ -53,12 +51,20 @@ define('forum/search', [ if (updateFns[$(this).attr('data-filter-name')]) { updateFns[$(this).attr('data-filter-name')](); } + + const searchFiltersNew = getSearchDataFromDOM(); + if (JSON.stringify(searchFilters) !== JSON.stringify(searchFiltersNew)) { + searchFilters = searchFiltersNew; + searchModule.query(searchFilters); + } }); fillOutForm(); updateTimeFilter(); updateReplyCountFilter(); updateSortFilter(); + + searchFilters = getSearchDataFromDOM(); }; function updateTagFilter() { diff --git a/public/src/modules/search.js b/public/src/modules/search.js index ebcc12dab0..566be43ab2 100644 --- a/public/src/modules/search.js +++ b/public/src/modules/search.js @@ -243,8 +243,7 @@ define('search', [ Search.query = function (data, callback) { callback = callback || function () {}; - ajaxify.go('search?' + createQueryString(data)); - callback(); + ajaxify.go('search?' + createQueryString(data), callback); }; Search.api = function (data, callback) {