MediaWiki:Gadget-PurgeCommonsMetadata.js
Z Nonsensopedii, polskiej encyklopedii humoru
Uwaga: aby zobaczyć zmiany po zapisaniu, 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)
- Internet Explorer: Przytrzymaj Ctrl jednocześnie klikając Odśwież lub naciśnij klawisze Ctrl+F5
- Konqueror: Kliknij polecenie Odśwież lub naciśnij klawisz F5
- Opera: Wyczyść pamięć podręczną w Narzędzia → Preferencje
$(function() {
if (mw.config.get('wgNamespaceNumber') !== 6) return;
var template = $( '.information-template.importing-data > tbody' );
if (!template.length) return;
function PurgeDialog(config) {
PurgeDialog.super.call(this, config);
}
OO.inheritClass(PurgeDialog, OO.ui.ProcessDialog);
PurgeDialog.static.name = 'purgeDialog';
PurgeDialog.static.title = 'Odświeżyć importowane dane?';
var labels = ['OK', 'OK', 'OK', 'OK', 'OK', 'OK', 'Jo'];
PurgeDialog.static.actions = [
{
action: 'accept',
label: labels[Math.floor(Math.random() * labels.length)],
flags: ['primary', 'progressive'],
},
{
action: 'cancel',
label: 'Anuluj',
flags: 'safe'
}
];
PurgeDialog.prototype.initialize = function () {
PurgeDialog.super.prototype.initialize.apply( this, arguments );
this.content = new OO.ui.PanelLayout( {
padded: true,
expanded: false
} );
this.$body.append( this.content.$element );
};
PurgeDialog.prototype.getSetupProcess = function ( data ) {
data = data || {};
this.importedData = data;
return PurgeDialog.super.prototype.getSetupProcess.call( this, data )
.next( function () {
var html = '';
if (data.files) {
html += '<p><b>Pliki:</b><br>' + data.files.join('<br>') + '</p>';
}
if (data.authors) {
html += '<p><b>Autorzy:</b><br>' + data.authors.join('<br>') + '</p>';
}
this.content.$element.html(html);
}, this );
};
PurgeDialog.prototype.getActionProcess = function ( action ) {
var self = this;
if (action === 'accept') {
return new OO.ui.Process( function () {
var query = self.importedData;
query.action = 'purgecommonsmetadata';
var api = new mw.Api();
return api.post(query).done( function () {
api.post( {
action: 'purge',
titles: mw.config.get( 'wgPageName' )
} ).done(function () {
location.reload();
} ).fail( function () {
mw.notify( 'Nie udało się odświeżyć strony. Metadane za to powinny być wyczyszczone.', { type: 'error' } );
});
} ).fail( function () {
mw.notify( 'Nie udało się odświeżyć metadanych. Jeśli klikasz w szale opętania, to zaparz se melisę, serwer to nie antystres.', { type: 'error' } );
} ).then( function() {
self.close();
} );
} );
} else if (action === 'cancel') {
return new OO.ui.Process( function () {
self.close();
} );
}
// Fallback to parent handler.
return PurgeDialog.super.prototype.getActionProcess.call( this, action );
};
var dialog = new PurgeDialog({size: 'medium'});
var manager = new OO.ui.WindowManager();
$('body').append(manager.$element);
manager.addWindows([dialog]);
mw.d = dialog;
function showDialog() {
// wciągamy dane zostawione przez kod Lua w HTML-u
var data = JSON.parse($('.information-template').attr('data-imported'));
manager.openWindow(dialog, data);
}
var row = $('<tr>', {class: 'n-purge-metadata'}).append(
$('<td>', {colspan: 2}).append(
$('<a>')
.text('odśwież importowane dane')
.attr('title', 'Odśwież dane importowane z Commons i Wikidanych')
.click(OO.ui.debounce(showDialog, 500, true))
)
);
row.appendTo( template );
});