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());