Difference between revisions of "MediaWiki:Common.js"

3,962 bytes added ,  00:12, 6 March 2010
no edit summary
Line 603: Line 603:
   });
   });
}
}
// --------------------------------------------------------
// Rights
// Sets a variable "rights" which will return "false" if the
// currently logged in user is a bureaucrat, administrator, or autoconfirmed user. It will return true otherwise.
// it also defines variables which may be used elsewhere in scripts.
// --------------------------------------------------------


/** Mobile browser helper link ************************************************
var rights_isAdmin = (wgUserGroups.toString().indexOf('sysop') != -1);
  *
var rights_isAuto = (wgUserGroups.toString().indexOf('autoconfirmed') != -1);
  * Adds a link to the mobile-optimized gateway at en.m.wikimedia.org
var rights_isCrat = (wgUserGroups.toString().indexOf('bureaucrat') != -1);
  for viewers on iPhone, iPod Touch, and Android devices.
  var rights = true;
*  This is semi-experimental to drive more test traffic there for now;
  if (rights_isCrat || rights_isAdmin || rights_isAuto)
  * it's still in development but very usable for reading!
  {rights=false}
  *
//
*  Currently set to always show the link on main page and search results,
 
and w/ 25% probability on other page views.
// --------------------------------------------------------
  *
// addLogs
  *  Maintainer: [[User:Brion VIBBER]]
// adds a 'page logs' link to the toolbox bar (if the page is a special page, then no link is displayed)
  */
// --------------------------------------------------------
if (/(Android|iPhone|iPod)/.test(navigator.userAgent)) {
addOnloadHook(function () {
  addOnloadHook(function() {
    if ( wgCanonicalNamespace == "Special" )
    var prob = 1.0;
        return; // don't display link for special pages
    if (wgCanonicalNamespace == 'Special' && wgCanonicalSpecialPageName == 'Search') {
 
      var pageLink = '?search=' + encodeURIComponent(document.getElementById('searchText').value);
    url = wgServer + "/index.php?title=Special:Log&page=" + encodeURIComponent(wgPageName);
    } else if (wgPageName == 'Main_Page') {
 
      var pageLink = '::Home'; // Special case
    addPortletLink("p-tb", url, "Page logs", "pt-logs");
    } else {
});
      var pageLink = encodeURIComponent(wgPageName).replace('%2F','/').replace('%3A',':');
//
// --------------------------------------------------------
// user rights
// adds a link in the tool box while on user pages to a user's rights management page.  
// --------------------------------------------------------
addOnloadHook(function () {
    if (!rights_isAdmin)
        return; //Restrict this feature to admins.
    if (wgNamespaceNumber != "2" && wgNamespaceNumber != "3")
        return; // restrict to User and User talk
   
    var title = wgTitle;
   
    addPortletLink('p-tb', '/Special:Userrights/'+title,
                  'User rights', 't-userrights', 'User rights for "'+title+'"');
   
});
//
 
// --------------------------------------------------------
// adminrights.js          (adapted from http://en.wikipedia.org/wiki/User:Ais523/adminrights.js)
// This script changes the color of links to admins' userpages in the bodyContent of Special, History pages, diff pages,
// and old page revisions.
// ("bodyContent" being everything but the tabs,personal links at the top of the screen and sidebar).
// --------------------------------------------------------
 
var adminrights=new Array();
   
importScript('MediaWiki:Adminlist.js');
   
//Highlighting script. Based on [[User:ais523/highlightmyname.js]].
   
function highlightadmins(n,p) //node, parent node
{
  while(n!=null)
  {
    if(n.nodeType==1&&n.tagName.toLowerCase()=="a") //anchor
    {
      if(n.href.indexOf("/User:")!=-1)
      {
        var u=n.href.split("/User:")[1];
        if(adminrights[u.split("_").join("%20")]==1)
        {
          n.style.color="#00CC00";
          if(n.className==null||n.className=="") n.className="ais523_adminrights_admin";
          else n.className+="ais523_adminrights_admin";
        }
        n=n.nextSibling;
      }
      else if(n.href.indexOf("/index.php?title=User:")!=-1)
      {
        var u=n.href.split("/index.php?title=User:")[1];
        if(adminrights[u.split("_").join("%20")]==1)
        {
          n.style.color="#00CC00";
          if(n.className==null||n.className=="") n.className="ais523_adminrights_admin";
          else n.className+=" ais523_adminrights_admin";
        }
        n=n.nextSibling;
      }
      else
      {
        if(n.firstChild!=null) highlightadmins(n.firstChild,n);
        n=n.nextSibling;
      }
    }
    else
    {
      if(n.firstChild!=null) highlightadmins(n.firstChild,n);
      n=n.nextSibling;
     }
     }
    if (prob < Math.random()) return;
  }
}


    var div = document.createElement('div');
 
    div.setAttribute( "id", "mobileDeviceNotice" );
if (wgCanonicalNamespace == 'Special' || wgAction == 'history' || document.URL.indexOf('diff=') > 0 || document.URL.indexOf('oldid=') > 0)
     div.style.fontSize = '30pt';
{
    div.style.lineHeight = '40pt';
addOnloadHook(function() {
    div.style.textAlign = 'center';
     highlightadmins(document.getElementById('bodyContent').firstChild,
    div.style.marginTop = '20px';
                    document.getElementById('bodyContent'));
    div.style.marginBottom = '20px';
});
    div.style.padding = '20px';
}
    div.style.border = '2px solid gray';
    div.appendChild(document.createTextNode("View this page on "));
//
    var link = document.createElement('a');
 
    link.href = 'http://en.m.wikipedia.org/wiki/' + pageLink;
// --------------------------------------------------------
    link.appendChild(document.createTextNode("Wikipedia's mobile site"));
// Patrol tab
    div.appendChild(link);
// adds a "marked as patrolled" tab to pages that have that link already on it.
    var content=document.getElementById('content');
// Once patrolled, the button turns into a button to go to the recent changes
    content.insertBefore(div,content.firstChild);
// with patrolled edits hidden. Further speeding up patrolling.
  });
// The second function of the button has the same access key.
// --------------------------------------------------------
function patroltab() {
if (document.URL.indexOf('&rcid=') > 0 && wgAction != 'markpatrolled')
{
addPortletLink ('p-cactions', "/index.php?title=" + encodeURIComponent(wgPageName) + "&action=markpatrolled&rcid=" + document.location.toString().split('&rcid=')[1].split('&'), 'patrol', 'ca-patrol', 'Mark as patrolled', '1');
}
else if (document.URL.indexOf('&rcid=') > 0 && wgAction == 'markpatrolled')
{
addPortletLink ('p-cactions', "/index.php?title=Special:RecentChanges&hidepatrolled=1", 'return', 'ca-return', 'Return to unpatrolled recent changes', '1');
}
}
addOnloadHook(patroltab);
//
 
// --------------------------------------------------------
// last diff
// Adds a tab which gives the latest diff for a page.
// --------------------------------------------------------
function lastdiff() {
addPortletLink("p-cactions", wgServer +  "/index.php?title=" + encodeURIComponent(wgPageName) + "&diff=cur&oldid=prev",
        "last", "ca-last", "Show most recent diff", '2');
}
if (wgCanonicalNamespace != 'Special' && wgAction != 'edit' && wgAction != 'delete' && wgAction != 'watch' && wgAction
!= 'unwatch' && wgAction != 'protect'){
addOnloadHook(lastdiff);
}
}
//


<!--http://en.wikipedia.org/wiki/MediaWiki:Common.js-->
// --------------------------------------------------------
//</source></nowiki>
// Recent Changes Edit Colors
// Colors the page size changes on the recent changes
// --------------------------------------------------------
importStylesheetURI(wgServer +"/User:Matt/RC_Colors.css" + "&ctype=text/css&action=raw");
//
577

edits