MediaWiki:Gadget-purgetab.js: Difference between revisions

no edit summary
No edit summary
No edit summary
Line 2: Line 2:
  * Add "Purge" content action link.
  * Add "Purge" content action link.
  *
  *
  * Dependencies: mediawiki.util, mediawiki.api, mediawiki.notify
  * Dependencies: mediawiki.api, mediawiki.language mediawiki.util
  *
  *
  * @source https://www.mediawiki.org/wiki/Snippets/Purge_action
  * @source https://www.mediawiki.org/wiki/Snippets/Purge_action
Line 8: Line 8:
  */
  */
$( function () {
$( function () {
if ( $( '#ca-purge' ).length || !mw.config.get( 'wgIsArticle' ) ) return;
var messages = ( function () {
var translations = {
en: {
tabName: 'Purge',
tabDescription: 'Purge the server cache of this page',
errorMessage: 'Purge failed'
},
fr: {
tabName: 'Purger',
tabDescription: 'Purger le cache serveur de cette page',
errorMessage: 'Purge échouée'
},
                        pl: {
                                tabName: 'Odśwież',
                                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(
var node = mw.util.addPortletLink(
'p-cactions',
'p-cactions',
mw.util.getUrl( null, { action: 'purge' } ),
mw.util.getUrl( null, { action: 'purge' } ),
mw.config.get( 'skin' ) === 'vector' ? 'Purge' : '*',
messages.tabName,
'ca-purge',
'ca-purge',
'Purge the server cache of this page',
messages.tabDescription
'*'
);
);
$(node).on( 'click', function (e) {
$( node ).on( 'click', function ( e ) {
new mw.Api().post( { action: 'purge', titles: mw.config.get( 'wgPageName' ) } ).then(function () {
new mw.Api().post( {
action: 'purge',
titles: mw.config.get( 'wgPageName' )
} )
.then( function () {
location.reload();
location.reload();
}, function () {
}, function () {
mw.notify( 'Purge failed', { type: 'error' } );
mw.notify( messages.errorMessage, { type: 'error' } );
});
} );
e.preventDefault();
e.preventDefault();
});
} );
});
} );
25,159

edits