Merge "RCFilters: Make namespace and tag features no longer experimental"
[lhc/web/wiklou.git] / resources / src / mediawiki.rcfilters / mw.rcfilters.init.js
1 /*!
2 * JavaScript for Special:RecentChanges
3 */
4 ( function ( mw, $ ) {
5 var rcfilters = {
6 /**
7 * @member mw.rcfilters
8 * @private
9 */
10 init: function () {
11 var filtersModel = new mw.rcfilters.dm.FiltersViewModel(),
12 changesListModel = new mw.rcfilters.dm.ChangesListViewModel(),
13 savedQueriesModel = new mw.rcfilters.dm.SavedQueriesModel(),
14 controller = new mw.rcfilters.Controller( filtersModel, changesListModel, savedQueriesModel ),
15 $overlay = $( '<div>' )
16 .addClass( 'mw-rcfilters-ui-overlay' ),
17 filtersWidget = new mw.rcfilters.ui.FilterWrapperWidget(
18 controller, filtersModel, savedQueriesModel, { $overlay: $overlay } );
19
20 // TODO: The changesListWrapperWidget should be able to initialize
21 // after the model is ready.
22 // eslint-disable-next-line no-new
23 new mw.rcfilters.ui.ChangesListWrapperWidget(
24 filtersModel, changesListModel, $( '.mw-changeslist, .mw-changeslist-empty' ) );
25
26 controller.initialize(
27 mw.config.get( 'wgStructuredChangeFilters' ),
28 mw.config.get( 'wgFormattedNamespaces' ),
29 mw.config.get( 'wgRCFiltersChangeTags' )
30 );
31
32 // eslint-disable-next-line no-new
33 new mw.rcfilters.ui.FormWrapperWidget(
34 filtersModel, changesListModel, controller, $( 'fieldset.rcoptions' ) );
35
36 $( '.rcfilters-container' ).append( filtersWidget.$element );
37 $( 'body' ).append( $overlay );
38 $( '.rcfilters-head' ).addClass( 'mw-rcfilters-ui-ready' );
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 ) );