Interested Article - Gadget-common-special-watchlist.js

JS-код ниже относится к гаджету common-special-watchlist . Он включён по умолчанию.

После сохранения или недавних изменений очистите кэш браузера .

/* Не удаляйте проверку на название спецстраницы */
mw.loader.using( 'mediawiki.storage', () => {
	if ( mw.config.get( 'wgCanonicalSpecialPageName' ) !== 'Watchlist' ) {
		return;
	}
	
	$( '.watchlist-msg' ).each( function() {
		if ( !this.id ) return;
		var hideId = 'ruwiki-wlhide-' + this.id;

		if ( mw.storage.get( hideId ) ) {
			this.classList.add( 'watchlist-msg-hidden' );
		} else {
			var toggle = document.createElement( 'a' );
			toggle.className = 'watchlist-msg-close';
			toggle.setAttribute( 'href', '#' );
			toggle.setAttribute( 'role', 'button' );
			toggle.setAttribute( 'aria-label', 'Скрыть на неделю' );
			toggle.setAttribute( 'title', 'Скрыть сообщение на неделю или до появления новых событий' );
			
			$( toggle )
				.on( 'click', function ( e ) {
					e.preventDefault();
					// 7 * 24 * 60 * 60 (7 дней)
					mw.storage.set( hideId, 1, 604800 );
					var $parent = $( this ).parent();
					$parent.addClass( 'watchlist-msg-hidden' );
					$parent.parent().focus();
				} )
				.on( 'keydown', function ( e ) {
					if ( [ 'Space', 'Enter' ].includes( e.code ) ) {
						e.preventDefault();
						$( this ).click();
					}
				} );
			
			this.insertBefore( toggle, this.firstChild );
			this.classList.add( 'watchlist-msg-hideable' );
			$( this ).parent().attr( 'tabindex', '-1' );
		}
	} );
	
	mw.hook( 'structuredChangeFilters.ui.initialized' ).add(function () {
		$( '.watchlist-wrapper' ).prependTo( $( '.mw-rcfilters-ui-watchlistTopSectionWidget-editWatchlistButton' ) );
		$( '.mw-rcfilters-ui-watchlistTopSectionWidget-editWatchlistButton' )
			.removeClass( 'mw-rcfilters-ui-watchlistTopSectionWidget-editWatchlistButton' )
			.find( '.oo-ui-buttonWidget' )
			.wrap( '<div>' )
			.parent()
			.addClass( 'mw-rcfilters-ui-watchlistTopSectionWidget-editWatchlistButton' )
			.appendTo( '.mw-rcfilters-ui-watchlistTopSectionWidget-watchlistDetails' );
	} );
} );
Источник —

Same as Gadget-common-special-watchlist.js