- Portals
- The Current Year
- ED in the News
- Admins
- Help ED Rebuild
- Archive
- ED Bookmarklet
- Donate Bitcoin
Contact an admin on Discord or EDF if you want an account. Also fuck bots.
MediaWiki:Common.js: Difference between revisions
Jump to navigation
Jump to search
imported>MarioMario456 No edit summary |
imported>MarioMario456 minor changes. ed_global.js is gone so I'm adding the morphing objects for classes here |
||
Line 11: | Line 11: | ||
} | } | ||
}, 1000); | }, 1000); | ||
/* Collapsible toggle */ | /* Collapsible toggle */ | ||
Line 18: | Line 16: | ||
$(document).ready(function() { | $(document).ready(function() { | ||
$(".collapsibletoggletext").click(function() { | $(".collapsibletoggletext").click(function() { | ||
$(this).parent().children(".collapsibletoggletext"). | $(this).parent().children(".collapsibletoggletext").toggleClass("hiddentext"); | ||
}); | }); | ||
}); | }); | ||
Line 52: | Line 49: | ||
$(".morphlink").click(function() { | $(".morphlink").click(function() { | ||
var correspondingContent = $(this).data("correspondingcontent"); | var correspondingContent = $(this).data("correspondingcontent"); | ||
$("#" + correspondingContent).removeClass("hiddentext"); | if ($("#" + correspondingContent).length) { // morphing object uses IDs | ||
$(" | $("#" + correspondingContent).removeClass("hiddentext"); | ||
$("#" + correspondingContent).siblings().filter($(".morphcontent")).addClass("hiddentext"); | |||
} | |||
else { // morphing object uses classes | |||
$("." + correspondingContent).removeClass("hiddentext"); | |||
$("." + correspondingContent).siblings().filter($(".morphcontent")).addClass("hiddentext"); | |||
} | |||
}); | }); | ||
}); | }); |
Revision as of 20:36, 31 October 2021
/* Any JavaScript here will be loaded for all users on every page load. */
setInterval(function () {
var elements = document.getElementsByClassName('blink');
for (index = 0; index < elements.length; index++) {
if (elements[index].style.visibility === 'visible') {
elements[index].style.visibility = 'hidden';
} else {
elements[index].style.visibility = 'visible';
}
}
}, 1000);
/* Collapsible toggle */
$(document).ready(function() {
$(".collapsibletoggletext").click(function() {
$(this).parent().children(".collapsibletoggletext").toggleClass("hiddentext");
});
});
/* Cycle forwards or backwards through elements one at a time via click */
$(function(){
$(".cyclesequence").find(".cyclesequencelinknext").click(function(){
if ($(this).closest(".cyclesequence").find(".cyclesequenceitem:visible").next(".cyclesequenceitem").length === 0) {
$(this).closest(".cyclesequence").find(".cyclesequenceitem:first").removeClass("hiddentext").siblings(".cyclesequenceitem").addClass("hiddentext");
}
else {
$(this).closest(".cyclesequence").find(".cyclesequenceitem:visible").next(".cyclesequenceitem").removeClass("hiddentext").siblings(".cyclesequenceitem").addClass("hiddentext");
}
});
});
$(function(){
$(".cyclesequence").find(".cyclesequencelinkprev").click(function(){
if ($(this).closest(".cyclesequence").find(".cyclesequenceitem:visible").prev(".cyclesequenceitem").length === 0) {
$(this).closest(".cyclesequence").find(".cyclesequenceitem:last").removeClass("hiddentext").siblings(".cyclesequenceitem").addClass("hiddentext");
}
else {
$(this).closest(".cyclesequence").find(".cyclesequenceitem:visible").prev(".cyclesequenceitem").removeClass("hiddentext").siblings(".cyclesequenceitem").addClass("hiddentext");
}
});
});
/* Click link to show one or more items and hide other items */
$(document).ready(function() {
$(".morphlink").click(function() {
var correspondingContent = $(this).data("correspondingcontent");
if ($("#" + correspondingContent).length) { // morphing object uses IDs
$("#" + correspondingContent).removeClass("hiddentext");
$("#" + correspondingContent).siblings().filter($(".morphcontent")).addClass("hiddentext");
}
else { // morphing object uses classes
$("." + correspondingContent).removeClass("hiddentext");
$("." + correspondingContent).siblings().filter($(".morphcontent")).addClass("hiddentext");
}
});
});
/* Legacy collapse code. Being kept for backwards compatibility.
Based on WhiteMystery's original script, but more simplified. */
function legacyCollapse(collapsible) {
var collapsibleElement = document.getElementsByClassName(collapsible);
var allElements = document.getElementsByTagName("*");
var collapsibleToggle = document.querySelectorAll("[data-correspondingcontent=\"" + collapsible + "\"]");
if (collapsibleElement[0].style.display == "none") {
collapsibleToggle[0].innerHTML = collapsibleToggle[0].dataset.collapsetext;
if (collapsibleElement[0].style.removeProperty)
collapsibleElement[0].style.removeProperty("display");
else
collapsibleElement[0].style.removeAttribute("display");
}
else {
collapsibleToggle[0].innerHTML = collapsibleToggle[0].dataset.expandtext;
collapsibleElement[0].style.display = "none";
}
document.activeElement.blur();
}
function legacyCollapsibles() {
var allElements = document.getElementsByTagName("*");
var collapsibleRegex = new RegExp("^co;(.+?);(.+?);(.+?);(.+?)(;(.+?))?$");
for (var i = 0; i < allElements.length; i++) {
if (collapsibleRegex.test(allElements[i].className)) {
console.warn("One or more templates are using obsolete collapse code. Please convert said templates to the new format.");
var collapsibleValues = collapsibleRegex.exec(allElements[i].className);
var collapseText = collapsibleValues[1];
var expandText = collapsibleValues[2];
var defaultState = collapsibleValues[3];
var correspondingContent = collapsibleValues[4];
var toggleColor = collapsibleValues[6];
var collapsibleContent = document.getElementsByClassName(correspondingContent);
var toggleLink;
allElements[i].innerHTML = "<a href=\"javascript:legacyCollapse('" + correspondingContent + "')\" class=\"collapsibletoggle\" data-collapsetext=\"" + collapseText + "\" data-expandtext=\"" + expandText + "\" data-correspondingcontent=\"" + correspondingContent + "\"></a>";
toggleLink = allElements[i].getElementsByTagName("a");
if (defaultState == "0") {
toggleLink[0].innerHTML = collapsibleValues[2];
collapsibleContent[0].style.display = "none";
}
else
toggleLink[0].innerHTML = collapsibleValues[1];
if (toggleColor)
toggleLink[0].style.color = toggleColor;
}
}
}
$(document).ready(legacyCollapsibles);