Usuario:Stïnger/templates-and-deletion.js
Apariencia
Nota: Después de guardar, debes refrescar la caché de tu navegador para ver los cambios. Internet Explorer: mantén presionada Ctrl mientras pulsas Actualizar. Firefox: mientras presionas Mayús pulsas el botón Actualizar, (o presiona Ctrl-Shift-R). Los usuarios de Google Chrome y Safari pueden simplemente pulsar el botón Recargar. Para más detalles e instrucciones acerca de otros exploradores, véase Ayuda:Cómo limpiar la caché.
/* Nuevo script detallado para el uso de plantillas, para la instalación usar: importScript('User:Ks-M9/templates-and-deletion.js'); */
/* Los botones de esta herramienta se encuentran en la izquierda, donde se encuentra el conjunto de herramientas */
/* Nota: La función para borrado rápido aplica solamente para bibliotecarios */
(function ($, mw) {
'use strict';
var user = mw.config.get('wgUserName'),
sLink = '([[user:Ks-M9/templates-and-deletion.js|Script]]): Mantenimiento (v. 0.2) ',
url = mw.config.get('wgScriptPath') + '/api.php',
page = mw.config.get('wgPageName'),
ticket = null,
edittoken = null,
content = null,
timestamp = null,
motivoBorrado = ['[[WP:BR#A4|No enciclopédico]]', '[[WP:BR#G1|Vandalismo]]', '[[WP:BR#G3|Promocional o conflicto de intereses]]', '[[WP:BR#G4|Pruebas de edición]]'],
mantenimiento = [
['{{sra|{' + '{subst:CURRENTDAY}' + '}|{' + '{subst:CURRENTMONTH}}}}', 'Sin relevancia enciclopédica'],
['{'+'{referencias|t={' + '{subst:CURRENTTIMESTAMP}' + '}}}', 'Referencias'],
['{'+'{complejo}}', 'Complejo'],
['{'+'{copyedit}}', 'Ortografía y gramática'],
['{'+'{wikificar|t={' + '{subst:CURRENTTIMESTAMP}' + '}}}', 'Wikificar'],
['{'+'{no neutralidad}}', 'No es neutral'],
['{' + '{subst:contextualizar}}', 'Contextualizar'],
['{' + '{subst:fuente primaria}}', 'Fuente primaria'],
['{' + '{subst:promocional}}', 'Promocional'],
['{' + '{subst:autotrad}}', 'Traducción automática'],
['{'+'{mal traducido}}', 'Mal traducido']
];
if (!user) {
return;
}
function _prompt(text, pg, borrado) {
var type = 'errorbox',
title = borrado ? 'Borrado rápido' : 'Mantenimiento',
$ticket = $('<select>'),
$option = $('<option>');
if (borrado) {
$.each(motivoBorrado, function (i, e) {
var $opt = $option.clone();
$opt.text(e);
$ticket.append($opt);
});
} else {
$.each(mantenimiento, function (i, e) {
var $opt = $option.clone();
$opt.text(e[1]).val(e[0]);
$ticket.append($opt);
});
}
if (!text) {
title = 'Debe indicar un motivo';
text = 'Debe indicar un motivo.';
} else {
type = '';
}
text = $('<label>').attr({
'for': 'OTRSdialog',
'class': type
}).text(text);
$('<div>').append([text, $ticket]).dialog({
width: 400,
dialogClass: "wikiEditor-toolbar-dialog",
resizable: false,
modal: true,
title: title,
close: function () {
$(this).dialog("destroy");
$(this).remove();
},
buttons: [{
text: "OK",
click: function () {
ticket = $ticket ? $.trim($ticket.val()) : '';
$(this).dialog("close");
if (ticket) {
// Check if ticket is valid
_getPage(pg);
}
}
}]
});
}
function _addTemplate(template) {
var text = content;
content = template + "\n" + text;
_savePage(sLink);
}
window.delete_page = function delete_page() {
_addTemplate('{'+'{d|' + ticket + '}}');
};
window.mantenimiento = function mantenimiento() {
_addTemplate(ticket);
};
function _savePage(summary) {
var params = {
action: 'edit',
summary: summary,
watchlist: 'preferences',
title: page,
token: edittoken,
text: content,
format: 'json'
};
$.ajax({
url: url,
cache: false,
dataType: 'json',
data: params,
basetimestamp: timestamp,
type: 'POST',
success: function () {
window.location.reload();
}
});
}
function _getPage(pg) {
$.getJSON(url, {
action: "query",
format: "json",
prop: "info|revisions",
intoken: "edit",
rvprop: "content|timestamp",
titles: page
}, function (r) {
var pages = r.query.pages;
for (var id in pages) {
if (pages.hasOwnProperty(id)) {
pages = pages[id];
edittoken = pages.edittoken;
content = pages.revisions[0]['*'];
timestamp = pages.revisions[0].timestamp;
return pg();
}
}
});
}
window.dialogBR = function dialogBR(pg) {
_prompt('Indique el motivo de borrado:', pg, true);
};
window.dialogMant = function dialogMant(pg) {
_prompt('Indique la acción de mantenimiento a hacer:', pg, false);
};
mw.loader.using(['mediawiki.util', 'jquery.ui'], function () {
mw.util.addPortletLink('p-tb', 'javascript:{dialogBR(delete_page);void(0)}', 'Borrado rápido');
mw.util.addPortletLink('p-tb', 'javascript:{dialogMant(mantenimiento);void(0)}', 'Mantenimiento');
});
}(jQuery, mediaWiki));