MediaWiki:Gadget-OngletPurge.js

Note : après avoir enregistré la page, vous devrez forcer le rechargement complet du cache de votre navigateur pour voir les changements.

Mozilla / Firefox / Konqueror / Safari : maintenez la touche Majuscule (Shift) en cliquant sur le bouton Actualiser (Reload) ou pressez Maj-Ctrl-R (Cmd-R sur Apple Mac) ;

Chrome / Internet Explorer / Opera : maintenez la touche Ctrl en cliquant sur le bouton Actualiser ou pressez Ctrl-F5.
/**
 * OngletPurge
 *
 * Onglet permettant de réaliser une purge du cache
 *
 * @source https://www.mediawiki.org/wiki/Snippets/Purge_action
 * @see https://www.mediawiki.org/wiki/API:Purge
 *
 * {{Projet:JavaScript/Script|OngletPurge}}
 */

if ( mw.config.get( 'wgNamespaceNumber' ) >= 0 ) {

	mw.loader.using( [ 'mediawiki.util', 'mediawiki.api' ], function () {
		$( function ( $ ) {
			'use strict';

			var node = mw.util.addPortletLink(
				'p-cactions',
				mw.util.getUrl( null, { action: 'purge' } ),
				[ 'monobook', 'modern' ].includes( mw.config.get( 'skin' ) ) ? 'purger' : 'Purger',
				'ca-purge',
				'Purger le cache de la page',
				'*'
			);

			// empêche erreur « node is null » si le portlet n'a pas été ajouté,
			// ce qui se produit avec la skin Minerva (sur desktop)
			if ( !node ) {
				return;
			}

			node.addEventListener( 'click', function ( e ) {
				e.preventDefault();
				mw.notify( 'Purge en cours…', { tag: 'gadget-onglet-purge', autoHide: false } );
				new mw.Api()
					.post( { 
						action: 'purge',
						titles: mw.config.get( 'wgPageName' ),
						forcelinkupdate: 1
					} )
					.done( function () {
						location.reload();
					} )
					.fail( function () {
						mw.notify( 'Échec de la purge', { tag: 'gadget-onglet-purge', type: 'error' } );
					} );
			} );

		} );
	} );
}