diff --git a/src/controllers/mods.js b/src/controllers/mods.js index ece6442889..e456f24959 100644 --- a/src/controllers/mods.js +++ b/src/controllers/mods.js @@ -18,6 +18,11 @@ modsController.flags.list = function (req, res, next) { var hasFilter; var validFilters = ['assignee', 'state', 'reporterId', 'type', 'targetUid', 'cid', 'quick', 'page', 'perPage']; + // Reset filters if explicitly requested + if (parseInt(req.query.reset, 10) === 1) { + delete req.session.flags_filters; + } + async.waterfall([ function (next) { async.parallel({ @@ -49,6 +54,12 @@ modsController.flags.list = function (req, res, next) { }, {}); hasFilter = !!Object.keys(filters).length; + if (!hasFilter && req.session.hasOwnProperty('flags_filters')) { + // Load filters from session object + filters = req.session.flags_filters; + hasFilter = true; + } + if (res.locals.cids) { if (!filters.cid) { // If mod and no cid filter, add filter for their modded categories @@ -69,6 +80,9 @@ modsController.flags.list = function (req, res, next) { hasFilter = false; } + // Save filters into session unless removed + req.session.flags_filters = filters; + async.parallel({ flags: async.apply(flags.list, filters, req.uid), analytics: async.apply(analytics.getDailyStatsForSet, 'analytics:flags', Date.now(), 30),