Diferencia entre revisiones de «MediaWiki discusión:Gadget-CollapsibleCombo.js»
Último comentario: hace 9 años por Juan renombrado en el tema Corrección (toggle)
Contenido eliminado Contenido añadido
Sección nueva: →Corrección (toggle) |
(Sin diferencias)
|
Revisión del 11:09 6 ene 2015
Corrección (toggle)
Modificación para solventar la eliminación de la función de jquery "toggle" con dos parámetros. No está convenientemente probado, pero lo pongo como paliativo:
var autoCollapse = 2;
var collapseCaption = "ocultar ▲";
var expandCaption = "mostrar ▼";
var collapseCaptionM = "▲";
var expandCaptionM = "▼";
var contCollapsible = 0;
// == Código del plegado/desplegado de tablas ==
// <nowiki>
/** Collapsible tables *********************************************************
*
* Description: Allows tables to be collapsed, showing only the header. See
* [[Wikipedia:NavFrame]].
* Maintainers: [[User:R. Koot]] (en), [[Usuario:Juan renombrado]]
*/
$(document).ready(
function () {
$("table.collapsible").each(
function () { /* only add button and increment count if there is a header row to work with */
var speed = "fast",
$toggleButton,
$contenido, $header = $(this).children("caption:first");
if (!$header.length) {
$header = $(this).find("th:first");
if (!$header.length) {
return;
}
speed = "";
$contenido = $(this.rows).slice(1);
} else {
$contenido = $(this.tBodies);
}
(++contCollapsible);
$toggleButton = $("<a></a>").text(collapseCaptionM).addClass("collapsible-toggle");
$header.addClass("collapsible-flexor").click(function(){
if($contenido.is(":visible")){
$contenido.hide(speed, function(){
$toggleButton.text(expandCaptionM);
$header.addClass("collapsed-header");
});
}else{
$contenido.show(speed, function(){
$toggleButton.text(collapseCaptionM);
$header.removeClass("collapsed-header");
});
}
return false;
})
.append($toggleButton);
if ($(this).hasClass("collapsed")) {
$header.click();
}
});
});
// </nowiki>
// == Código del plegado/desplegado de plantillas ==
$(document).ready(
function () {
$("div.NavFrame").each(function () {
(++contCollapsible);
var $NavToggle = $("<a></a>").text(collapseCaption).addClass("NavToggle"),
$contenido = $(this).children(".NavPic, .NavContent").first().addClass("collapsible-hidable");
$(this).children(".NavHead").addClass("collapsible-flexor").click(function(){
var $that = $(this);
if($contenido.is(":visible")){
$contenido.hide().promise().done(function(){
$NavToggle.text(expandCaption);
$that.addClass("collapsed-header");
});
}else{
$contenido.show().promise().done(function(){
$NavToggle.text(collapseCaption);
$that.removeClass("collapsed-header");
});
}
return false;
}).append($NavToggle);
if ($(this).hasClass("collapsed")) {
$(this).children(".NavHead").click();
}
});
});
// == acciones globales ==
$(document).ready(function () {
if (contCollapsible >= autoCollapse) {
$("div.NavFrame.autocollapse, table.collapsible.autocollapse").find(".collapsible-flexor:not(.collapsed-header)").click();
}
if (contCollapsible) {
var enlaceDesplegar = mw.util.addPortletLink('p-tb', '', 'Desplegar todo', 'p-eswikt-collapsible-s', 'Despliega todas las tablas ocultas'),
enlacePlegar = mw.util.addPortletLink('p-tb', '', 'Plegar todo', 'p-eswikt-collapsible-h', 'Pliega todas las tablas plegables');
$(enlaceDesplegar).click(function () {
$(".collapsible-flexor.collapsed-header").click();
return false;
}).css('font-style', 'italic');
$(enlacePlegar).click(function () {
$(".collapsible-flexor:not(.collapsed-header)").click();
return false;
}).css('font-style', 'italic');
}
});