MediaWiki:Gadget-purge.js

Uwaga: aby zobaczyć zmiany po opublikowaniu, może zajść potrzeba wyczyszczenia pamięci podręcznej przeglądarki.

  • Firefox / Safari: Przytrzymaj Shift podczas klikania Odśwież bieżącą stronę, lub naciśnij klawisze Ctrl+F5, lub Ctrl+R (⌘-R na komputerze Mac)
  • Google Chrome: Naciśnij Ctrl-Shift-R (⌘-Shift-R na komputerze Mac)
  • Edge: Przytrzymaj Ctrl, jednocześnie klikając Odśwież, lub naciśnij klawisze Ctrl+F5.
  • Opera: Naciśnij klawisze Ctrl+F5.
$(function () {
	// Nie wyświetlaj w trybie edycji ani na stronach specjalnych
	if(mw.config.get('wgNamespaceNumber') < 0 || mw.config.get('wgAction') != 'view') return;
	
	// Wybierz odpowiednie menu, w którym wyświetlić link
	var portletId = 'p-cactions';
	if(mw.config.get('skin') === 'minerva') portletId = 'p-tb';
	
	// Zwykły link do ?action=purge
	var purgeHref = mw.util.getUrl( null, { action: 'purge' } );
	var purgeTab = mw.util.addPortletLink(
		portletId,
		purgeHref,
		'Odśwież',
		'ca-purge',
		'Wyczyść pamięć podręczną dla tej strony\n(Shift: przeładuj tablice linków, Ctrl: przeładuj rekursywnie)'
	);

	$(purgeTab).click(function (e) {
		// Nie przechodź po linku, odświeżymy stronę przez API
		e.preventDefault();

		var purgeParams = {
			action: 'purge',
			titles: mw.config.get('wgPageName'),
		};

		// Shift: Przeładuj tablice linkujących
		purgeParams.forcelinkupdate = !!e.shiftKey;
		// Ctrl: Przeładuj strony rekursywnie (zawiera w sobie powyższe)
		purgeParams.forcerecursivelinkupdate = !!e.ctrlKey;

		new mw.Api()
			.post(purgeParams)
			.then(function () {
				// Wyświetl odświeżoną stronę
				window.location.reload();
			}).fail(function () {
				// Nie udało się, przejdź do ?action=purge
				window.location = purgeHref;
			});
	});
});