MediaWiki:If-hideable-portlets.js

 // Einzelne Rubriken (Boxen) in der Seitenleiste ein- und ausklappen


mw.loader.using( ['mediawiki.util'] ).done( function () {
 var hiddenPortlets;
 mw.util.addCSS('.pShow {display: block !important;}');
 if (document.cookie.search(/hiddenPortlets=undefined,p/) > -1) {
  hiddenPortlets = document.cookie.replace(/^.*?hiddenPortlets=([^;]+).*/, "$1");
  hpArray = hiddenPortlets.split(",");
  for (var pl = 1; pl < hpArray.length; pl++) {
   mw.util.addCSS('#'+hpArray[pl]+' .pBody {display: none;}');
  }
 }
});


 function preparePortlets() {
  var pArray = new Array("navigation", "contribution", "support", "search", "tb", "lang");
  for (var p = 0; p < pArray.length; p++) {
   if ($("#p-"+pArray[p]).length) {
    var pHead = $("#p-"+pArray[p]+" h5")[0];
    if (pHead) {
     pHead.title = "Die Rubrik „"+pHead.innerHTML+"“ ein- und ausklappen";
     if (pArray[p] == "search") {
      pHead.firstChild.style.cursor = "pointer";
      pHead.title = "Das Suchfeld ein- und ausblenden";
     }
     pHead.innerHTML = '<span onclick="togglePortlet(\'p-'+pArray[p]+'\')" style="cursor: pointer;">'+pHead.innerHTML+'<\/span>';
    }
   }
  }
 }
 $(preparePortlets);

 function togglePortlet(p) {
  var pBody = $(p).getElementsByTagName("div")[0];
  if (!hiddenPortlets || hiddenPortlets.indexOf(p) < 0) {
   pBody.className = "hiddenStructure";
   hiddenPortlets += ","+p;
  } else {
   pBody.className = "pBody pShow";
   var regex = new RegExp("^(.*),"+p+"(.*)$");
   hiddenPortlets = hiddenPortlets.replace(regex, "$1$2");
  }
  document.cookie = "hiddenPortlets="+hiddenPortlets+"; path=/";
 }