|
|
| (28 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) |
| Zeile 1: |
Zeile 1: |
| /**
| | revisionCounter.checkOnlyOnHistory = false; |
| Toggles the display of elements on a page
| |
| Author/contact: Austin Che http://openwetware.org/wiki/User:Austin
| |
| */
| |
|
| |
|
| // indexed array of toggler ids to array of associated toggle operations
| | addOnloadHook(function() |
| // each operation is a two element array, the first being the type, the second a class name or array of elements
| |
| // operation types are strings like "_reset" or "" for the default toggle operation
| |
| var togglers = new Array();
| |
| var allClasses = new Object(); // associative map of class names to page elements
| |
| | |
| function toggler(id) | |
| { | | { |
| var toBeToggled = togglers[id]; | | if(document.getElementById('toc')) |
| if (!toBeToggled) | | { |
| return; | | var toc = document.getElementById('toc').getElementsByTagName('ul')[0]; |
| | | var toggleLink = document.getElementById('togglelink'); |
| // if some element is in list more than once, it will be toggled multiple times | | if ($j("span.showtoc").size()>0) |
| for (var i = 0; i < toBeToggled.length; i++) | | { |
| | if(toc.style.display != 'block') |
| | { |
| | changeText(toggleLink, tocHideText); |
| | toc.style.display = 'block'; |
| | } |
| | } |
| | else if ($j("span.hidetoc").size()>0) |
| { | | { |
| // get array of elements to operate on
| | if(toc.style.display != 'none') |
| var toggles = toBeToggled[i][1];
| | { |
| if (typeof(toggles) == "string")
| | changeText(toggleLink, tocShowText); |
| {
| | toc.style.display = 'none'; |
| if (toggles.charAt(0) == '-')
| | } |
| {
| |
| // treat as an element ID, not as class
| |
| toggles = document.getElementById(toggles.substring(1));
| |
| if (toggles)
| |
| toggles = new Array(toggles);
| |
| }
| |
| else
| |
| toggles = allClasses[toggles];
| |
| }
| |
| if (!toggles || !toggles.length) | |
| continue;
| |
| | |
| var op = toBeToggled[i][0]; // what the operation will be | |
| | |
| switch (op)
| |
| {
| |
| case "_reset":
| |
| for (var j in toggles)
| |
| toggles[j].style.display = toggles[j]._toggle_original_display;
| |
| break;
| |
| case "_show":
| |
| for (var j in toggles)
| |
| toggles[j].style.display = '';
| |
| break;
| |
| case "_hide":
| |
| for (var j in toggles)
| |
| toggles[j].style.display = 'none';
| |
| break;
| |
| case "":
| |
| default:
| |
| // Toggle
| |
| for (var j in toggles)
| |
| toggles[j].style.display = ((toggles[j].style.display == 'none') ? '' : 'none');
| |
| break;
| |
| }
| |
| } | | } |
| } | | } |
| | }); |
|
| |
|
| function createTogglerLink(toggler, id) | | addOnloadHook(function() |
| { | | { |
| var toggle = document.createElement("a"); | | $j("select[name='Auswahl']").each(function(i) |
| toggle.className = 'toggler-link'; | | { |
| toggle.setAttribute('id', 'toggler' + id);
| | this.onchange = function() |
| toggle.setAttribute('href', 'javascript:toggler("' + id + '");');
| | { |
| var child = toggler.firstChild; | | if (this.options[this.options.selectedIndex].value == '%7B%7Bsubst%3AIP-Signaturnachtrag%7C%2B%7C%7C%7D%7D%2B') |
| toggler.removeChild(child);
| | $j.get('http://www.stargate-wiki.de/w/api.php?action=query&format=json&titles='+encodeURIComponent(wgPageName)+'&prop=revisions&meta=siteinfo|allmessages&ammessages=jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec', |
| toggle.appendChild(child);
| | function(data) |
| toggler.insertBefore(toggle, toggler.firstChild);
| | { |
| } | | var zeit = |
| | new Date(Date.parse(data.query.pages[wgArticleId].revisions[0].timestamp)+data.query.general.timeoffset*60*1000); |
| | insertTags("{"+"{"+"subst:"+(data.query.pages[wgArticleId].revisions[0].anon===''?"IP-":"")+"Signaturnachtrag|"+data.query.pages[wgArticleId].revisions[0].user+"|"+(zeit.getUTCHours()<10?"0":"")+zeit.getUTCHours()+":"+(zeit.getUTCMinutes()<10?"0":"")+zeit.getUTCMinutes()+", "+zeit.getUTCDate()+". "+data.query.allmessages[zeit.getUTCMonth()]["*"]+" "+zeit.getUTCFullYear()+" (CE"+(data.query.general.timeoffset==120?"S":"")+"T)|"+wgUserName+"}"+"}", '', ''); |
| | }, 'json'); |
| | else |
| | insertTags(unescape(this.options[this.options.selectedIndex].value).split('+')[0],unescape(this.options[this.options.selectedIndex].value).split('+')[1],unescape(this.options[this.options.selectedIndex].value).split('+')[2]); |
| | this.options.selectedIndex=0; |
| | }; |
| | }); |
| | }); |
|
| |
|
| function toggleInit() | | //Gelöschte Seiten auf Existenz überprüfen: |
| | addOnloadHook(function() |
| { | | { |
| var togglerElems = new Array();
| | var s=$j(".geloeschteSeite").map(function(){return this.title;}).get().join("|"); |
| var toggleGroup = new Array();
| | if (s != "") |
|
| | $j.get(wgServer+wgScriptPath+"/api.php?action=query&prop=info&format=json&titles="+encodeURIComponent(s), function(x) |
| // make list of all document classes
| |
| var elems = document.getElementsByTagName("*");
| |
| var numelems = elems.length;
| |
| for (var i = 0; i < elems.length; i++) | |
| { | | { |
| var elem = elems[i];
| | for (a in x.query.pages) |
| if (!elem.className)
| | if (x.query.pages[a].missing !== "") |
| continue;
| |
| | |
| elem._toggle_original_display = elem.style.display; | |
| var togglerID = -1;
| |
| var elemClasses = elem.className.split(' '); // get list of classes
| |
| for (var j = 0; j < elemClasses.length; j++)
| |
| { | | { |
| var elemClass = elemClasses[j];
| | var s = x.query.pages[a].title |
| if (! allClasses[elemClass])
| | if (typeof x.query.normalized != "undefined") |
| allClasses[elemClass] = new Array();
| | for (n in x.query.normalized) |
| allClasses[elemClass].push(elem);
| | if (x.query.normalized[n].to === s) |
| | | s = x.query.normalized[n].from; |
| // all the special classes begin with _toggle
| | $j('.geloeschteSeite[title="'+s+'"]').css("color", "green"); |
| if (elemClass.substring(0, 7) != "_toggle")
| |
| continue;
| |
| | |
| if (elemClass == "_togglegroup") | |
| toggleGroup = new Array();
| |
| else if (elemClass == "_toggle")
| |
| toggleGroup.push(elem);
| |
| else if (elemClass.substring(0, 12) == "_toggle_init")
| |
| {
| |
| // set initial value for display (ignore the original CSS set value)
| |
| // understands _toggle_initshow and _toggle_inithide
| |
| var disp = elemClass.substring(12);
| |
| if (disp == "show")
| |
| elem.style.display = '';
| |
| else if (disp == "hide")
| |
| elem.style.display = 'none';
| |
| elem._toggle_original_display = disp; | |
| }
| |
| else if (elemClass.substring(0, 8) == "_toggler")
| |
| {
| |
| if (togglerID == -1)
| |
| {
| |
| togglerID = togglers.length;
| |
| togglers[togglerID] = new Array();
| |
| togglerElems[togglerID] = elem;
| |
| }
| |
| | |
| // all classes are of form _toggler_op-CLASS
| |
| // figure out what class we're toggling
| |
| // if none is specified, then we use the current toggle group
| |
| var toBeToggled;
| |
| var hyphen = elemClass.indexOf('-');
| |
| if (hyphen != -1)
| |
| toBeToggled = elemClass.substring(hyphen+1);
| |
| else
| |
| {
| |
| toBeToggled = toggleGroup;
| |
| hyphen = elemClass.length;
| |
| }
| |
| | |
| var op = elemClass.substring(8, hyphen);
| |
| togglers[togglerID].push(new Array(op, toBeToggled));
| |
| }
| |
| } | | } |
| } | | }, "json"); |
| | | }); |
| // add javascript links to all toggler elements
| |
| for (var i = 0; i < togglerElems.length; i++)
| |
| createTogglerLink(togglerElems[i], i);
| |
| }
| |
| | |
| addOnloadHook(toggleInit);
| |
| | |
| function unToggle()
| |
| {
| |
| var path=window.location.href;
| |
| var parts=path.split("#");
| |
| if(parts.length > 1)
| |
| {
| |
| path=parts[parts.length-1];
| |
| parts=path.split(".23");
| |
|
| |
| var untogglerGroup = new Array();
| |
| var untogglerClass = new Array();
| |
|
| |
| // make list of all document classes
| |
| var elems = document.getElementsByTagName("*");
| |
| var numelems = elems.length;
| |
| for (var c=0; c < parts.length; c++)
| |
| {
| |
| for (var i = 0; i < elems.length; i++)
| |
| {
| |
| var elem = elems[i];
| |
| if (!elem.className)
| |
| continue;
| |
|
| |
| var elemClasses = elem.className.split(' '); // get list of classes
| |
|
| |
| for (var j = 0; j < elemClasses.length; j++)
| |
| {
| |
| var elemClass=elemClasses[j];
| |
| if (elemClass != parts[c])
| |
| continue;
| |
| else
| |
| {
| |
| untogglerGroup.push(elem);
| |
| untogglerClass.push(elemClass);
| |
| }
| |
| }
| |
| }
| |
| }
| |
|
| |
| // add javascript links to all toggler elements
| |
| for (var i = 0; i < untogglerGroup.length; i++)
| |
| {
| |
| untogglerGroup[i].style.display = '';
| |
| }
| |
| }
| |
| }
| |
| | |
| | |
| //neue Spoiler:
| |
| spoilerOK = false;
| |
| function toggleNext(a) {
| |
| if (spoilerOK) return true; //Nichts tun, wenn alle angezeigt werden
| |
| var e = a.nextElementSibling;
| |
| if (!e) e = a.parentNode.parentNode.nextElementSibling;
| |
| if (!e) return false;
| |
| if (e.className == "spoiler")
| |
| e.className = "";
| |
| else
| |
| e.className = "spoiler";
| |
| return true;
| |
| }
| |
| function toggleAll() {
| |
| spoilerOK = spoilerOK ? false : true;
| |
| document.getElementById("SpoilerCSS").disabled = spoilerOK;
| |
| return true;
| |
| }
| |
| document.write('<link id="SpoilerCSS" href="'+wgScript+'?title=Benutzer:CF/SpoilerCSS.css&action=raw&ctype=text/css" type="text/css" rel="stylesheet">');
| |
| document.write('<style type="text/css">.spoilerLupe + div.spoiler { display: block; } .spoilerLupe + span.spoiler { display: inline; }</style>');
| |