From 1a48a6e824ea2317f2dc35088392e90deee7ed70 Mon Sep 17 00:00:00 2001 From: Martii Date: Wed, 21 Oct 2015 05:11:57 -0600 Subject: [PATCH] Finish enabling hidden QSP in User Script List pages * Turns `library` into a tri-state, but only on User Script List pages * Missed a few labels too in #777 * Commented it as much as I can for clarity for those not familiar with multi-state QSP's * Kept the view duplicated for clarity... does make twice the management task but this should be low-maintenance e.g. won't change much Post #643 --- controllers/index.js | 4 +-- controllers/user.js | 26 +++++++++++++++---- .../includes/flagAdminToolFlaggedFilters.html | 13 +++++++--- views/pages/modPage.html | 2 +- 4 files changed, 34 insertions(+), 11 deletions(-) diff --git a/controllers/index.js b/controllers/index.js index eaba4b7ca..86e50be83 100644 --- a/controllers/index.js +++ b/controllers/index.js @@ -136,7 +136,7 @@ exports.home = function (aReq, aRes) { if (options.librariesOnly) { options.pageHeading = !!options.isFlagged ? 'Flagged Libraries' : 'Libraries'; } else { - options.pageHeading = !!options.isFlagged ? 'Flagged Scripts' : 'Scripts'; + options.pageHeading = !!options.isFlagged ? 'Flagged Userscripts' : 'Scripts'; } // Page metadata @@ -144,7 +144,7 @@ exports.home = function (aReq, aRes) { if (options.librariesOnly) { pageMetadata(options, ['Flagged Libraries', 'Moderation']); } else { - pageMetadata(options, ['Flagged Scripts', 'Moderation']); + pageMetadata(options, ['Flagged Userscripts', 'Moderation']); } } } diff --git a/controllers/user.js b/controllers/user.js index ca8872fe0..c1b4fc9fa 100644 --- a/controllers/user.js +++ b/controllers/user.js @@ -474,7 +474,19 @@ exports.userScriptListPage = function (aReq, aRes, aNext) { var user = options.user = modelParser.parseUser(aUserData); options.isYou = authedUser && user && authedUser._id == user._id; - options.librariesOnly = aReq.query.library !== undefined; + var librariesOnly = null; + + switch (aReq.query.library) { + case 'true': // List just libraries + options.includeLibraries = true; + librariesOnly = true; + break; + case 'false': // List just userscripts + options.excludeLibraries = true; + // fallthrough + default: // List userscripts and libraries + librariesOnly = false; + } // Page metadata pageMetadata(options, [user.name, 'Users']); @@ -492,16 +504,20 @@ exports.userScriptListPage = function (aReq, aRes, aNext) { // scriptListQuery: author=user scriptListQuery.find({ _authorId: user._id }); + if (options.includeLibraries) { // List just Libraries and not Userscripts + // scriptListQuery: isLib + modelQuery.findOrDefaultToNull(scriptListQuery, 'isLib', librariesOnly, false); + } // scriptListQuery: Defaults - if (options.librariesOnly) { - // scriptListQuery: isLib - modelQuery.findOrDefaultToNull(scriptListQuery, 'isLib', options.librariesOnly, false); + if (options.excludeLibraries) { // List just Userscripts and not Libraries + // scriptListQuery: isLib + modelQuery.findOrDefaultToNull(scriptListQuery, 'isLib', librariesOnly, false); // Libraries modelQuery.applyLibraryListQueryDefaults(scriptListQuery, options, aReq); } else { - // Scripts (all including libraries) + // List Userscripts and Libraries modelQuery.applyScriptListQueryDefaults(scriptListQuery, options, aReq); } diff --git a/views/includes/flagAdminToolFlaggedFilters.html b/views/includes/flagAdminToolFlaggedFilters.html index d39ad3eed..6c68a6641 100644 --- a/views/includes/flagAdminToolFlaggedFilters.html +++ b/views/includes/flagAdminToolFlaggedFilters.html @@ -1,6 +1,13 @@

Filters

- Clear Filter - Critical Flags - Absolute Flags + {{#isUserScriptListPage}} + Clear Filter + Critical Flags + Absolute Flags + {{/isUserScriptListPage}} + {{^isUserScriptListPage}} + Clear Filter + Critical Flags + Absolute Flags + {{/isUserScriptListPage}}
diff --git a/views/pages/modPage.html b/views/pages/modPage.html index 39ec43380..98eb8bf17 100644 --- a/views/pages/modPage.html +++ b/views/pages/modPage.html @@ -13,7 +13,7 @@

Flagged Items

These are items over their threshold.

- Flagged Scripts + Flagged Userscripts Flagged Libraries