2 * JavaScript for Special:RecentChanges
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
} );
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' ) );
27 controller
.initialize(
28 mw
.config
.get( 'wgStructuredChangeFilters' ),
29 mw
.config
.get( 'wgFormattedNamespaces' ),
30 mw
.config
.get( 'wgRCFiltersChangeTags' )
33 // eslint-disable-next-line no-new
34 new mw
.rcfilters
.ui
.FormWrapperWidget(
35 filtersModel
, changesListModel
, controller
, $( 'fieldset.rcoptions' ) );
37 $( '.rcfilters-container' ).append( filtersWidget
.$element
);
38 $( 'body' ).append( $overlay
);
41 $( '.rcfilters-head' ).addClass( 'mw-rcfilters-ui-ready' );
43 window
.addEventListener( 'popstate', function () {
44 // Update the state of the model from the URL
45 // and re-fetch results into the changes list
46 controller
.updateStateFromUrl();
49 $( 'a.mw-helplink' ).attr(
51 'https://www.mediawiki.org/wiki/Special:MyLanguage/Help:New_filters_for_edit_review'
54 controller
.replaceUrl();
60 module
.exports
= rcfilters
;
62 }( mediaWiki
, jQuery
) );