MediaWiki:Group-sysop.js

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
Возможно, этот код документирован.

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

mw.hook( 'wikipage.content' ).add( function() {

	// ============= Pages =============

	if ( mw.config.get( 'wgNamespaceNumber' ) >= 0 && mw.config.get( 'wgArticleId' ) ) {
		switch ( mw.config.get( 'wgAction' ) ) {
			case 'view':
				// Highlight "closed" sections in TOC
				if (
					mw.config.get( 'wgNamespaceNumber' ) === 4 &&
					/( к администраторам| защиты| спам-листа|Технические запросы)$/.test( mw.config.get( 'wgTitle' ) )
				) {
					$( '.toclevel-2' ).each( function ( i, li ) {
						if ( $( li ).find( '.toctext' ).text() !== 'Итог' ) {
							return;
						}
						$( li ).closest( '.toclevel-1' ).addClass( 'group-sysop-done' );
					} );
				}
				break;

			case 'protect':
			case 'unprotect': //avoid [move=autoconfirmed] in logs
				$( '#mwProtect-level-edit' ).change( function() {
					if (
						!$( '#mwProtectUnchained' ).attr( 'checked' ) &&
						$( '#mwProtect-level-move' ).val() === 'autoconfirmed'
					) {
						$( '#mwProtect-level-move' ).val( '' );
					}
				} );
				break;

			case 'history':
				hideRevDel();
				break;
		} // switch
		
		if ( [0, 6, 10, 14].indexOf( mw.config.get( 'wgNamespaceNumber' ) ) !== -1 ) {
			if ( !$( '#ca-stabilize' ).length ) {
				mw.util.addPortletLink(
					'p-cactions',
					mw.util.getUrl( 'Служебная:Стабилизация/' + mw.config.get( 'wgPageName' ) ),
					'Стабилизировать',
					'ca-stabilize',
					'Настройки стабилизации'
				);
			}
		}
	}

	// ============= Special pages =============

	if ( [ 'Log', 'Contributions' ].indexOf( mw.config.get( 'wgCanonicalSpecialPageName' ) ) > -1 ) {
		hideRevDel();
	}

	// =============

	function hideRevDel() { // Initially hide RevDel [[ВП:Удаление правки]] interface
		if ( !window.hrdOff ) {
			window.hideRevDelCSS = mw.util.addCSS( '\
				#mw-log-deleterevision-submit input[type="checkbox"],\
				button.mw-log-deleterevision-button,\
				#pagehistory input[type="checkbox"],\
				button.mw-history-revisiondelete-button,\
				span.mw-revdelundel-link {\
					display: none;\
				}' );
			window.revisionDelete = function( event ) {
				if ( event ) {
					event.preventDefault();
				}
				window.hideRevDelCSS.disabled = !window.hideRevDelCSS.disabled;
				return false;
			};
			addSysopLink( '#', 'Скрытие правок', revisionDelete );
		}
	}


	function addSysopLink( url, txt, handler ) {
		var $cSub = $( '#contentSub' );
		if ( $cSub.children().last().prop( 'nodeName' ) === 'A' ) {
			$cSub.append( ' · ' );
		}
		var $node = $( '<a>' )
			.attr( 'href', url )
			.append(
				$( '<img>' ).attr( 'src', '//upload.wikimedia.org/wikipedia/commons/thumb/f/f2/Edit-clear.svg/10px-Edit-clear.svg.png' ),
				$( '<span>' )
					.text( txt )
					.css( 'margin-left', '0.25em' )
			)
			.appendTo( $cSub );
		if ( typeof handler === 'function' ) {
			$node.on( 'click', handler );
		}
	}

} );