MediaWiki:Gadget-tab-oculta-atendidas.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é.
window.tab_oculta_atendidas = function ()
{
var content = document.getElementById("mw-content-text");
if (!content) return;
var h2s = document.getElementsByTagName("H2");
var isElementNamed = function (element, name) {
return element.nodeType == 1 &&
element.tagName == name;
};
var hasH2 = function (div) {
var els = div.children;
for (var i = 0; i < 3 && i < els.length; i++)
if (els[i].tagName == "H2") return true;
return false;
};
var isHeadingDiv = function (element, checkinside) {
return isElementNamed(element, "DIV") &&
element.classList.contains("mw-heading") &&
(!checkinside || hasH2(element));
};
var hasHeadlineSpan = function (h2) {
var spans = h2.children;
for (var i=0; i < spans.length; i++)
if (isElementNamed(spans[i], "SPAN") &&
spans[i].classList.contains("mw-headline"))
return true;
return false;
};
for (var i=0; i < h2s.length; i++) {
var h2 = h2s[i];
if (isHeadingDiv(h2.parentElement) &&
hasHeadlineSpan(h2))
{
var div = h2.parentElement;
var section = [h2, div];
var element = div.nextElementSibling;
var buscando_firma = false;
var tiene_firma = false;
var mantener_si_o_si = false;
while (element && !isHeadingDiv(element, true)) {
section.push(element);
if (!buscando_firma && element.tagName == "DL") {
var dts = element.getElementsByTagName("DT");
for (var k = 0; k < dts.length; k++) {
if (dts[k].textContent == "Respuesta") {
buscando_firma = true;
break;
}
}
}
if (buscando_firma) {
if (element.textContent.indexOf("(a rellenar por un bibliotecario)") != -1) {
mantener_si_o_si = true;
break;
}
else if (element.textContent.match(/\b\d\d:\d\d \d\d? [a-z]{3} \d\d\d\d \(UTC\)/))
tiene_firma = true;
}
element = element.nextElementSibling;
}
if (tiene_firma && !mantener_si_o_si) {
for (var j=0; j < section.length; j++) {
section[j].hidden = true;
section[j].style.display = 'none';
}
}
}
}
// el índice
var indice = document.getElementById("toc") || document.getElementById("vector-toc");
if (!indice) return;
var lis = indice.getElementsByTagName("LI");
for (i=0; i < lis.length; i++) {
var li = lis[i];
if (li.children.length >= 1 &&
isElementNamed(li.children[0], "A"))
{
var href = decodeURI(li.children[0].href);
var hashpos = href.lastIndexOf("#");
if (hashpos >= 0 && hashpos < href.length-1) {
var target = document.getElementById(href.substr(hashpos+1));
if (target && target.parentElement.hidden) {
li.hidden = true;
li.style.display = "none";
}
}
}
}
// botones
var botones = document.getElementsByClassName("btn-tab-oculta-atendidas");
for (i=0; i < botones.length; i++) {
botones[i].hidden = true;
botones[i].style.display = "none";
}
};
function tab_oculta_atendidas_instalaboton () {
var codigo = "<button onclick='tab_oculta_atendidas();' class='btn-tab-oculta-atendidas'>ocultar solicitudes atendidas</button>";
var tocid = document.getElementById("toc") ? "#toc" :
document.getElementById("vector-toc") ? "#vector-toc" : null;
if (tocid) {
$(codigo).insertAfter(tocid);
$(codigo).insertBefore(tocid);
}
}
if (mw.config.get("wgNamespaceNumber") == 4 &&
(mw.config.get("wgTitle").match(/^Tablón de anuncios de los bibliotecarios\/Portal\/Archivo\/[^\/]+\/Actual$/) || mw.config.get("wgTitle").match(/^Filtro de ediciones\/Portal\/Archivo\/Reporte de falsos positivos\/Actual$/)))
{
$(tab_oculta_atendidas_instalaboton);
}