MediaWiki:Gadget-common-special-watchlist.js

Материал из Универсал-вики
Перейти к навигации Перейти к поиску

Замечание. Возможно, после сохранения вам придётся очистить кэш своего браузера, чтобы увидеть изменения.

  • Firefox / Safari: Удерживая клавишу Shift, нажмите на панели инструментов Обновить либо нажмите Ctrl-F5 или Ctrl-R (⌘-R на Mac)
  • Google Chrome: Нажмите Ctrl-Shift-R (⌘-Shift-R на Mac)
  • Internet Explorer: Удерживая Ctrl, нажмите Обновить либо нажмите Ctrl-F5
  • Opera: Перейдите в Menu → Настройки (Opera → Настройки на Mac), а затем Безопасность → Очистить историю посещений → Кэшированные изображения и файлы
/**
 * Ввиду маленького размера не резон тратить на загрузку этого гаджета отдельный запрос; он грузится
 * зарегистрированным участникам безусловно (в силу «|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», так как это событие
	                             // файрит скрипт автоматического обновления СН, не трогающий
	                             // верхнюю часть.
}