Jump to content

User:Jsimlo/shortcuts.js

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Jsimlo (talk | contribs) at 17:32, 13 September 2006. The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
Note: After saving, you have to bypass your browser's cache to see the changes. Google Chrome, Firefox, Microsoft Edge and Safari: Hold down the ⇧ Shift key and click the Reload toolbar button. For details and instructions about other browsers, see Wikipedia:Bypass your cache.
 //<pre>

 var shortcutsVersion      = "0.0.4";
 var shortcutsReleaseDate  = "2006-09-01 19:32";

 /***********************************************************
  * INTERFACE
  ***********************************************************/

 /**
  * Starts a new section of links. Function for external use.
  */
 function shortcutsStartSection (name)
 {
   shortcutsLinks[shortcutsLinks.length] = { 'name': name, 'links': new Array () };
 }

 /**
  * Adds new link into the current section of links. Function for external use.
  */
 function shortcutsAddLink (name, article)
 {
   var links = shortcutsLinks[shortcutsLinks.length - 1]['links'];

   links[links.length] = { 'name': name, 'article': article };
 }

 /***********************************************************
  * IMPLEMENTATION
  ***********************************************************/

 /**
  * Link maker.
  * Creates and returns an li element with the desired link.
  */
 function shortcutsMakeLink (name, url)
 {
   var ntxt = document.createTextNode (name);
   var na   = document.createElement ('a');
   var nli  = document.createElement ('li');

   na.setAttribute ('href', '/wiki/' + url); 
   nli.setAttribute ('class', 'n-shortcut');

   na.appendChild (ntxt);
   nli.appendChild (na);

   return nli;
 }

 /**
  * Portlet maker.
  * Creates and returns a portlet populated by list of links.
  */
 function makePortlet (name, links)
 {
   var nportlet = document.createElement ('div');
   var nh5 = document.createElement ('h5');
   var ntit = document.createTextNode (name);
   var nbody = document.createElement ('div');
   var nul = document.createElement ('ul');

   nportlet.setAttribute ('id', 'p-'+name);
   nportlet.setAttribute ('class', 'portlet');
   nbody.setAttribute ('class', 'pBody');
   nul.setAttribute ('id', 'p-'+name);

   for (var i = 0; i < links.length; i++)
   {
     document.write (':' + links[i]['name'] + ' - ' + links[i]['article'] + '<br>');

     nul.appendChild (
       shortcutsMakeLink (links[i]['name'], links[i]['article'])
     );
   }

   nh5.appendChild (ntit);
   nportlet.appendChild (nh5);
   nbody.appendChild (nul);
   nportlet.appendChild (nbody);

   return nportlet;
 }

 /**
  * Main function.
  * Enumerates all non-empty sections, and adds new portlets beneath the old ones.
  */
 function shortcutsMain ()
 {
   var sidecol = document.getElementById ('column-one');

   for (var i = 0; i < shortcutsLinks.length; i++)
   {
     document.write (shortcutsLinks[i]['name'] + ' (' + shortcutsLinks[i]['links'].length + '):<br>');

     if (shortcutsLinks[i]['links'].length > 0)
       sidecol.appendChild (
         makePortlet (shortcutsLinks[i]['name'], shortcutsLinks[i]['links'])
       );
   }
 }

 /**
  * Initializes the onload events.
  */
 function shortcutsInitialize ()
 {
   var oldload = window.onload;

   window.onload = function ( e )
     {
       if (oldload)
         oldload ( e );

       shortcutsInit ();
       shortcutsMain ();
     };
 }

 /***********************************************************
  * INITIALIZATION
  ***********************************************************/

 var shortcutsLinks = new Array ();
 shortcutsStartSection ('shortcuts');

 shortcutsInitialize ();

 //</pre>