@@ -182,25 +182,59 @@ var applyModelListQueryFlaggedFilter = function (aModelListQuery, aOptions, aFla
182182 if ( aOptions . isYou || aOptions . isMod ) {
183183 // Mod
184184 if ( aFlaggedQuery ) {
185- if ( aFlaggedQuery === 'true' ) {
186- aOptions . isFlagged = true ;
187- aOptions . searchBarPlaceholder = aOptions . searchBarPlaceholder . replace ( / ^ S e a r c h / , 'Search Flagged ' ) ;
188- if ( ! _ . findWhere ( aOptions . searchBarFormHiddenVariables , { name : 'flagged' } ) ) {
189- aOptions . searchBarFormHiddenVariables . push ( { name : 'flagged' , value : 'true' } ) ;
190- }
191- aModelListQuery . and ( { flags : { $gt : 0 } } ) ;
185+
186+ aOptions . isFlagged = aFlaggedQuery ;
187+ aOptions . searchBarPlaceholder = aOptions . searchBarPlaceholder . replace (
188+ / ^ S e a r c h / , 'Search Flagged '
189+ ) ;
190+
191+ switch ( aOptions . isFlagged ) {
192+ case 'none' :
193+ if ( aOptions . isAdmin ) {
194+ // Filter nothing but still show Flagged column
195+ break ;
196+ }
197+ // fallthrough
198+ case 'absolute' :
199+ if ( aOptions . isAdmin ) {
200+ aOptions . filterAbsolute = true ;
201+ aModelListQuery . and ( { flagsAbsolute : { $gt : 0 } } ) ; // TODO: This does not exist yet
202+ break ;
203+ }
204+ // fallthrough
205+ default :
206+ // Ensure default depending on role
207+ if ( aOptions . isAdmin ) {
208+ aOptions . isFlagged = 'critical' ;
209+ aOptions . filterCritical = true ;
210+
211+ } else {
212+ aOptions . isFlagged = 'true' ;
213+ }
214+
215+ aModelListQuery . and ( { flags : { $gt : 0 } } ) ;
216+ break ;
217+ }
218+
219+ if ( ! _ . findWhere ( aOptions . searchBarFormHiddenVariables , { name : 'flagged' } ) ) {
220+ aOptions . searchBarFormHiddenVariables . push ( { name : 'flagged' , value : aOptions . isFlagged } ) ;
192221 }
222+
193223 } else {
224+
194225 // Remove `flagged` form variable if present
195226 aOptions . searchBarFormHiddenVariables = _ . without (
196227 aOptions . searchBarFormHiddenVariables ,
197- _ . findWhere ( aOptions . searchBarFormHiddenVariables , { name : 'flagged' , value : 'true' } )
228+ _ . findWhere ( aOptions . searchBarFormHiddenVariables , { name : 'flagged' } )
198229 ) ;
230+
199231 }
200232 } else {
233+
201234 // Hide
202235 // Script.flagged is undefined by default.
203236 aModelListQuery . and ( { flagged : { $ne : true } } ) ;
237+
204238 }
205239} ;
206240exports . applyModelListQueryFlaggedFilter = applyModelListQueryFlaggedFilter ;
0 commit comments