X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=resources%2Fsrc%2Fmediawiki.rcfilters%2Fmw.rcfilters.init.js;h=701e61d1b26322509c35952ee8147b8c3c09ff4b;hb=b8a7d492ebf6dc199efedb110785cef3a89ef850;hp=e758f26fcd6816fcb530a030f98f987a41ce7785;hpb=50075483570e5106b3e8a2b3f469c8fe5254a1cf;p=lhc%2Fweb%2Fwiklou.git
diff --git a/resources/src/mediawiki.rcfilters/mw.rcfilters.init.js b/resources/src/mediawiki.rcfilters/mw.rcfilters.init.js
index e758f26fcd..701e61d1b2 100644
--- a/resources/src/mediawiki.rcfilters/mw.rcfilters.init.js
+++ b/resources/src/mediawiki.rcfilters/mw.rcfilters.init.js
@@ -2,27 +2,30 @@
* JavaScript for Special:RecentChanges
*/
( function ( mw, $ ) {
- /**
- * @class mw.rcfilters
- * @singleton
- */
var rcfilters = {
- /** */
+ /**
+ * @member mw.rcfilters
+ * @private
+ */
init: function () {
- var filtersModel = new mw.rcfilters.dm.FiltersViewModel(),
+ var toplinksTitle,
+ topLinksCookieName = 'rcfilters-toplinks-collapsed-state',
+ topLinksCookie = mw.cookie.get( topLinksCookieName ),
+ topLinksCookieValue = topLinksCookie || 'collapsed',
+ filtersModel = new mw.rcfilters.dm.FiltersViewModel(),
changesListModel = new mw.rcfilters.dm.ChangesListViewModel(),
savedQueriesModel = new mw.rcfilters.dm.SavedQueriesModel(),
controller = new mw.rcfilters.Controller( filtersModel, changesListModel, savedQueriesModel ),
$overlay = $( '
' )
.addClass( 'mw-rcfilters-ui-overlay' ),
filtersWidget = new mw.rcfilters.ui.FilterWrapperWidget(
- controller, filtersModel, savedQueriesModel, { $overlay: $overlay } );
+ controller, filtersModel, savedQueriesModel, changesListModel, { $overlay: $overlay } );
// TODO: The changesListWrapperWidget should be able to initialize
// after the model is ready.
// eslint-disable-next-line no-new
new mw.rcfilters.ui.ChangesListWrapperWidget(
- filtersModel, changesListModel, $( '.mw-changeslist, .mw-changeslist-empty' ) );
+ filtersModel, changesListModel, controller, $( '.mw-changeslist, .mw-changeslist-empty' ) );
controller.initialize(
mw.config.get( 'wgStructuredChangeFilters' ),
@@ -44,6 +47,31 @@
);
controller.replaceUrl();
+
+ toplinksTitle = new OO.ui.ButtonWidget( {
+ framed: false,
+ indicator: topLinksCookieValue === 'collapsed' ? 'down' : 'up',
+ flags: [ 'progressive' ],
+ label: $( '' ).append( mw.message( 'rcfilters-other-review-tools' ).parse() ).contents()
+ } );
+ $( '.mw-recentchanges-toplinks-title' ).replaceWith( toplinksTitle.$element );
+ // Move the top links to a designated area so it's near the
+ // 'saved filters' button and make it collapsible
+ $( '.mw-recentchanges-toplinks' )
+ .addClass( 'mw-rcfilters-ui-ready' )
+ .makeCollapsible( {
+ collapsed: topLinksCookieValue === 'collapsed',
+ $customTogglers: toplinksTitle.$element
+ } )
+ .on( 'beforeExpand.mw-collapsible', function () {
+ mw.cookie.set( topLinksCookieName, 'expanded' );
+ toplinksTitle.setIndicator( 'up' );
+ } )
+ .on( 'beforeCollapse.mw-collapsible', function () {
+ mw.cookie.set( topLinksCookieName, 'collapsed' );
+ toplinksTitle.setIndicator( 'down' );
+ } )
+ .appendTo( '.mw-rcfilters-ui-filterWrapperWidget-top-placeholder' );
}
};