From b797cef1679371b7d3e3c25d29517a890ef46214 Mon Sep 17 00:00:00 2001 From: teddit Date: Sat, 11 Jun 2022 13:42:19 +0200 Subject: [PATCH] fix clean_homepage feature so that the user can enable or disable it despite of the instance config --- routes/home.js | 24 ++++++++++++------------ views/preferences.pug | 7 +++---- 2 files changed, 15 insertions(+), 16 deletions(-) diff --git a/routes/home.js b/routes/home.js index 6acc1ea..8ffe00e 100644 --- a/routes/home.js +++ b/routes/home.js @@ -5,22 +5,22 @@ const homeRoute = require('express').Router(); const processJsonSubreddit = require('../inc/processJsonSubreddit.js'); const tedditApiSubreddit = require('../inc/teddit_api/handleSubreddit.js')(); const processMoreComments = require('../inc/processMoreComments.js')(); -const frontpagePath = config.clean_homepage ? '/frontpage' : ''; -if (config.clean_homepage) { - homeRoute.get('/', (req, res, next) => { - if (req.cookies.clean_homepage && req.cookies.clean_homepage == 'true') { - return res.redirect('/frontpage'); - } - - res.render('homepage', { +homeRoute.get('/', (req, res, next) => { + if ( + (config.clean_homepage && req.cookies.prefer_frontpage !== 'true') || + (!config.clean_homepage && req.cookies.prefer_frontpage == 'undefined') + ) { + return res.render('homepage', { user_preferences: req.cookies, internal_config: config, }); - }); -} + } -homeRoute.get(`${frontpagePath}/:sort?`, async (req, res, next) => { + next(); +}); + +homeRoute.get([`/:sort?`, '/frontpage'], async (req, res, next) => { let past = req.query.t; let before = req.query.before; let after = req.query.after; @@ -81,7 +81,7 @@ homeRoute.get(`${frontpagePath}/:sort?`, async (req, res, next) => { d = `&before=${before}`; } - if (sortby == '') { + if (sortby == '' || sortby == 'frontpage') { sortby = 'hot'; } diff --git a/views/preferences.pug b/views/preferences.pug index 9b7eb1d..8ba9d1a 100644 --- a/views/preferences.pug +++ b/views/preferences.pug @@ -104,12 +104,11 @@ html if(!user_preferences.show_upvotes || user_preferences.show_upvotes == 'true') input(type="checkbox", name="show_upvotes", id="show_upvotes", checked="checked") else - input(type="checkbox", name="show_upvotes", id="show_upvotes") - if instance_config.clean_homepage + input(type="checkbox", name="show_upvotes", id="show_upvotes") .setting label(for="prefer_frontpage") Prefer reddit-style frontpage as homepage: - if(user_preferences.prefer_frontpage == 'true') - input(type="checkbox", name="prefer_frontpage", id="prefer_frontpage", checked="true") + if ((!instance_config.clean_homepage && !user_preferences.prefer_frontpage) || user_preferences.prefer_frontpage == 'true') + input(type="checkbox", name="prefer_frontpage", id="prefer_frontpage", checked="checked") else input(type="checkbox", name="prefer_frontpage", id="prefer_frontpage") legend Media