2 * JavaScript for Special:RecentChanges
15 savedQueriesPreferenceName
= mw
.config
.get( 'wgStructuredChangeFiltersSavedQueriesPreferenceName' ),
16 filtersModel
= new mw
.rcfilters
.dm
.FiltersViewModel(),
17 changesListModel
= new mw
.rcfilters
.dm
.ChangesListViewModel(),
18 savedQueriesModel
= new mw
.rcfilters
.dm
.SavedQueriesModel(),
19 controller
= new mw
.rcfilters
.Controller(
20 filtersModel
, changesListModel
, savedQueriesModel
,
22 savedQueriesPreferenceName
: savedQueriesPreferenceName
25 $overlay
= $( '<div>' )
26 .addClass( 'mw-rcfilters-ui-overlay' ),
27 filtersWidget
= new mw
.rcfilters
.ui
.FilterWrapperWidget(
28 controller
, filtersModel
, savedQueriesModel
, changesListModel
, { $overlay
: $overlay
} ),
29 savedLinksListWidget
= new mw
.rcfilters
.ui
.SavedLinksListWidget(
30 controller
, savedQueriesModel
, { $overlay
: $overlay
}
32 currentPage
= mw
.config
.get( 'wgCanonicalNamespace' ) +
34 mw
.config
.get( 'wgCanonicalSpecialPageName' );
36 // TODO: The changesListWrapperWidget should be able to initialize
37 // after the model is ready.
38 // eslint-disable-next-line no-new
39 new mw
.rcfilters
.ui
.ChangesListWrapperWidget(
40 filtersModel
, changesListModel
, controller
, $( '.mw-changeslist, .mw-changeslist-empty' ) );
42 controller
.initialize(
43 mw
.config
.get( 'wgStructuredChangeFilters' ),
44 mw
.config
.get( 'wgFormattedNamespaces' ),
45 mw
.config
.get( 'wgRCFiltersChangeTags' )
48 // eslint-disable-next-line no-new
49 new mw
.rcfilters
.ui
.FormWrapperWidget(
50 filtersModel
, changesListModel
, controller
, $( 'fieldset.cloptions' ) );
52 $( '.rcfilters-container' ).append( filtersWidget
.$element
);
53 $( 'body' ).append( $overlay
);
54 $( '.rcfilters-head' ).addClass( 'mw-rcfilters-ui-ready' );
56 $( 'a.mw-helplink' ).attr(
58 'https://www.mediawiki.org/wiki/Special:MyLanguage/Help:New_filters_for_edit_review'
61 controller
.replaceUrl();
63 if ( currentPage
=== 'Special:Recentchanges' ||
64 currentPage
=== 'Special:Recentchangeslinked' ) {
65 $topLinks
= $( '.mw-recentchanges-toplinks' ).detach();
67 rcTopSection
= new mw
.rcfilters
.ui
.RcTopSectionWidget(
68 savedLinksListWidget
, $topLinks
70 filtersWidget
.setTopSection( rcTopSection
.$element
);
73 if ( currentPage
=== 'Special:Watchlist' ) {
74 $( '#contentSub, form#mw-watchlist-resetbutton' ).detach();
75 $watchlistDetails
= $( '.watchlistDetails' ).detach().contents();
77 wlTopSection
= new mw
.rcfilters
.ui
.WatchlistTopSectionWidget(
78 controller
, changesListModel
, savedLinksListWidget
, $watchlistDetails
80 filtersWidget
.setTopSection( wlTopSection
.$element
);
87 module
.exports
= rcfilters
;
89 }( mediaWiki
, jQuery
) );