MediaWiki:Gadget-common-special-movepage.js

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
JS-код ниже относится к скрытому гаджету common-special-movepage. Он включён по умолчанию.

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

// Не удаляйте проверку на название спецстраницы
( function() {
	if ( mw.config.get( 'wgCanonicalSpecialPageName' ) !== 'Movepage' ) {
		return;
	}
	
	$( '.mw-movepage-editreasons' ).addClass( 'group-sysop-show group-engineer-show' );

	var $newTitle = $('[name="wpNewTitleNs"]');
	var $reasonList = $( '[name="wpReasonList"]' );
	
	// Simplify dropdown list
	$reasonList.find( 'option' ).each( function( i, opt ) {
		if ( i === 0 ) return;
		opt.title = opt.value;
		opt.text = opt.value.replace( /\[\[[^|]+\|([^\]]+)\]\]/g, '$1' );
	} );
	
	// Making it easier to transfer the drafts from the user namespaces
	function reactToReasons() {
		var val = $reasonList.val();
		if ( val && val.includes( 'перенос черновика' ) ) {
			var $nm = $( '[name="wpNewTitleMain"]' );
			var userSubpage = mw.config.get( 'wgUserName' ) + '/';
			var subpageBelongsToUser = $nm.val().indexOf( userSubpage ) !== -1;
			if ( subpageBelongsToUser ) {
				$nm.val( $nm.val().replace( new RegExp( userSubpage + '(?:Черновики?/|)', 'i' ), '' ) );
				$newTitle.val( 0 ).change();
			}
		}
	}
	$( reactToReasons );
	$reasonList.on( 'change', reactToReasons );

	// For files: lowercase the extension and suppress the redirect
	if ( $newTitle.val() == 6 ) {
		var $nm = $( '[name="wpNewTitleMain"]' );
		var val = $nm.val();
		if ( val ) {
			$nm.val(
				val.replace(/\.[A-Z0-9]{3,4}$/,
				function (s) {
					return s.toLowerCase();
				})
			);
		}
		$( '[name="wpLeaveRedirect"]' ).prop( 'checked', false );
	}

	// For categories: suppress the redirect
	if ( $newTitle.val() == 14 ) {
		$( '[name="wpLeaveRedirect"]' ).prop( 'checked', false );
	}
}() );