diff --git a/public/src/modules/categoryFilter.js b/public/src/modules/categoryFilter.js index 169242349b..fcbdc35e6a 100644 --- a/public/src/modules/categoryFilter.js +++ b/public/src/modules/categoryFilter.js @@ -52,6 +52,8 @@ define('categoryFilter', ['categorySearch', 'api', 'hooks'], function (categoryS } else { delete currentParams.cid; } + + delete currentParams.page; if (Object.keys(currentParams).length) { url += '?' + decodeURIComponent($.param(currentParams)); } @@ -70,9 +72,6 @@ define('categoryFilter', ['categorySearch', 'api', 'hooks'], function (categoryS const icon = categoryEl.find('[component="category/select/icon"]'); if (cid !== 'all') { - if (selectedCids.includes('all')) { - selectedCids.splice(selectedCids.indexOf('all'), 1); - } if (selectedCids.includes(cid)) { selectedCids.splice(selectedCids.indexOf(cid), 1); } else { @@ -83,13 +82,10 @@ define('categoryFilter', ['categorySearch', 'api', 'hooks'], function (categoryS }); icon.toggleClass('invisible'); listEl.find('[data-cid="all"] i').toggleClass('invisible', !!selectedCids.length); - if (!selectedCids.length) { - selectedCids.push('all'); - } } else { el.find('[component="category/select/icon"]').addClass('invisible'); listEl.find('[data-cid="all"] i').removeClass('invisible'); - selectedCids = ['all']; + selectedCids = []; } options.selectedCids = selectedCids; diff --git a/public/src/modules/tagFilter.js b/public/src/modules/tagFilter.js index 9a544ecd92..d8a4557b70 100644 --- a/public/src/modules/tagFilter.js +++ b/public/src/modules/tagFilter.js @@ -101,6 +101,7 @@ define('tagFilter', ['hooks', 'alerts', 'bootstrap'], function (hooks, alerts, b } else { delete currentParams.tag; } + delete currentParams.page; if (Object.keys(currentParams).length) { url += '?' + decodeURIComponent($.param(currentParams)); } diff --git a/src/controllers/recent.js b/src/controllers/recent.js index ee6347ebc7..32d253edd7 100644 --- a/src/controllers/recent.js +++ b/src/controllers/recent.js @@ -68,10 +68,12 @@ recentController.getData = async function (req, url, sort) { data.breadcrumbs = helpers.buildBreadcrumbs([{ text: `[[${url}:title]]` }]); } + const query = { ...req.query }; + delete query.page; data.canPost = canPost; data.showSelect = isPrivileged; data.showTopicTools = isPrivileged; - data.allCategoriesUrl = baseUrl + helpers.buildQueryString(req.query, 'cid', ''); + data.allCategoriesUrl = baseUrl + helpers.buildQueryString(query, 'cid', ''); data.selectedCategory = categoryData.selectedCategory; data.selectedCids = categoryData.selectedCids; data.selectedTag = tagData.selectedTag; @@ -82,9 +84,9 @@ recentController.getData = async function (req, url, sort) { data.rssFeedUrl += `?uid=${req.uid}&token=${rssToken}`; } - data.filters = helpers.buildFilters(baseUrl, filter, req.query); + data.filters = helpers.buildFilters(baseUrl, filter, query); data.selectedFilter = data.filters.find(filter => filter && filter.selected); - data.terms = helpers.buildTerms(baseUrl, term, req.query); + data.terms = helpers.buildTerms(baseUrl, term, query); data.selectedTerm = data.terms.find(term => term && term.selected); const pageCount = Math.max(1, Math.ceil(data.topicCount / settings.topicsPerPage));