(Created page with "→‎Any JavaScript here will be loaded for all users on every page load.: →‎importScriptPages-start: importScriptPage('Countdown/code.js', 'dev'); importScriptPage('Sh...")  |
(removing this version of Toggler script due to off-site dependency and security concerns. Consider using w:c:dev:toggler, insteads) |
||
Line 22: | Line 22: | ||
/* importScriptPages-end */ |
/* importScriptPages-end */ |
||
− | /** |
||
− | Toggles the display of elements on a page |
||
− | Author/contact: Austin Che http://openwetware.org/wiki/User:Austin_J._Che |
||
− | See http://openwetware.org/wiki/OpenWetWare:Toggle for examples and documentation |
||
− | */ |
||
− | // indexed array of toggler ids to array of associated toggle operations |
||
− | // 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 (!toBeToggled) return; |
||
− | |||
− | // if some element is in list more than once, it will be toggled multiple times |
||
− | for (var i = 0; i < toBeToggled.length; i++) { |
||
− | // get array of elements to operate on |
||
− | var toggles = toBeToggled[i][1]; |
||
− | if (typeof(toggles) == "string") { |
||
− | 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) { |
||
− | var toggle = document.createElement("a"); |
||
− | toggle.className = 'toggler-link'; |
||
− | toggle.setAttribute('id', 'toggler' + id); |
||
− | toggle.setAttribute('href', 'javascript:toggler("' + id + '");'); |
||
− | var child = toggler.firstChild; |
||
− | toggler.removeChild(child); |
||
− | toggle.appendChild(child); |
||
− | toggler.insertBefore(toggle, toggler.firstChild); |
||
− | } |
||
− | |||
− | function toggleInit() { |
||
− | var togglerElems = new Array(); |
||
− | var toggleGroup = new Array(); |
||
− | |||
− | // initialize/clear any old information |
||
− | togglers = new Array(); |
||
− | allClasses = new Object(); |
||
− | allClasses.watch = undefined; |
||
− | allClasses.unwatch = undefined; |
||
− | |||
− | |||
− | // 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]; |
||
− | if (!elem.className) 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]; |
||
− | if (!allClasses[elemClass]) allClasses[elemClass] = new Array(); |
||
− | allClasses[elemClass].push(elem); |
||
− | |||
− | // all the special classes begin with _toggle |
||
− | 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)); |
||
− | } |
||
− | } |
||
− | } |
||
− | |||
− | // add javascript links to all toggler elements |
||
− | for (var i = 0; i < togglerElems.length; i++) |
||
− | createTogglerLink(togglerElems[i], i); |
||
− | } |
||
− | |||
− | |||
− | function owwsitesearch(f) { |
||
− | f.q.value = 'site:http://openwetware.org/wiki/' + f.base.value + '++' + f.qfront.value |
||
− | } |
||
− | |||
− | |||
− | addOnloadHook(toggleInit); |
||
− | |||
− | // </syntax> |
||
/* Replaces {{USERNAME}} with the name of the user browsing the page. |
/* Replaces {{USERNAME}} with the name of the user browsing the page. |
||
Requires copying Template:USERNAME. */ |
Requires copying Template:USERNAME. */ |
||
Line 169: | Line 28: | ||
function UserNameReplace() { |
function UserNameReplace() { |
||
if (typeof(disableUsernameReplace) != 'undefined' && disableUsernameReplace || wgUserName == null) return; |
if (typeof(disableUsernameReplace) != 'undefined' && disableUsernameReplace || wgUserName == null) return; |
||
− | $("span.insertusername"). |
+ | $("span.insertusername").text(wgUserName); |
} |
} |
||
addOnloadHook(UserNameReplace); |
addOnloadHook(UserNameReplace); |
Revision as of 01:35, 8 July 2020
/* Any JavaScript here will be loaded for all users on every page load. */
/* importScriptPages-start */
importScriptPage('Countdown/code.js', 'dev');
importScriptPage('ShowHide/code.js', 'dev');
//importScriptPage('MediaWiki:Search_Fix.js', 'dantest');
importScriptPage('BackToTopButton/code.js', 'dev');
importArticles({
type: 'script',
articles: [
// ...
'w:c:dev:ReferencePopups/code.js',
// ...
]
});
/* importScriptPages-end */
/* Replaces {{USERNAME}} with the name of the user browsing the page.
Requires copying Template:USERNAME. */
function UserNameReplace() {
if (typeof(disableUsernameReplace) != 'undefined' && disableUsernameReplace || wgUserName == null) return;
$("span.insertusername").text(wgUserName);
}
addOnloadHook(UserNameReplace);
/* End of the {{USERNAME}} replacement */
// BEGIN JavaScript title rewrite -- jQuery version and new wikia skin fixes by Grunny
function rewriteTitle() {
if (typeof(window.SKIP_TITLE_REWRITE) != 'undefined' && window.SKIP_TITLE_REWRITE) {
return;
}
if ($('#title-meta').length == 0) {
return;
}
var newTitle = $('#title-meta').html();
if (skin == "oasis") {
$('header.WikiaPageHeader > h1').html('<div id="title-meta" style="display: inline;">' + newTitle + '</div>');
$('header.WikiaPageHeader > h1').attr('style', 'text-align:' + $('#title-align').html() + ';');
} else {
$('.firstHeading').html('<div id="title-meta" style="display: inline;">' + newTitle + '</div>');
$('.firstHeading').attr('style', 'text-align:' + $('#title-align').html() + ';');
}
}
// END JavaScript title rewrite
addOnloadHook(rewriteTitle);
// ============================================================
// displayTimer
// ============================================================
var refreshDate;
function addDate() {
var UTCDate = ((new Date()).toUTCString()).replace("GMT", "(UTC)");
$('#showdate').empty().append('<span style="font-weight: bold; text-transform: none;"><a title="Purge the server cache and update the contents of this page." href="' + wgArticlePath.replace('$1', wgPageName.replace(/ /g, '_')) + '?action=purge">' + UTCDate.substring(5) + '</a></span>');
window.clearTimeout(refreshDate);
refreshDate = window.setTimeout(addDate, 1000);
}
$(document).ready(function() {
if (skin == 'oasis')
$('<li id="displayTimer"><span id="showdate"></span></li>').appendTo('#GlobalNavigation');
else
$('#p-personal ul').prepend('<li><span id="showdate"></span></li>');
addDate();
refreshDate = window.setTimeout(addDate, 1000);
$('#displayTimer').css({'font-size': "12px"});
});
//