MediaWiki:Gadget-common-special-watchlist.js

Материал из Тептар — свободной энциклопедии
Версия от 12:28, 19 июня 2020; Mansur700 (обсуждение | вклад) (Новая страница: «/** * Ввиду маленького размера не резон тратить на загрузку этого гаджета отдельный запро...»)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Перейти к навигации Перейти к поиску

Возможно, этот код документирован.

/**
 * Ввиду маленького размера не резон тратить на загрузку этого гаджета отдельный запрос; он грузится
 * зарегистрированным участникам безусловно (в силу «|default» в [[MediaWiki:Gadgets-definition]]).
 * Если код вырастет до нескольких килобайт, можно делегировать его загрузку [[MediaWiki:Common.js]]
 * и загружать по условию.
 */
if ( mw.config.get( 'wgCanonicalSpecialPageName' ) === 'Watchlist' ) {
	runAsEarlyAsPossible( function () {
		$( '.watchlist-msg' ).each( function() {
	 		if ( !this.id ) return;
			var hideId = 'hide- ' + this.id;

			if ( $.cookie( hideId ) ) {
				$( this ).remove();
			} else {
				$( '<span>' )
					.attr( 'title', 'Спрятать это сообщение на неделю или до появления новых событий' )
					.addClass( 'watchlist-msg-close' )
					.text( '[x]' )
					.click( function () {
						$.cookie( hideId, 'y', { expires: 7, path: '/' } );
						$( this ).parent().remove();
					} )
					.prependTo( this );
			}
		} );
		
		mw.hook( 'structuredChangeFilters.ui.initialized' ).add(function () {
			$( '.watchlist-msg' ).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' );
		} );
	}, $( '.watchlist-msg' ) );  // Не «, mw.hook( 'wikipage.content' ).add», так как это событие
	                             // файрит скрипт автоматического обновления СН, не трогающий
	                             // верхнюю часть.
}