2021-12-08 21:08:18 +00:00
|
|
|
var watchstar = mw.loader.require( 'mediawiki.page.watch.ajax' ).watchstar;
|
|
|
|
|
2020-09-14 20:46:26 +00:00
|
|
|
( function () {
|
2019-09-19 21:19:07 +00:00
|
|
|
|
2020-09-14 20:46:26 +00:00
|
|
|
var WATCHED_CLASS = [ 'watched', 'mw-ui-icon-wikimedia-unStar-progressive' ],
|
|
|
|
TEMP_WATCHED_CLASS = [ 'temp-watched', 'mw-ui-icon-wikimedia-halfStar-progressive' ],
|
|
|
|
UNWATCHED_CLASS = 'mw-ui-icon-wikimedia-star-base20';
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Tweaks the global watchstar handler in core to use the correct classes for Minerva.
|
|
|
|
*
|
|
|
|
* @param {jQuery.Object} $icon
|
|
|
|
*/
|
|
|
|
function init( $icon ) {
|
2021-12-08 21:08:18 +00:00
|
|
|
var $watchlink = $icon.find( 'a' );
|
|
|
|
watchstar( $watchlink, mw.config.get( 'wgRelevantPageName' ), toggleClasses );
|
2020-09-14 20:46:26 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
*
|
2021-12-08 21:08:18 +00:00
|
|
|
* @param {jQuery.Object} $link
|
|
|
|
* @param {boolean} isWatched
|
2020-09-14 20:46:26 +00:00
|
|
|
* @param {string} expiry
|
|
|
|
*/
|
2021-12-08 21:08:18 +00:00
|
|
|
function toggleClasses( $link, isWatched, expiry ) {
|
|
|
|
$link.removeClass(
|
2020-09-14 20:46:26 +00:00
|
|
|
[].concat( WATCHED_CLASS, TEMP_WATCHED_CLASS, UNWATCHED_CLASS )
|
2020-09-09 22:00:06 +00:00
|
|
|
).addClass( function () {
|
|
|
|
var classes = UNWATCHED_CLASS;
|
2021-12-08 21:08:18 +00:00
|
|
|
if ( isWatched ) {
|
|
|
|
if ( expiry !== null && expiry !== undefined && expiry !== 'infinity' ) {
|
2020-09-14 20:46:26 +00:00
|
|
|
classes = TEMP_WATCHED_CLASS;
|
2020-09-09 22:00:06 +00:00
|
|
|
} else {
|
2020-09-14 20:46:26 +00:00
|
|
|
classes = WATCHED_CLASS;
|
2020-09-09 22:00:06 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
return classes;
|
|
|
|
} );
|
2020-09-14 20:46:26 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
module.exports = {
|
|
|
|
init: init,
|
|
|
|
test: {
|
|
|
|
toggleClasses: toggleClasses
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
|
|
|
}() );
|