mediawiki-skins-MinervaNeue/resources/skins.minerva.categories/init.js
Stephen Niedzielski 9431e9a6e3 Hygiene: move CategoryAddOverlay window use to client
MinervaNeue should be solely responsible for controlling the flow of its
own UI. This patch puts the responsibility for changing the add category
dialog state when a category has successfully been added onto
MinervaNeue.

Bug: T173539
Related: Ic61ac46e21f510e5b168d7d98b68a59429eb7044
Change-Id: I5010d5ad1a27f09c1c5b0b4188dcec445cc3229f
2018-03-01 18:17:34 +00:00

56 lines
1.5 KiB
JavaScript

( function ( M, $ ) {
var loader = M.require( 'mobile.startup/rlModuleLoader' ),
overlayManager = M.require( 'skins.minerva.scripts/overlayManager' ),
user = M.require( 'mobile.startup/user' );
// categories overlay
overlayManager.add( /^\/categories$/, function () {
var result = $.Deferred();
loader.loadModule( 'mobile.categories.overlays', true ).done( function ( loadingOverlay ) {
var CategoryOverlay = M.require( 'mobile.categories.overlays/CategoryOverlay' );
M.on( 'category-added', function () {
window.location.hash = '#/categories';
} );
loadingOverlay.hide();
result.resolve( new CategoryOverlay( {
api: new mw.Api(),
isAnon: user.isAnon(),
title: M.getCurrentPage().title
} ) );
} );
return result;
} );
// add categories overlay
overlayManager.add( /^\/categories\/add$/, function () {
var result = $.Deferred();
loader.loadModule( 'mobile.categories.overlays' ).done( function ( loadingOverlay ) {
var CategoryAddOverlay = M.require( 'mobile.categories.overlays/CategoryAddOverlay' );
loadingOverlay.hide();
result.resolve( new CategoryAddOverlay( {
api: new mw.Api(),
categories: mw.config.get( 'wgCategories' ),
isAnon: user.isAnon(),
title: M.getCurrentPage().title
} ) );
} );
return result;
} );
/**
* Enable the categories button
* @ignore
*/
function initButton() {
$( '.category-button' ).removeClass( 'hidden' );
}
$( initButton );
}( mw.mobileFrontend, jQuery ) );