X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=resources%2Fsrc%2Fmediawiki.rcfilters%2Fmw.rcfilters.init.js;h=12a83cda094a1e4baf4a1cad3993e57097088a3d;hb=7911744c3d66256fc4cd187723156e7ef36fc412;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..12a83cda09 100644 --- a/resources/src/mediawiki.rcfilters/mw.rcfilters.init.js +++ b/resources/src/mediawiki.rcfilters/mw.rcfilters.init.js @@ -2,14 +2,17 @@ * 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 ), @@ -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' ); } };