MediaWiki:Gadget-purge.js: Różnice pomiędzy wersjami

Z Wikisłownika – wolnego słownika wielojęzycznego
Usunięta treść Dodana treść
m zapomnialem uzyc zmiennej $content
umozliwiaj uruchomienie bez zaladowania mediawiki.util z poziomu MediaWiki:Gadgets-definition (przydatne dla uzytkownikow innych wiki)
Linia 6: Linia 6:
},
},
modules = [
modules = [
'mediawiki.util',
'mediawiki.api',
'mediawiki.api',
'mediawiki.notify',
'mediawiki.notify',
Linia 51: Linia 52:
$( function () {
$( function () {
var $li = $( mw.util.addPortletLink(
var $li = null;
'p-cactions',
function getPortletLink() {
mw.util.getUrl( null, {
return $( mw.util.addPortletLink(
action: 'purge'
} ),
'p-cactions',
mw.msg( 'purge-tab-label' ),
mw.util.getUrl( null, {
'ca-purge',
action: 'purge'
} ),
mw.msg( 'purge-tab-tooltip' )
mw.msg( 'purge-tab-label' ),
) );
'ca-purge',
mw.msg( 'purge-tab-tooltip' )
) );
}
if ( 'util' in mw ) {
$li = getPortletLink();
}
mw.loader.using( modules ).done( function () {
mw.loader.using( modules ).done( function () {
processElements( $li );
processElements( $li || getPortletLink() );
} );
} );
} );
} );

Wersja z 14:58, 14 cze 2017

var messages = {
		'purge-tab-label': 'Odśwież',
		'purge-tab-tooltip': 'Wyczyść pamięć podręczną dla tej strony',
		'purge-notification-success': 'Wyczyszczono pamięć podręczną strony.',
		'purge-notification-error': 'Wyczyszczenie pamięci podręcznej się nie powiodło.'
	},
	modules = [
		'mediawiki.util',
		'mediawiki.api',
		'mediawiki.notify',
		'jquery.spinner'
	],
	config = mw.config.get( [
		'wgNamespaceNumber',
		'wgPageName'
	] ),
	apiParams = {
		action: 'purge',
		titles: config.wgPageName
	},
	spinnerConfig = {
		size: 'small',
		type: 'inline'
	};

function processElements( $els ) {
	$els
		.append( $.createSpinner( spinnerConfig ).hide() )
		.on( 'click', onClickHandler );
}

function onClickHandler( e ) {
	var $spinner = $( this ).children( '.mw-spinner' );
	
	e.preventDefault();
	$spinner.show();
	
	new mw.Api().post( apiParams ).done( function () {
		location.href = mw.util.getUrl();
		mw.notify( mw.msg( 'purge-notification-success' ) );
	} ).fail( function () {
		mw.notify( mw.msg( 'purge-notification-error' ), {
			type: 'error'
		} );
	} ).always( function () {
		$spinner.hide();
	} );
}

if ( config.wgNamespaceNumber >= 0 ) {
	mw.messages.set( messages );
	
	$( function () {
		var $li = null;
		
		function getPortletLink() {
			return $( mw.util.addPortletLink(
				'p-cactions',
				mw.util.getUrl( null, {
					action: 'purge'
				} ),
				mw.msg( 'purge-tab-label' ),
				'ca-purge',
				mw.msg( 'purge-tab-tooltip' )
			) );
		}
		
		if ( 'util' in mw ) {
			$li = getPortletLink();
		}
		
		mw.loader.using( modules ).done( function () {
			processElements( $li || getPortletLink() );
		} );
	} );
	
	mw.hook( 'wikipage.content' ).add( function ( $content ) {
		var $purgeLinks = $content.find( '.purge-link' ); // [[Szablon:odśwież]]
		
		if ( $purgeLinks.length ) {
			mw.loader.using( modules ).done( function () {
				processElements( $purgeLinks );
			} );
		}
	} );
}