From 77dde41f7b5a9da53a2f7368e1a420a1611cdf34 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Tue, 25 May 2021 11:57:10 -0400 Subject: [PATCH] feat: keep query string when redirecting category --- src/controllers/category.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/controllers/category.js b/src/controllers/category.js index b8c7c56323..04bd22d213 100644 --- a/src/controllers/category.js +++ b/src/controllers/category.js @@ -14,6 +14,7 @@ const helpers = require('./helpers'); const utils = require('../utils'); const translator = require('../translator'); const analytics = require('../analytics'); +const qs = require('querystring'); const categoryController = module.exports; @@ -42,7 +43,7 @@ categoryController.get = async function (req, res, next) { return next(); } if (topicIndex < 0) { - return helpers.redirect(res, `/category/${categoryFields.slug}`); + return helpers.redirect(res, `/category/${categoryFields.slug}?${qs.stringify(req.query)}`); } if (!userPrivileges.read) { @@ -50,7 +51,7 @@ categoryController.get = async function (req, res, next) { } if (!res.locals.isAPI && !req.params.slug && (categoryFields.slug && categoryFields.slug !== `${cid}/`)) { - return helpers.redirect(res, `/category/${categoryFields.slug}`, true); + return helpers.redirect(res, `/category/${categoryFields.slug}?${qs.stringify(req.query)}`, true); } if (categoryFields.link) { @@ -86,7 +87,7 @@ categoryController.get = async function (req, res, next) { } if (topicIndex > Math.max(categoryData.topic_count - 1, 0)) { - return helpers.redirect(res, `/category/${categoryData.slug}/${categoryData.topic_count}`); + return helpers.redirect(res, `/category/${categoryData.slug}/${categoryData.topic_count}?${qs.stringify(req.query)}`); } const pageCount = Math.max(1, Math.ceil(categoryData.topic_count / userSettings.topicsPerPage)); if (userSettings.usePagination && currentPage > pageCount) {