mediawiki-skins-MinervaNeue/resources/skins.minerva.scripts/setup.js
Martin Urbanec 0109b17483 watchlist: Don't assume only named users have watchlist access
In I1ccda3878a658d4251429ae65ebee04c09d81243, core decided
to technically allow temp. users to have watchlist access,
but have it disabled on permission level
(viewmywatchlist / editmywatchlist) instead of by isNamed() checks.

Minerva expects the watchlist permissions to be assigned to everyone,
but actual watchlist access to be available only to named user.
This is an incorrect assumption. Make a clear difference between
"page is watchable" concept (watch icon should show) and "user has
permission to watch" (if not, CTA to log in should show).

There is one additional step to fix, which is ensure
temp users receive the T330518 drawer. That is not a bug
in MinervaNeue, but in core -- mediawiki.page.watch.ajax.js uses
e.stopPropagating(), which means Minerva's CtaDrawer doesn't get
a say. Ideally, mediawiki.page.watch.ajax.js would know whether
the user has permissions to edit their watchlist. Alternatively,
it could have an interface to allow extensions to add their own
error handling. See T344925 for details.

Bug: T344870
Change-Id: Id1757fb4fb433fe39cf4d5c6e1e9c65ab5abae14
2023-08-24 14:12:43 +00:00

45 lines
1.2 KiB
JavaScript

/**
* This setups the Minerva skin.
* It should run without errors even if MobileFrontend is not installed.
*/
var ms = require( 'mobile.startup' ),
addPortletLink = require( './addPortletLink.js' );
function init() {
var permissions = mw.config.get( 'wgMinervaPermissions' ) || {},
// eslint-disable-next-line no-jquery/no-global-selector
$watch = $( '#page-actions-watch' );
if ( permissions.watch ) {
require( './watchstar.js' ).init( $watch );
}
addPortletLink.init();
mw.hook( 'util.addPortletLink' ).add(
addPortletLink.hookHandler
);
// Setup Minerva with MobileFrontend
if ( ms && !ms.stub ) {
require( './initMobile.js' )();
} else {
// MOBILEFRONTEND IS NOT INSTALLED.
// setup search for desktop Minerva at mobile resolution without MobileFrontend.
require( './searchSuggestReveal.js' )();
}
// This hot fix should be reviewed and possibly removed circa January 2021.
// It's assumed that Apple will prioritize fixing this bug in one of its next releases.
// See T264376.
if ( navigator.userAgent.match( /OS 14_[0-9]/ ) ) {
document.body.classList.add( 'hotfix-T264376' );
}
}
init();
module.exports = {
// Version number allows breaking changes to be detected by other extensions
VERSION: 1
};