MediaWiki:Gadget-purgetab.js: Difference between revisions

From Elwiki
No edit summary
No edit summary
Line 11: Line 11:
var translations = {
var translations = {
en: {
en: {
tabName: 'Purge',
tabName: 'Purge cache',
tabDescription: 'Purge the server cache of this page',
tabDescription: 'Purge the server cache of this page',
errorMessage: 'Purge failed'
errorMessage: 'Purge failed'
},
},
fr: {
fr: {
tabName: 'Purger',
tabName: 'Purger le cache',
tabDescription: 'Purger le cache serveur de cette page',
tabDescription: 'Purger le cache serveur de cette page',
errorMessage: 'Purge échouée'
errorMessage: 'Purge échouée'
},
},
                         pl: {
                         pl: {
                                 tabName: 'Odśwież',
                                 tabName: 'Usuń cache',
                                 tabDescription: 'Usuń dla tej strony dane z pamięci podręcznej serwera',
                                 tabDescription: 'Usuń dla tej strony dane z pamięci podręcznej serwera',
                                 errorMessage: 'Odświeżenie nieudane'
                                 errorMessage: 'Odświeżenie nieudane'

Revision as of 12:40, 10 May 2022

/**
 * Add "Purge" content action link.
 *
 * Dependencies: mediawiki.api, mediawiki.language mediawiki.util
 *
 * @source https://www.mediawiki.org/wiki/Snippets/Purge_action
 * @revision 2016-05-22
 */
$( function () {
	var messages = ( function () {
		var translations = {
			en: {
				tabName: 'Purge cache',
				tabDescription: 'Purge the server cache of this page',
				errorMessage: 'Purge failed'
			},
			fr: {
				tabName: 'Purger le cache',
				tabDescription: 'Purger le cache serveur de cette page',
				errorMessage: 'Purge échouée'
			},
                        pl: {
                                tabName: 'Usuń cache',
                                tabDescription: 'Usuń dla tej strony dane z pamięci podręcznej serwera',
                                errorMessage: 'Odświeżenie nieudane'
                        },
                        mk: {
                                tabName: 'Превчитај',
                                tabDescription: 'Исчистете го опслужувачкиот меѓусклад на страницава',
                                errorMessage: 'Превчитувањето не успеа'
                        }
		},
		chain = mw.language.getFallbackLanguageChain(),
		len = chain.length,
		ret = {},
		i = len - 1;
		while ( i >= 0 ) {
			if ( translations.hasOwnProperty( chain[ i ] ) ) {
				$.extend( ret, translations[ chain[ i ] ] );
			}
			i = i - 1;
		}
		return ret;
	}() );

	if ( $( '#ca-purge' ).length || mw.config.get( 'wgNamespaceNumber' ) < 0 ) {
		return;
	}
	var node = mw.util.addPortletLink(
		'p-cactions',
		mw.util.getUrl( null, { action: 'purge' } ),
		messages.tabName,
		'ca-purge',
		messages.tabDescription
	);
	$( node ).on( 'click', function ( e ) {
		new mw.Api().post( {
			action: 'purge',
			titles: mw.config.get( 'wgPageName' )
		} )
		.then( function () {
			location.reload();
		}, function () {
			mw.notify( messages.errorMessage, { type: 'error' } );
		} );
		e.preventDefault();
	} );
} );