Cid Highwind (talk | contribs) (new version of appearances section script) |
No edit summary |
||
Line 141: | Line 141: | ||
if (!interactiveTrees) { return; } |
if (!interactiveTrees) { return; } |
||
var divs = document.getElementsByTagName("div"); |
var divs = document.getElementsByTagName("div"); |
||
⚫ | |||
− | var i; |
||
⚫ | |||
if (divs[i].className == 'appear') { |
if (divs[i].className == 'appear') { |
||
recursiveCountAndMark(divs[i], 0); |
recursiveCountAndMark(divs[i], 0); |
||
Line 149: | Line 148: | ||
} |
} |
||
} |
} |
||
+ | |||
+ | // fix a bug noticed by renegade54 |
||
+ | // jump to the named anchor again |
||
+ | window.location = window.location.hash; |
||
} |
} |
||
Revision as of 22:55, 26 October 2006
/*
<pre>
*/
/* tooltips and access keys */
ta = new Object();
ta['pt-userpage'] = new Array('.','My user page');
ta['pt-anonuserpage'] = new Array('.','The user page for the ip you\'re editing as');
ta['pt-mytalk'] = new Array('n','My talk page');
ta['pt-anontalk'] = new Array('n','Discussion about edits from this ip address');
ta['pt-preferences'] = new Array('','My preferences');
ta['pt-watchlist'] = new Array('l','The list of pages you\'re monitoring for changes');
ta['pt-mycontris'] = new Array('y','List of my contributions');
ta['pt-login'] = new Array('o','You are encouraged to log in, it is not mandatory, however');
ta['pt-anonlogin'] = new Array('o','You are encouraged to log in, it is not mandatory, however');
ta['pt-logout'] = new Array('o','Log out');
ta['ca-talk'] = new Array('t','Discussion about the content page');
ta['ca-edit'] = new Array('e','You can edit this page; please use the preview button before saving');
ta['ca-addsection'] = new Array('+','Add a comment to this discussion');
ta['ca-viewsource'] = new Array('e','This page is protected - you can view its source');
ta['ca-history'] = new Array('h','Past versions of this page');
ta['ca-protect'] = new Array('=','Protect this page');
ta['ca-delete'] = new Array('d','Delete this page');
ta['ca-undelete'] = new Array('d','Restore the edits done to this page before it was deleted');
ta['ca-move'] = new Array('m','Move this page');
ta['ca-nomove'] = new Array('','You don\'t have the permissions to move this page');
ta['ca-watch'] = new Array('w','Add this page to your watchlist');
ta['ca-unwatch'] = new Array('w','Remove this page from your watchlist');
ta['search'] = new Array('f','Search this wiki');
ta['p-logo'] = new Array('','Main Page');
ta['n-mainpage'] = new Array('z','Visit the Main Page');
ta['n-portal'] = new Array('','About the project, what you can do, where to find things');
ta['n-Chat'] = new Array('','IRC, the place to chat');
ta['n-currentevents'] = new Array('','Find background information on current events');
ta['n-recentchanges'] = new Array('r','The list of recent changes in the wiki');
ta['n-randompage'] = new Array('x','Load a random page');
ta['n-help'] = new Array('','The place to find out information');
ta['n-sitesupport'] = new Array('','Support us');
ta['t-whatlinkshere'] = new Array('j','List of all wiki pages that link here');
ta['t-recentchangeslinked'] = new Array('k','Recent changes in pages linking to this page');
ta['feed-rss'] = new Array('','RSS feed for this page');
ta['feed-atom'] = new Array('','Atom feed for this page');
ta['t-contributions'] = new Array('','View the list of contributions of this user');
ta['t-emailuser'] = new Array('','Send a mail to this user');
ta['t-upload'] = new Array('u','Upload images or media files');
ta['t-specialpages'] = new Array('q','List of all special pages');
ta['ca-nstab-main'] = new Array('c','View the content page');
ta['ca-nstab-user'] = new Array('c','View the user page');
ta['ca-nstab-media'] = new Array('c','View the media page');
ta['ca-nstab-special'] = new Array('','This is a special page; you can\'t edit the page itself.');
ta['ca-nstab-wp'] = new Array('c','View the project page');
ta['ca-nstab-image'] = new Array('c','View the image page');
ta['ca-nstab-mediawiki'] = new Array('c','View the system message');
ta['ca-nstab-template'] = new Array('c','View the template');
ta['ca-nstab-help'] = new Array('c','View the help page');
ta['ca-nstab-category'] = new Array('c','View the category page');
// Start "Hidden appearances section/interactive tree" script; by [[User:Bp]]
// -----
function toggleAppearancesPane(eid) {
e = document.getElementById(eid);
if (e) { e.className = (e.className == "hiddenlist") ? "visiblelist" : "hiddenlist"; }
}
function showAppearancesPane(eid) {
e = document.getElementById(eid);
if (e) { e.className = "visiblelist"; }
}
function hideAppearancesPane(eid) {
e = document.getElementById(eid);
if (e) { e.className = "hiddenlist"; }
}
// -----
var tree = 0;
var pane = 0;
var paneListForThisTree = new Array();
var descriptionString = new String("This list contains %d items."); //%d is where the number of items is inserted
var smallTreeCount = 8; // less leaves than this, the tree will be open at first
var interactiveTrees = 1; // set this to 0 in user.js to turn this off
function button(text,onclick,cls) {
var b = document.createElement('a');
if (document.all) { b.innerText = text; } else { b.textContent = text; }
//b.onclick = onclick
b.href="javascript:"+onclick;
b.className = cls;
return b;
}
function recursiveCountAndMark(e, depth) {
var si = e.firstChild;
var total = 0;
while(si) {
var tn = (si.tagName) ? si.tagName.toLowerCase() : '';
if (tn == "li") { total++; }
var subtotal = recursiveCountAndMark(si, depth+1);
if (tn == "ul" || tn == "ol") {
if (depth > 1) {
si.id = "Pane" + pane++;
paneListForThisTree.push(si.id);
si.className = "hiddenlist";
si.parentNode.insertBefore(document.createTextNode('('), si);
si.parentNode.insertBefore(button(subtotal, "toggleAppearancesPane(\""+si.id+"\")", "listexpand"), si);
si.parentNode.insertBefore(document.createTextNode(')'), si);
total--; // don't count the li that this ul/ol is in
} else {
// we are finished and this is the top ul/ol
if (subtotal < smallTreeCount) { // this small enough they can be visible right away
for (var i=0;i<paneListForThisTree.length;i++) {
toggleAppearancesPane(paneListForThisTree[i]);
}
}
var allonexec = '{';
var alloffexec = '{';
for (var i=0;i<paneListForThisTree.length;i++) {
allonexec += "showAppearancesPane(\""+paneListForThisTree[i]+"\"); ";
alloffexec += "hideAppearancesPane(\""+paneListForThisTree[i]+"\"); ";
}
allonexec += '}'; alloffexec += '}';
var ds = descriptionString.replace(/\%d/g, subtotal);
si.parentNode.insertBefore(document.createTextNode(ds + ' ('), si);
si.parentNode.insertBefore(button("show all", allonexec, "listexpand"), si);
si.parentNode.insertBefore(document.createTextNode(' | '), si);
si.parentNode.insertBefore(button("hide all", alloffexec, "listexpand"), si);
si.parentNode.insertBefore(document.createTextNode(')'), si);
}
}
total += subtotal;
si = si.nextSibling;
}
return total;
}
function doAppearancesTrees() {
if (!interactiveTrees) { return; }
var divs = document.getElementsByTagName("div");
for (var i = 0; i < divs.length; i++) {
if (divs[i].className == 'appear') {
recursiveCountAndMark(divs[i], 0);
paneListForThisTree = new Array();
tree++;
}
}
// fix a bug noticed by renegade54
// jump to the named anchor again
window.location = window.location.hash;
}
hookEvent("load", doAppearancesTrees);
// End "Hidden Appearances section" script
/*
</pre>
*/