Merge "ChangeTags: Remove $wgRequest abuse in modifyDisplayQuery()"
[lhc/web/wiklou.git] / resources / src / mediawiki.rcfilters / mw.rcfilters.init.js
1 /*!
2 * JavaScript for Special:RecentChanges
3 */
4 ( function ( mw, $ ) {
5 /**
6 * @class mw.rcfilters
7 * @singleton
8 */
9 var rcfilters = {
10 /** */
11 init: function () {
12 var filtersModel = new mw.rcfilters.dm.FiltersViewModel(),
13 changesListModel = new mw.rcfilters.dm.ChangesListViewModel(),
14 savedQueriesModel = new mw.rcfilters.dm.SavedQueriesModel(),
15 controller = new mw.rcfilters.Controller( filtersModel, changesListModel, savedQueriesModel ),
16 $overlay = $( '<div>' )
17 .addClass( 'mw-rcfilters-ui-overlay' ),
18 filtersWidget = new mw.rcfilters.ui.FilterWrapperWidget(
19 controller, filtersModel, savedQueriesModel, { $overlay: $overlay } );
20
21 // TODO: The changesListWrapperWidget should be able to initialize
22 // after the model is ready.
23 // eslint-disable-next-line no-new
24 new mw.rcfilters.ui.ChangesListWrapperWidget(
25 filtersModel, changesListModel, $( '.mw-changeslist, .mw-changeslist-empty' ) );
26
27 controller.initialize(
28 mw.config.get( 'wgStructuredChangeFilters' ),
29 mw.config.get( 'wgFormattedNamespaces' ),
30 mw.config.get( 'wgRCFiltersChangeTags' )
31 );
32
33 // eslint-disable-next-line no-new
34 new mw.rcfilters.ui.FormWrapperWidget(
35 filtersModel, changesListModel, controller, $( 'fieldset.rcoptions' ) );
36
37 $( '.rcfilters-container' ).append( filtersWidget.$element );
38 $( 'body' ).append( $overlay );
39
40 $( 'a.mw-helplink' ).attr(
41 'href',
42 'https://www.mediawiki.org/wiki/Special:MyLanguage/Help:New_filters_for_edit_review'
43 );
44
45 controller.replaceUrl();
46 }
47 };
48
49 $( rcfilters.init );
50
51 module.exports = rcfilters;
52
53 }( mediaWiki, jQuery ) );