Fix order of @var parameter in PHP
[lhc/web/wiklou.git] / resources / src / mediawiki.rcfilters / mw.rcfilters.js
1 ( function () {
2 /**
3 * @class
4 * @singleton
5 */
6 mw.rcfilters = {
7 Controller: require( './Controller.js' ),
8 UriProcessor: require( './UriProcessor.js' ),
9 dm: {
10 ChangesListViewModel: require( './dm/ChangesListViewModel.js' ),
11 FilterGroup: require( './dm/FilterGroup.js' ),
12 FilterItem: require( './dm/FilterItem.js' ),
13 FiltersViewModel: require( './dm/FiltersViewModel.js' ),
14 ItemModel: require( './dm/ItemModel.js' ),
15 SavedQueriesModel: require( './dm/SavedQueriesModel.js' ),
16 SavedQueryItemModel: require( './dm/SavedQueryItemModel.js' )
17 },
18 ui: {},
19 utils: {
20 addArrayElementsUnique: function ( arr, elements ) {
21 elements = Array.isArray( elements ) ? elements : [ elements ];
22
23 elements.forEach( function ( element ) {
24 if ( arr.indexOf( element ) === -1 ) {
25 arr.push( element );
26 }
27 } );
28
29 return arr;
30 },
31 normalizeParamOptions: function ( givenOptions, legalOptions ) {
32 var result = [];
33
34 if ( givenOptions.indexOf( 'all' ) > -1 ) {
35 // If anywhere in the values there's 'all', we
36 // treat it as if only 'all' was selected.
37 // Example: param=valid1,valid2,all
38 // Result: param=all
39 return [ 'all' ];
40 }
41
42 // Get rid of any dupe and invalid parameter, only output
43 // valid ones
44 // Example: param=valid1,valid2,invalid1,valid1
45 // Result: param=valid1,valid2
46 givenOptions.forEach( function ( value ) {
47 if (
48 legalOptions.indexOf( value ) > -1 &&
49 result.indexOf( value ) === -1
50 ) {
51 result.push( value );
52 }
53 } );
54
55 return result;
56 }
57 }
58 };
59
60 module.exports = mw.rcfilters;
61 }() );