MediaWiki:Monobook.js: Difference between revisions

From Bulbanews, your community Pokémon newspaper.
Jump to navigationJump to search
m (this probably wont work either)
m (Undo revision 19898 by Immewnity (Talk) :-()
Line 106: Line 106:
   }
   }
}
}
function createContentTabs() {
  var ict=0; var ctdiv; var tabs;  var toggle;var firstTab;var firstToggle;
  var divs = document.getElementsByTagName("div");
  for (var i=0;  i<divs.length; i++) {
      ctdiv = divs[i];
      if (ctdiv.className == "Tabs") {
         
          ict++;
          //alert("tab for div i "+i + " ict="+ict);
          if (document.getElementById("ct_"+ict)) continue;
          ctdiv.parentNode.id = "ct_"+ict;
          tabs = ctdiv.childNodes;
          for (var j=0; j < tabs.length; j++) {
              var tab = tabs[j];
              var toggle = document.createElement("a");
             
              var tabName = tab.className;
              if (!tabName) continue;
                         
              //toggle.setAttribute('href', 'javascript:toggleTab(this,\''+'ct_'+ict+'\', \'' + tabName + '\',0);');
toggle.setAttribute('href', 'javascript:void(0)');
toggle.setAttribute('onclick', 'toggleTab(this,\''+'ct_'+ict+'\', \'' + tabName + '\',0);');
             
              var spLabel = tab.innerHTML;
              if (!spLabel) continue;
              toggle.innerHTML = spLabel;
              if (!firstTab) {
                  firstTab = tabName;
                  toggle.setAttribute('id','ct_'+ict+'_first');
                  //toggle.setAttribute('class',"first");
              } 
              ctdiv.appendChild(toggle);
              ctdiv.removeChild(tab);
             
          }
          toggleTab(1,'ct_'+ict, firstTab,1);
          firstTab=null;
      }
  }
}
function toggleTab(elem,ct_id,tab_id,first) {
  //alert("in "+ct_id+ " hiding all but " +tab_id + " sender: "+elem);
  var ctdiv = document.getElementById(ct_id);
  for (var i=0; i < ctdiv.childNodes.length;i++) {
      if (ctdiv.childNodes[i].className=="Contents") {
        var contentdiv = ctdiv.childNodes[i];
        for (var j=0; j <contentdiv.childNodes.length;j++) {
          if (contentdiv.childNodes[j].style) contentdiv.childNodes[j].style.display = "none";
        }
      }
      if (ctdiv.childNodes[i].className=="Tabs") {
        var contentdiv = ctdiv.childNodes[i];
       
        for (var j=0; j <contentdiv.childNodes.length;j++) {
          if (contentdiv.childNodes[j].className){
            contentdiv.childNodes[j].className = "";
          }
       
        }
        if (first) contentdiv.childNodes[0].className = "active";
      }
  }
  if (document.getElementById(tab_id).style) {
    //alert("setting style of id "+tab_id);
    document.getElementById(tab_id).style.display = "block";
    if (!first) elem.className = "active";
   
  }
}
addOnloadHook(createContentTabs);
/*</nowiki>*/
/*</nowiki>*/

Revision as of 19:46, 18 July 2009

/* tooltips and access keys */
ta = new Object();
ta['pt-userpage'] = new Array('.','My user page');
ta['pt-anonuserpage'] = new Array('.','The user page for the ip you\'re editing as');
ta['pt-mytalk'] = new Array('n','My talk page');
ta['pt-anontalk'] = new Array('n','Discussion about edits from this ip address');
ta['pt-preferences'] = new Array('','My preferences');
ta['pt-watchlist'] = new Array('l','The list of pages you\'re monitoring for changes.');
ta['pt-mycontris'] = new Array('y','List of my contributions');
ta['pt-login'] = new Array('o','You are encouraged to log in, it is not mandatory however.');
ta['pt-anonlogin'] = new Array('o','You are encouraged to log in, it is not mandatory however.');
ta['pt-logout'] = new Array('o','Log out');
ta['ca-talk'] = new Array('t','Discussion about the content page');
ta['ca-edit'] = new Array('e','You can edit this page. Please use the preview button before saving.');
ta['ca-addsection'] = new Array('+','Add a comment to this discussion.');
ta['ca-viewsource'] = new Array('e','This page is protected. You can view its source.');
ta['ca-history'] = new Array('h','Past versions of this page.');
ta['ca-protect'] = new Array('=','Protect this page');
ta['ca-delete'] = new Array('d','Delete this page');
ta['ca-undelete'] = new Array('d','Restore the edits done to this page before it was deleted');
ta['ca-move'] = new Array('m','Move this page');
ta['ca-nomove'] = new Array('','You don\'t have the permissions to move this page');
ta['ca-watch'] = new Array('w','Add this page to your watchlist');
ta['ca-unwatch'] = new Array('w','Remove this page from your watchlist');
ta['search'] = new Array('f','Search this wiki');
ta['p-logo'] = new Array('','Front page');
ta['n-mainpage'] = new Array('z','Visit the Front page');
ta['n-portal'] = new Array('','About the project, what you can do, where to find things');
ta['n-currentevents'] = new Array('','Find background information on current events');
ta['n-uploadlink'] = new Array('u','Upload images or media files');
ta['n-recentchanges'] = new Array('r','The list of recent changes in the wiki.');
ta['n-randompage'] = new Array('x','Load a random page');
ta['n-help'] = new Array('','The place to find out.');
ta['n-sitesupport'] = new Array('','Support us');
ta['t-whatlinkshere'] = new Array('j','List of all wiki pages that link here');
ta['t-recentchangeslinked'] = new Array('k','Recent changes in pages linked from this page');
ta['feed-rss'] = new Array('','RSS feed for this page');
ta['feed-atom'] = new Array('','Atom feed for this page');
ta['t-contributions'] = new Array('','View the list of contributions of this user');
ta['t-emailuser'] = new Array('','Send a mail to this user');
ta['t-specialpages'] = new Array('q','List of all special pages');
ta['ca-nstab-main'] = new Array('c','View the content page');
ta['ca-nstab-user'] = new Array('c','View the user page');
ta['ca-nstab-media'] = new Array('c','View the media page');
ta['ca-nstab-special'] = new Array('','This is a special page, you can\'t edit the page itself.');
ta['ca-nstab-wp'] = new Array('a','View the project page');
ta['ca-nstab-image'] = new Array('c','View the image page');
ta['ca-nstab-mediawiki'] = new Array('c','View the system message');
ta['ca-nstab-template'] = new Array('c','View the template');
ta['ca-nstab-help'] = new Array('c','View the help page');
ta['ca-nstab-category'] = new Array('c','View the category page');

/*<nowiki>*/
/** additional monobook scripts **/
hookEvent( 'load', displayTimer );

/**** function displayTimer.js
 * by Patrick Westerhoff [poke]
 */
function displayTimer ()
{
  if ( typeof( timerDisplay ) !== 'undefined' && timerDisplay === false )
    return;
  
  var date;
  var timerParent = document.getElementById( 'p-personal' ).getElementsByTagName( 'ul' )[0];
  var timerLink   = document.createElement( 'a' );
  var timerObj    = document.createElement( 'li' );
  timerLink.href               = '/wiki/' + wgPageName + '?action=purge';
  timerLink.title              = 'Purge the server cache and update the contents of this page.'
  timerObj.id                  = 'pt-timer';
  timerObj.style.textTransform = 'none';
  timerObj.style.fontWeight    = 'bold';
  timerObj.style.fontSize      = '100%';
  timerObj.appendChild( timerLink );
  timerParent.insertBefore( timerObj, timerParent.firstChild );
  
  function actualizeUTC ()
  {
    timerDate           = new Date();
    timerLink.innerHTML = ( timerDate.getUTCHours()   < 10 ? '0' : '' ) + timerDate.getUTCHours()   + ':'
                        + ( timerDate.getUTCMinutes() < 10 ? '0' : '' ) + timerDate.getUTCMinutes() + ':'
                        + ( timerDate.getUTCSeconds() < 10 ? '0' : '' ) + timerDate.getUTCSeconds() + ' (UTC)';
  }
  
  function actualizeCustom ()
  {
    timerDate           = new Date();
    timerDate.setMinutes( timerDate.getMinutes() + timerDate.getTimezoneOffset() + timerTimezone * 60 );
    timerLink.innerHTML = ( timerDate.getHours()   < 10 ? '0' : '' ) + timerDate.getHours()   + ':'
                        + ( timerDate.getMinutes() < 10 ? '0' : '' ) + timerDate.getMinutes() + ':'
                        + ( timerDate.getSeconds() < 10 ? '0' : '' ) + timerDate.getSeconds()
                        + ' (UTC' + ( timerTimezone < 0 ? '' : '+' ) + timerTimezone + ')';
  }
  
  // start
  if ( typeof( timerTimezone ) !== 'number' )
  {
    actualizeUTC();
    setInterval( actualizeUTC, 1000 );
  }
  else
  {
    actualizeCustom();
    setInterval( actualizeCustom, 1000 );
  }
}
/*</nowiki>*/