Jump to content

MediaWiki:Common.js: Difference between revisions

adding sidebar modification code here so all can use it
(removing hook for watchlist.js)
(adding sidebar modification code here so all can use it)
Line 278: Line 278:


addOnloadHook( createNavigationBarToggleButton );
addOnloadHook( createNavigationBarToggleButton );
// Allows sidebar's "navigation", "toolbox" and "languages" sections to be customized
function ModifySidebar(action, section, name, link)
{
    try
    {
        switch (section)
        {
          case "languages":
            var target = "p-lang";
            break;
          case "toolbox":
            var target = "p-tb";
            break;
          case "navigation":
            var target = "p-navigation";
            break;
          default:
            var target = "p-" + section;
            break;
        }
        if (action == "add")
        {
            var node = document.getElementById(target)
                              .getElementsByTagName('div')[0]
                              .getElementsByTagName('ul')[0];
            var aNode = document.createElement('a');
            var liNode = document.createElement('li');
            aNode.appendChild(document.createTextNode(name));
            aNode.setAttribute('href', link);
            liNode.appendChild(aNode);
            liNode.className='plainlinks';
            node.appendChild(liNode);
        }
        if (action == "remove")
        {
            var list = document.getElementById(target)
                              .getElementsByTagName('div')[0]
                              .getElementsByTagName('ul')[0];
            var listelements = list.getElementsByTagName('li');
            for (var i = 0; i < listelements.length; i++)
            {
                if (listelements[i].getElementsByTagName('a')[0].innerHTML == name ||
                    listelements[i].getElementsByTagName('a')[0].href == link)
                {
                    list.removeChild(listelements[i]);
                }
            }
        }
    }
    catch(e)
    {
      // let's just ignore what's happened
      return;
    }
}