MediaWiki:Common.js: Difference between revisions

From Blank Chronicle
(Undo revision 693 by Aardvark (talk))
Tag: Undo
No edit summary
Line 4: Line 4:
$(function () {
$(function () {
         /* Add the hamburger menu button */
         /* Add the hamburger menu button */
var hamburgerContainer = document.getElementById('p-namespaces');
var hamburgerContainer = document.getElementById("p-namespaces");
var hamburger = document.getElementById('p-namespaces-label');
var hamburger = document.getElementById("p-namespaces-label");
         hamburger.innerHTML = '<i class='fa fa-bars'></i>';
         hamburger.innerHTML = "<i class="fa fa-bars"></i>";
         hamburgerContainer.setAttribute('onclick','toggleMenu();');
         hamburgerContainer.setAttribute("onclick","toggleMenu();");
         hamburger.style.display = 'initial';
         hamburger.style.display = "initial";
          
          
         /* Open regular edition and kanji by default if they are on the page */
         /* Open regular edition and kanji by default if they are on the page */
         if (document.getElementsByClassName('language-items').length > 0) {
         if (document.getElementsByClassName("language-items").length > 0) {
             document.getElementById('tab-kanji').click();
             document.getElementById("tab-kanji").click();
         }
         }


         if (document.getElementsByClassName('edition-items').length > 0) {
         if (document.getElementsByClassName("edition-items").length > 0) {
             document.getElementById('tab-re').click();
             document.getElementById("tab-re").click();
         }
         }


Line 26: Line 26:
function toggleMenu() {
function toggleMenu() {
     if (isShownburger) {
     if (isShownburger) {
         document.getElementById('mw-panel').style.display = 'none';
         document.getElementById("mw-panel").style.display = "none";
         isShownburger = false;
         isShownburger = false;
         }
         }
         else {
         else {
         document.getElementById('mw-panel').style.display = 'initial';
         document.getElementById("mw-panel").style.display = "initial";
         isShownburger = true;
         isShownburger = true;
         }
         }
Line 41: Line 41:
     var i, langcontent, languagetab, newcontent;
     var i, langcontent, languagetab, newcontent;


     // Get all elements with class='language-content' and hide them
     // Get all elements with class="language-content" and hide them
     langcontent = document.getElementsByClassName('language-items');
     langcontent = document.getElementsByClassName("language-items");
     for (i = 0; i < langcontent.length; i++) {
     for (i = 0; i < langcontent.length; i++) {
       langcontent[i].style.display = 'none';
       langcontent[i].style.display = "none";
     }
     }


     // Get all elements with class='tab-language' and remove the class 'active'
     // Get all elements with class="tab-language" and remove the class "active"
     languagetab = document.getElementsByClassName('tab-language');
     languagetab = document.getElementsByClassName("tab-language");
     for (i = 0; i < languagetab.length; i++) {
     for (i = 0; i < languagetab.length; i++) {
       languagetab[i].className = languagetab[i].className.replace(' active', '');
       languagetab[i].className = languagetab[i].className.replace(" active", "");
     }
     }


     // Show the current content, and add an 'active' class to the button that opened the tab
     // Show the current content, and add an "active" class to the button that opened the tab
     newcontent = document.getElementsByClassName('language-items' + ' ' + language);
     newcontent = document.getElementsByClassName("language-items" + " " + language);
     for (i = 0; i < newcontent.length; i++) {
     for (i = 0; i < newcontent.length; i++) {
       newcontent[i].style.display = 'initial';
       newcontent[i].style.display = "initial";
     }
     }
     event.currentTarget.className += ' active';
     event.currentTarget.className += " active";
     return;
     return;
}
}

Revision as of 16:40, 18 July 2020

/* Any JavaScript here will be loaded for all users on every page load. */

/* Add the hamburger menu button */
$(function () {
        /* Add the hamburger menu button */
	var hamburgerContainer = document.getElementById("p-namespaces");
	var hamburger = document.getElementById("p-namespaces-label");
        hamburger.innerHTML = "<i class="fa fa-bars"></i>";
        hamburgerContainer.setAttribute("onclick","toggleMenu();");
        hamburger.style.display = "initial";
        
        /* Open regular edition and kanji by default if they are on the page */
        if (document.getElementsByClassName("language-items").length > 0) {
            document.getElementById("tab-kanji").click();
        }

        if (document.getElementsByClassName("edition-items").length > 0) {
            document.getElementById("tab-re").click();
        }

}());

/* Make the hamburger work */
var isShownburger = false;

function toggleMenu() {
    if (isShownburger) {
        document.getElementById("mw-panel").style.display = "none";
        isShownburger = false;
        }
        else {
        document.getElementById("mw-panel").style.display = "initial";
        isShownburger = true;
        }
        return isShownburger;
}

/* Make the language and edition selectors work */
function showLanguage(event, language) {

    var i, langcontent, languagetab, newcontent;

    // Get all elements with class="language-content" and hide them
    langcontent = document.getElementsByClassName("language-items");
    for (i = 0; i < langcontent.length; i++) {
      langcontent[i].style.display = "none";
    }

    // Get all elements with class="tab-language" and remove the class "active"
    languagetab = document.getElementsByClassName("tab-language");
    for (i = 0; i < languagetab.length; i++) {
      languagetab[i].className = languagetab[i].className.replace(" active", "");
    }

    // Show the current content, and add an "active" class to the button that opened the tab
    newcontent = document.getElementsByClassName("language-items" + " " + language);
    for (i = 0; i < newcontent.length; i++) {
      newcontent[i].style.display = "initial";
    }
    event.currentTarget.className += " active";
    return;
}

function showEdition(event, edition) {
    return;
}