diff --git a/controllers/moderation.js b/controllers/moderation.js index f6d5283db..9d716b6c3 100644 --- a/controllers/moderation.js +++ b/controllers/moderation.js @@ -66,6 +66,9 @@ exports.removedItemListPage = function (aReq, aRes, aNext) { }); } + // + options.byModel = aReq.query.byModel !== undefined ? aReq.query.byModel : null; + // Page metadata pageMetadata(options, 'Graveyard'); @@ -77,8 +80,37 @@ exports.removedItemListPage = function (aReq, aRes, aNext) { // removedItemListQuery var removedItemListQuery = Remove.find(); + // removedItemListQuery: byModel + if (options.byModel) { + modelQuery.findOrDefaultIfNull(removedItemListQuery, 'model', options.byModel, null); + } + // removedItemListQuery: Defaults - modelQuery.applyRemovedItemListQueryDefaults(removedItemListQuery, options, aReq); + switch (options.byModel) { + case 'User': + modelQuery.applyRemovedItemUserListQueryDefaults(removedItemListQuery, options, aReq); + break; + case 'Script': + modelQuery.applyRemovedItemScriptListQueryDefaults(removedItemListQuery, options, aReq); + break; + case 'Comment': + modelQuery.applyRemovedItemCommentListQueryDefaults(removedItemListQuery, options, aReq); + break; + case 'Discussion': + modelQuery.applyRemovedItemDiscussionListQueryDefaults(removedItemListQuery, options, aReq); + break; + case 'Flag': + modelQuery.applyRemovedItemFlagListQueryDefaults(removedItemListQuery, options, aReq); + break; + case 'Group': + modelQuery.applyRemovedItemGroupListQueryDefaults(removedItemListQuery, options, aReq); + break; + case 'Vote': + modelQuery.applyRemovedItemVoteListQueryDefaults(removedItemListQuery, options, aReq); + break; + default: + modelQuery.applyRemovedItemListQueryDefaults(removedItemListQuery, options, aReq); + } // removedItemListQuery: Pagination var pagination = options.pagination; // is set in modelQuery.apply___ListQueryDefaults diff --git a/libs/modelQuery.js b/libs/modelQuery.js index fd4f0b7bc..1326dabf2 100644 --- a/libs/modelQuery.js +++ b/libs/modelQuery.js @@ -125,7 +125,7 @@ var parseUserSearchQuery = function (aUserListQuery, aQuery) { fullWordMatchFields: [] }); }; -exports.parseCommentSearchQuery = parseCommentSearchQuery; +exports.parseUserSearchQuery = parseUserSearchQuery; var parseRemovedItemSearchQuery = function (aRemovedItemListQuery, aQuery) { parseModelListSearchQuery(aRemovedItemListQuery, aQuery, { @@ -140,7 +140,7 @@ var parseRemovedItemSearchQuery = function (aRemovedItemListQuery, aQuery) { fullWordMatchFields: ['model'] }); }; -exports.parseCommentSearchQuery = parseCommentSearchQuery; +exports.parseRemovedItemSearchQuery = parseRemovedItemSearchQuery; exports.applyDiscussionCategoryFilter = function (aDiscussionListQuery, aOptions, aCatergorySlug) { if (aCatergorySlug === 'all') { @@ -281,6 +281,104 @@ exports.applyUserListQueryDefaults = function (aUserListQuery, aOptions, aReq) { }); }; +var removedItemUserListQueryDefaults = { + defaultSort: '-removed', + parseSearchQueryFn: parseRemovedItemSearchQuery, + searchBarPlaceholder: 'Search Removed Items in Users', + searchBarFormHiddenVariables: [ + { name: 'byModel', value: 'User' } + ], + filterFlaggedItems: false +} +exports.removedItemUserListQueryDefaults = removedItemUserListQueryDefaults; +exports.applyRemovedItemUserListQueryDefaults = function (aRemovedItemUserListQuery, aOptions, aReq) { + applyModelListQueryDefaults(aRemovedItemUserListQuery, aOptions, aReq, removedItemUserListQueryDefaults); +}; + +var removedItemScriptListQueryDefaults = { + defaultSort: '-removed', + parseSearchQueryFn: parseRemovedItemSearchQuery, + searchBarPlaceholder: 'Search Removed Items in Scripts', + searchBarFormHiddenVariables: [ + { name: 'byModel', value: 'Script' } + ], + filterFlaggedItems: false +} +exports.removedItemScriptListQueryDefaults = removedItemScriptListQueryDefaults; +exports.applyRemovedItemScriptListQueryDefaults = function (aRemovedItemScriptListQuery, aOptions, aReq) { + applyModelListQueryDefaults(aRemovedItemScriptListQuery, aOptions, aReq, removedItemScriptListQueryDefaults); +}; + +var removedItemCommentListQueryDefaults = { + defaultSort: '-removed', + parseSearchQueryFn: parseRemovedItemSearchQuery, + searchBarPlaceholder: 'Search Removed Items in Comments', + searchBarFormHiddenVariables: [ + { name: 'byModel', value: 'Comment' } + ], + filterFlaggedItems: false +} +exports.removedItemCommentListQueryDefaults = removedItemCommentListQueryDefaults; +exports.applyRemovedItemCommentListQueryDefaults = function (aRemovedItemCommentListQuery, aOptions, aReq) { + applyModelListQueryDefaults(aRemovedItemCommentListQuery, aOptions, aReq, removedItemCommentListQueryDefaults); +}; + +var removedItemDiscussionListQueryDefaults = { + defaultSort: '-removed', + parseSearchQueryFn: parseRemovedItemSearchQuery, + searchBarPlaceholder: 'Search Removed Items in Discussions', + searchBarFormHiddenVariables: [ + { name: 'byModel', value: 'Discussion' } + ], + filterFlaggedItems: false +} +exports.removedItemDiscussionListQueryDefaults = removedItemDiscussionListQueryDefaults; +exports.applyRemovedItemDiscussionListQueryDefaults = function (aRemovedItemDiscussionListQuery, aOptions, aReq) { + applyModelListQueryDefaults(aRemovedItemDiscussionListQuery, aOptions, aReq, removedItemDiscussionListQueryDefaults); +}; + +var removedItemFlagListQueryDefaults = { + defaultSort: '-removed', + parseSearchQueryFn: parseRemovedItemSearchQuery, + searchBarPlaceholder: 'Search Removed Items in Flags', + searchBarFormHiddenVariables: [ + { name: 'byModel', value: 'Flag' } + ], + filterFlaggedItems: false +} +exports.removedItemFlagListQueryDefaults = removedItemFlagListQueryDefaults; +exports.applyRemovedItemFlagListQueryDefaults = function (aRemovedItemFlagListQuery, aOptions, aReq) { + applyModelListQueryDefaults(aRemovedItemFlagListQuery, aOptions, aReq, removedItemFlagListQueryDefaults); +}; + +var removedItemGroupListQueryDefaults = { + defaultSort: '-removed', + parseSearchQueryFn: parseRemovedItemSearchQuery, + searchBarPlaceholder: 'Search Removed Items in Groups', + searchBarFormHiddenVariables: [ + { name: 'byModel', value: 'Group' } + ], + filterFlaggedItems: false +} +exports.removedItemGroupListQueryDefaults = removedItemGroupListQueryDefaults; +exports.applyRemovedItemGroupListQueryDefaults = function (aRemovedItemGroupListQuery, aOptions, aReq) { + applyModelListQueryDefaults(aRemovedItemGroupListQuery, aOptions, aReq, removedItemGroupListQueryDefaults); +}; + +var removedItemVoteListQueryDefaults = { + defaultSort: '-removed', + parseSearchQueryFn: parseRemovedItemSearchQuery, + searchBarPlaceholder: 'Search Removed Items in Votes', + searchBarFormHiddenVariables: [ + { name: 'byModel', value: 'Vote' } + ], + filterFlaggedItems: false +} +exports.removedItemVoteListQueryDefaults = removedItemVoteListQueryDefaults; +exports.applyRemovedItemVoteListQueryDefaults = function (aRemovedItemVoteListQuery, aOptions, aReq) { + applyModelListQueryDefaults(aRemovedItemVoteListQuery, aOptions, aReq, removedItemVoteListQueryDefaults); +}; + exports.applyRemovedItemListQueryDefaults = function (aRemovedItemListQuery, aOptions, aReq) { applyModelListQueryDefaults(aRemovedItemListQuery, aOptions, aReq, { defaultSort: '-removed', diff --git a/views/includes/removedItemList.html b/views/includes/removedItemList.html index ab5aaeb46..93cc51a64 100644 --- a/views/includes/removedItemList.html +++ b/views/includes/removedItemList.html @@ -1,11 +1,11 @@ - + - - + + diff --git a/views/pages/removedItemListPage.html b/views/pages/removedItemListPage.html index 4ae6bf8d9..2357d80f6 100644 --- a/views/pages/removedItemListPage.html +++ b/views/pages/removedItemListPage.html @@ -30,15 +30,16 @@

{{> includes/searchBarPanel.html }}

Filters

- Clear search - Users - Scripts - Comments - Discussion - Flags - Groups - Votes + Clear Filter + User + Script + Comment + Discussion + Flag + Group + Vote
+
TypeModel Item ReasonRemoved ByDateRemoved ByDate