MediaWiki:Gadget-blpEditNotice.js

Зьвесткі зь Вікіпэдыі — вольнай энцыкляпэдыі

Заўвага: каб пабачыць зьмены пасьля публікацыі, Вам можа спатрэбіцца ачысьціць кэш Вашага браўзэра.

  • Firefox / Safari: трымайце Shift і націсьніце Reload, ці націсьніце Ctrl-F5 ці Ctrl-R (⌘-R на Mac)
  • Google Chrome: націсьніце Ctrl-Shift-R (⌘-Shift-R на Mac)
  • Internet Explorer / Edge: трымайце Ctrl і націсьніце Refresh, ці націсьніце Ctrl-F5
  • Opera: націсьніце Ctrl-F5.
// Magic editintros by [[:en:User:RockMFR]] & [[:ru:User:Jack who built the house]] (VE part)
( function () {

function addVeEditNotice( code ) {
	var target = ve.init.target;
	var actionsToolbar = target.actionsToolbar;
	if ( !actionsToolbar ) {
		// avoid TypeError: Cannot read properties of undefined (reading 'tools')
		return;
	}
	var wasNoEditNotices = !actionsToolbar.tools.notices;
	if ( wasNoEditNotices ) {
		if ( actionsToolbar.items[ 0 ] &&
			actionsToolbar.items[ 0 ].items &&
			actionsToolbar.items[ 0 ].items[ 1 ] &&
			actionsToolbar.items[ 0 ].items[ 1 ] instanceof ve.ui.MWNoticesPopupTool &&
			actionsToolbar.items[ 0 ].items[ 0 ] &&
			actionsToolbar.items[ 0 ].items[ 0 ] instanceof ve.ui.MWHelpPopupTool
		) {
			var noticesPopupTool = new ve.ui.MWNoticesPopupTool( actionsToolbar.items[ 0 ] );
			actionsToolbar.tools.notices = actionsToolbar.items[ 0 ].items[ 1 ] = noticesPopupTool;
			noticesPopupTool.$element.insertAfter( $( '.oo-ui-tool-name-help' ) );
			actionsToolbar.connect( noticesPopupTool, {
				updateState: 'onUpdateState'
			} );
		} else {
			console.error( 'Немагчыма дадаць інструмэнт рэдагаваньня паведамленьняў на панэль Візуальнага рэдактара' );
			return;
		}
	}
	target.remoteNotices.unshift( code );
	target.editNotices.unshift( code );
	actionsToolbar.tools.notices.setNotices( target.getEditNotices() );
	if ( wasNoEditNotices ) {
		// setTimeout for IE
		setTimeout( function () {
			actionsToolbar.tools.notices.getPopup().toggle( true );
		}, 0 );
	}
}

function addEditIntro( name ) {
	$( '.mw-editsection, #ca-edit, #ca-ve-edit' ).find( 'a' ).each( function ( i, el ) {
		el.href = $( this ).attr( 'href' ) + '&editintro=' + name;
	} );

	if ( mw.util.getParamValue( 'editintro' ) !== name ) {
		var editNoticeLoaded = false;
		mw.libs.ve.addPlugin( function () {
			if ( !editNoticeLoaded ) {
				new mw.Api().get( {
					action: 'parse',
					page: name,
					prop: 'text',
					formatversion: 2,
				} ).done( function ( data ) {
					if ( data && data.parse && data.parse.text !== undefined ) {
						editNoticeLoaded = true;
						if ( data.parse.text ) {
							mw.hook( 've.activationComplete' ).add( function () {
								addVeEditNotice( data.parse.text );
							} );
						}
					}
				} );
			}
		} );
	}
}

if ( mw.config.get( 'wgNamespaceNumber' ) === 0 ) {
	// Use runAsEarlyAsPossible (defined in MediaWiki:Common.js) if available
	// If not (e.g. mobile) use jQuery.ready
	( runAsEarlyAsPossible || $ )( function () {
		var cats = mw.config.get( 'wgCategories' );
		if ( !cats ) return;
		if ( $.inArray( 'Вікіпэдыя:Артыкулы з заклікам быць асьцярожнымі пры рэдагаваньні', cats ) !== -1 ) {
			addEditIntro( 'Шаблён:Паведамленьне_пра_рэдагаваньне/Небясьпечна' );
		} else if ( $.inArray( 'Вікіпэдыя:Жывыя асобы', cats ) !== -1 ) {
			addEditIntro( 'Шаблён:Паведамленьне_пра_рэдагаваньне/Жывыя_асобы' );
		} else if ( $.inArray( 'Вікіпэдыя:Памерлі меней за год таму', cats ) !== -1 ) {
			addEditIntro( 'Шаблён:Паведамленьне_пра_рэдагаваньне/Нядаўна_памерлыя' );
		}
	}, $( '#ca-history' ) );
}

}() );