MediaWiki:Inciskin/JS/Inciclopedia:Verificar solicitud.js
Ir a la navegación
Ir a la búsqueda
Nota: Después de publicar, quizás necesite actualizar la caché de su navegador para ver los cambios.
- Firefox/Safari: Mantenga presionada la tecla Shift mientras pulsa el botón Actualizar, o presiona Ctrl+F5 o Ctrl+R (⌘+R en Mac)
- Google Chrome: presione Ctrl+Shift+R (⌘+Shift+R en Mac)
- Internet Explorer/Edge: mantenga presionada Ctrl mientras pulsa Actualizar, o presione Ctrl+F5
- Opera: Presiona Ctrl+F5.
function alreadyApproved(ticket, wikitext) {
return wikitext.includes("#" + ticket + "#");
}
function setData() {
const urlparams = new URLSearchParams(window.location.search);
const ticket = urlparams.get("ticket");
const request = urlparams.get("request");
const forUser = urlparams.get("user");
if (ticket && request && forUser && ticket.length > 0 && request.length > 0 && forUser.length > 0) {
if (!mw.config.values['wgUserName'] || mw.config.values['wgUserName'].toLowerCase() !== forUser.toLowerCase()) {
$("#notDialog").html("Para aprobar esta solicitud, debes <a href='https://inciclopedia.org/wiki/Especial:Entrar'>iniciar sesión</a> con la cuenta <b>" + forUser + "</b>.");
return;
}
$.getJSON({
url: "https://inciclopedia.org/w/api.php?action=query&prop=revisions&titles=Usuario:" + encodeURIComponent(mw.config.values['wgUserName'] + "/Solicitudes.js") + "&rvprop=content&formatversion=2&format=json"
}).done(function (data) {
if (data["query"] && data["query"]["pages"] && data["query"]["pages"][0] && data["query"]["pages"][0]["revisions"] && data["query"]["pages"][0]["revisions"][0] && alreadyApproved(ticket, data["query"]["pages"][0]["revisions"][0]["content"])) {
$("#notDialog").html("Esta solicitud ya fue aprobada. No debes hacer nada más. Si no has recibido respuesta con respuesto a tu solicitud pasadas 72 horas, <a href='https://inciclopedia.atlassian.net/servicedesk/customer/portal/1/" + ticket + "'>avísanos a través de la misma solicitud</a>.");
return;
} else {
$("#ticket").html("<a href='https://inciclopedia.atlassian.net/servicedesk/customer/portal/1/" + ticket + "'>" + ticket + "</a>");
$("#request").html("<b>" + request + "</b>");
$("#notDialog").hide();
$("#dialog").show();
$("#confirmRequest").click(approveRequest.bind(this, ticket));
$("#cancelRequest").click(rejectRequest);
}
});
}
}
function approveRequest(ticket) {
if (window.isSaving) {
return;
}
window.isSaving = true;
$("#dialog").hide();
$("#notDialog").show();
$("#notDialog").html("Espera un momento, estamos procesando tu solicitud.");
$.getJSON({
url: "https://inciclopedia.org/w/api.php?action=query&meta=tokens&format=json"
}).done(function (data) {
csrfToken = data["query"]["tokens"]["csrftoken"];
query = "https://inciclopedia.org/w/api.php"
console.log("POST a " + query);
$.post(query, {
"action": "edit",
"title": "Usuario:" + mw.config.values['wgUserName'] + "/Solicitudes.js",
"token": csrfToken,
"minor": true,
"summary": "Aprobando solicitud " + ticket,
"appendtext": "\n#" + ticket + "#\n",
"format": "json"
}, function(data) {
if (data && data["edit"] && data["edit"]["result"] == "Success") {
$("#notDialog").html("Has aprobado la solicitud. En las próximas horas nuestro equipo de soporte procesará tu petición y se pondrá en contacto contigo.");
} else {
$("#notDialog").html("Parece que hubo un error. Por favor recarga la página.");
}
window.isSaving = false;
})
});
}
function rejectRequest() {
$("#dialog").hide();
$("#notDialog").html("Has cancelado esta operación. Si cambias de opinión solo debes volver a entrar en esta página.");
$("#notDialog").show();
}
setData();