MediaWiki:SbalovaniPortalu.js
Z WikiSkript
Poznámka: Po zveřejnění musíte vyprázdnit cache vašeho prohlížeče, jinak změny neuvidíte.
- Firefox / Safari: Při kliknutí na Aktualizovat držte Shift nebo stiskněte Ctrl-F5 nebo Ctrl-R (na Macu ⌘-R)
- Google Chrome: Stiskněte Ctrl-Shift-R (na Macu ⌘-Shift-R)
- Internet Explorer / Edge: Při kliknutí na Aktualizovat držte Ctrl nebo stiskněte Ctrl-F5
- Opera: Stiskněte Ctrl-F5.
/**
* Sbalování portálů a sekcí článků
*
* @file Umožní sbalit a rozbalit sekci portálu nebo článku.
* @author User:Slepi
* @license https://www.gnu.org/licenses/gpl.html GNU General Public License 3.0
*/
var sbalovaniPortalu = {
/**
* Úvodní parametry
*/
portalHideText : "skrýt", // text odkazu na skrytí sekce
portalShowText : "ukázat", // text odkazu na ukázání sekce
portalTitleClass : "portaltitle", // CSS class - titulek sekce, která se má skrývat
portalContentClass : "sb_portal", // CSS class - sbalená část
portalHiddenClass : "sbaleno", // CSS - má být sbaleno
/**
* Změna textu odkazu.
*
* @param {link} Odkaz na element.
* @param {data} Data, která se mají do elementu vložit.
*/
changeText : function(link, data) {
link.innerHTML = data;
},
/**
* Ukázat togglovací odkaz u nadpisu sekce.
*/
showPortalToggle : function() {
$("." + sbalovaniPortalu.portalTitleClass).each( function(i) {
$(this).append('<span class="portaltoggle">[<a id="togglePortalLink' + i + '" class="internal" href="javascript:sbalovaniPortalu.togglePortal(' + i + ')">' + sbalovaniPortalu.portalHideText + '</a>]</span>');
nazevCookie = "hideportal" + "_" + mw.config.get("wgPageName") + i + "=";
var cookiePos = document.cookie.indexOf(nazevCookie);
if (cookiePos > -1 && document.cookie.charAt(cookiePos + nazevCookie.length) === 1) {
sbalovaniPortalu.togglePortal(i);
} else if (this.className.indexOf(sbalovaniPortalu.portalHiddenClass) !== -1) {
sbalovaniPortalu.togglePortal(i);
}
});
},
/**
* Skrýt/zobrazit sekci
*
* @param {keSkryti} Číselné ID sekce, která se má skrývat.
*/
togglePortal : function(keSkryti) {
var portal = $("." + sbalovaniPortalu.portalContentClass);
portalX = portal[keSkryti];
var idToggle = 'togglePortalLink' + keSkryti;
var togglePortalLink = document.getElementById(idToggle);
if (portalX && togglePortalLink && portalX.style.display == 'none') {
sbalovaniPortalu.changeText(togglePortalLink, sbalovaniPortalu.portalHideText);
$(portalX).show("fast");
document.cookie = "hideportal" + "_" + mw.config.get("wgPageName") + keSkryti + "=0";
} else {
sbalovaniPortalu.changeText(togglePortalLink, sbalovaniPortalu.portalShowText);
$(portalX).hide("fast");
document.cookie = "hideportal" + "_" + mw.config.get("wgPageName") + keSkryti + "=1";
}
}
}
$(sbalovaniPortalu.showPortalToggle());