User:Emma/common.js

From Zelda Dungeon Wiki
< User:Emma
Revision as of 21:56, October 2, 2012 by Emma (talk | contribs) (Testing script.)
Jump to navigation Jump to search
Want an adless experience? Log in or Create an account.

Note: After saving, you may have to bypass your browser's cache to see the changes.

  • Firefox / Safari: hold Shift while clicking Reload, or press either Ctrl+F5 or Ctrl+R (Command+R on a Mac)
  • Google Chrome: press Ctrl+Shift+R (Command+Shift+R on a Mac)
  • Internet Explorer: hold Ctrl while clicking Refresh, or press Ctrl+F5
  • Konqueror: click Reload or press F5
  • Opera: clear the cache in Tools → Preferences
/*
 Adds a banner to the top of pages of blocked users.
*/
 
function check_blocked(){
 
  var username;  
  //Is this a user/user_talk page (fails for subpages)
  if( wgCanonicalNamespace == 'User' || wgCanonicalNamespace == 'User_talk' ){
    username = wgTitle;
 
  }else{ //Assume Special:Contributions
     var inputs = document.getElementsByTagName('input');
    for(var i=0;i<inputs.length;i++ ){
      if( inputs[i].name == 'target'){
        username = inputs[i].value;
      }
    }
  }
 
  if(!username) return false;
  var ajaxer = sajax_init_object();
 
  if(! ajaxer) return false;
 
  ajaxer.onreadystatechange = function(){
    if( ajaxer.readyState == 4 ){
      if( ajaxer.status == 200 ){
        var resp = ajaxer.responseText;
        if( resp.indexOf('[expiry]') > 0 ){
          is_blocked(resp, username);
        }else{
          not_blocked(resp);
        }
      }
    }
  }
 
  ajaxer.open("GET", wgScriptPath+ '/api.php?format=txt&action=query&list=blocks&bkprop=expiry&bkusers='+encodeURIComponent(username) );
  ajaxer.send('');
 
}
function is_blocked(resp, username){
  var ip = document.getElementById('contentSub');
  if(!ip) return; //happens on classic skin
 
  var sp = resp.indexOf('[expiry] => ')+12;
  var ep = resp.indexOf("\n",sp);
  var exp = resp.substr(sp,ep-sp);
  var blockNode;
  if(exp == 'infinity')
    blockNode = newNode('b',"indefinitely");
  else
    blockNode = newNode('span',"until "+exp);
  var blockLogNode = newNode('a', 'log', {href: '/w/index.php?title=Special:Log&type=block&page=User:' + username})
 
    ip.parentNode.insertBefore( 
    newNode('div',{'style':"border: 1px dashed #884444;background-color: #FFE7DD; text-align: center"},
      newNode('p','This user is blocked from editing ', blockNode, ' (', blockLogNode, ')') 
    )
  ,ip.nextSibling);
 
}
function not_blocked(){ /* Do Nothing */}
 
if( wgCanonicalNamespace == 'User' || wgCanonicalNamespace == 'User_talk' || wgCanonicalSpecialPageName == 'Contributions' || wgCanonicalSpecialPageName == 'DeletedContributions'){
  addOnloadHook(check_blocked);
}