MediaWiki:Common.js: Difference between revisions

From Blank Chronicle
No edit summary
No edit summary
Line 6: Line 6:
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:25, 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;
}