2 * JavaScript for Special:RecentChanges
12 topLinksCookieName
= 'rcfilters-toplinks-collapsed-state',
13 topLinksCookie
= mw
.cookie
.get( topLinksCookieName
),
14 topLinksCookieValue
= topLinksCookie
|| 'collapsed',
15 filtersModel
= new mw
.rcfilters
.dm
.FiltersViewModel(),
16 changesListModel
= new mw
.rcfilters
.dm
.ChangesListViewModel(),
17 savedQueriesModel
= new mw
.rcfilters
.dm
.SavedQueriesModel(),
18 controller
= new mw
.rcfilters
.Controller( filtersModel
, changesListModel
, savedQueriesModel
),
19 $overlay
= $( '<div>' )
20 .addClass( 'mw-rcfilters-ui-overlay' ),
21 filtersWidget
= new mw
.rcfilters
.ui
.FilterWrapperWidget(
22 controller
, filtersModel
, savedQueriesModel
, { $overlay
: $overlay
} );
24 // TODO: The changesListWrapperWidget should be able to initialize
25 // after the model is ready.
26 // eslint-disable-next-line no-new
27 new mw
.rcfilters
.ui
.ChangesListWrapperWidget(
28 filtersModel
, changesListModel
, $( '.mw-changeslist, .mw-changeslist-empty' ) );
30 controller
.initialize(
31 mw
.config
.get( 'wgStructuredChangeFilters' ),
32 mw
.config
.get( 'wgFormattedNamespaces' ),
33 mw
.config
.get( 'wgRCFiltersChangeTags' )
36 // eslint-disable-next-line no-new
37 new mw
.rcfilters
.ui
.FormWrapperWidget(
38 filtersModel
, changesListModel
, controller
, $( 'fieldset.rcoptions' ) );
40 $( '.rcfilters-container' ).append( filtersWidget
.$element
);
41 $( 'body' ).append( $overlay
);
42 $( '.rcfilters-head' ).addClass( 'mw-rcfilters-ui-ready' );
44 $( 'a.mw-helplink' ).attr(
46 'https://www.mediawiki.org/wiki/Special:MyLanguage/Help:New_filters_for_edit_review'
49 controller
.replaceUrl();
51 toplinksTitle
= new OO
.ui
.ButtonWidget( {
53 indicator
: topLinksCookieValue
=== 'collapsed' ? 'down' : 'up',
54 flags
: [ 'progressive' ],
55 label
: $( '<span>' ).append( mw
.message( 'rcfilters-other-review-tools' ).parse() ).contents()
57 $( '.mw-recentchanges-toplinks-title' ).replaceWith( toplinksTitle
.$element
);
58 // Move the top links to a designated area so it's near the
59 // 'saved filters' button and make it collapsible
60 $( '.mw-recentchanges-toplinks' )
61 .addClass( 'mw-rcfilters-ui-ready' )
63 collapsed
: topLinksCookieValue
=== 'collapsed',
64 $customTogglers
: toplinksTitle
.$element
66 .on( 'beforeExpand.mw-collapsible', function () {
67 mw
.cookie
.set( topLinksCookieName
, 'expanded' );
68 toplinksTitle
.setIndicator( 'up' );
70 .on( 'beforeCollapse.mw-collapsible', function () {
71 mw
.cookie
.set( topLinksCookieName
, 'collapsed' );
72 toplinksTitle
.setIndicator( 'down' );
74 .appendTo( '.mw-rcfilters-ui-filterWrapperWidget-top-placeholder' );
80 module
.exports
= rcfilters
;
82 }( mediaWiki
, jQuery
) );