User:Emma/common.js: Difference between revisions

From Zelda Dungeon Wiki
Jump to navigation Jump to search
Want an adless experience? Log in or Create an account.
m (Testing script.)
No edit summary
Line 1: Line 1:
if (wgAction == 'delete') {
/*
$j(document).ready( function() {
Options:
$j.getJSON(
* Now supports an option system.
wgServer+wgScriptPath+'/api.php?action=query&list=allpages&aplimit=500&apnamespace='
* By setting a datalet true it shows in the header instead of the title.
+ wgNamespaceNumber + '&apprefix=' + encodeURIComponent(wgTitle)+ '/' + '&format=json&callback=?',
* Note, all are assumed false if omitted. All but 'groups' are assumed false if undefined.
function( data ) { showSubpagesCB(data); }
var showUserGroupSettings = {
);
  'IP':true,
});
  'unregistered':true,
  'registered':true,
  'groups': true,
  'groupless': true,
  'editcount':true,
  'regdate':true,
  'blocked':true
};
*/
if((wgNamespaceNumber == 2 || wgNamespaceNumber == 3) && wgTitle.indexOf('/') == -1 && (wgAction != 'edit' || wgAction != 'submit')) addOnloadHook(showUserGroups)
function showUserGroups() {
  var url = wgServer + wgScriptPath + '/api.php?action=query&format=json&callback=showUserGroupsCB&maxage=3600&smaxage=3600&usprop=blockinfo|groups|editcount|registration&list=users&ususers=' + encodeURIComponent(wgTitle);
  importScriptURI(url);
}
}
   
   
function showSubpagesCB(obj) {
function showUserGroupsCB(obj) {
var pages = obj.query && obj.query.allpages;
  var show = window.showUserGroupSettings || false;
  if(!obj['query'] || !obj['query']['users']) return
if ( !pages || pages.length == 0) {
  var user = obj['query']['users'];
$j('#deleteconfirm, #mw-img-eleteconfirm').append('<h2>Subpages</h2><p>No subpages exist for this page.</p>');
  if(user.length == 0) return
return;
  user = user[0];
}
  var someHeading = document.getElementsByTagName('h1')[0] || document.getElementsByTagName('h2')[0]
  if(!someHeading) return
   
   
var subpages = '<ul>';
  var span = document.createElement('span');
var cut = wgPageName.length+1, parent;
  var title = 'User:' + user['name'] + ' ';
  var text = ' ';
   
   
for (var pg in pages) {
  if(user['invalid'] == '') {
if ( !pages.hasOwnProperty(pg) ) {
    if(show && show.IP) text += '[IP] '
continue;
    else title += '[invalid or IP username] '
}
  } else if(user['missing'] == '') {
subpages += '<li>'
    if(show && show.unregistered) text += '[doesn\'t exist] '
+ '<a href="' + wgArticlePath.replace('$1', pages[pg].title) + '">' + pages[pg].title.substr(cut) + '</a>'
    else title += '[not a registered name] '
+ ' (<a href="' + wgScript + '?title=' + encodeURIComponent(pages[pg].title)
  } else {
.replace( /!/g, '%21' ).replace( /'/g, '%27' ).replace( /\(/g, '%28' )
    if(show && show.registered) text += '[exists] '
.replace( /\)/g, '%29' ).replace( /\*/g, '%2A' ).replace( /~/g, '%7E' )
    else title += '[username registered] '
.replace( /%20/g, '_' ).replace( /%3A/g, ':' ).replace( /%2F/g, '/' )
    if(user['groups']) {
+ '&action=delete">delete</a>)'
      if(show && show.groups || !show) text += '[user,' + user['groups'] + '] '
+ '</li>';
      else title += '[user,' + user['groups'] + '] '
}
    } else {
      if(show && show.groupless) text += '[user] '
      else title += '[user] '
    }
    if(user['editcount']) {
      if(show && show.editcount) text += '[' + user['editcount'] + ' edits] '
      else title += '[' + user['editcount'] + ' edits] '
    }
    if(user['registration']) {
      if(show && show.regdate) text += '[created: ' + user['registration'].split('T')[0] + '] '
      else title += '[created: ' + user['registration'] + '] '
    }
    if(user['blockedby']) {
      if(show && show.blocked) text += '[blocked] '
      else text += '[currently blocked] '
    }
  }
   
   
subpages += '</ul>';
  span.setAttribute('class','detected-userrights');
$j('#deleteconfirm, #mw-img-eleteconfirm').append('<h2>Subpages</h2>'+subpages);
  span.appendChild(document.createTextNode(text));
return;
  someHeading.appendChild(span);
  someHeading.setAttribute('title',title);
  someHeading.className += ' detected-userrights-heading';
}
}

Revision as of 22:51, October 2, 2012

/* 
Options:
* Now supports an option system. 
* By setting a datalet true it shows in the header instead of the title.
* Note, all are assumed false if omitted. All but 'groups' are assumed false if undefined.
var showUserGroupSettings = {
  'IP':true,
  'unregistered':true,
  'registered':true,
  'groups': true,
  'groupless': true,
  'editcount':true,
  'regdate':true,
  'blocked':true
};
*/
 
if((wgNamespaceNumber == 2 || wgNamespaceNumber == 3) && wgTitle.indexOf('/') == -1 && (wgAction != 'edit' || wgAction != 'submit')) addOnloadHook(showUserGroups)
function showUserGroups() {
  var url = wgServer + wgScriptPath + '/api.php?action=query&format=json&callback=showUserGroupsCB&maxage=3600&smaxage=3600&usprop=blockinfo|groups|editcount|registration&list=users&ususers=' + encodeURIComponent(wgTitle);
  importScriptURI(url);
}
 
function showUserGroupsCB(obj) {
  var show = window.showUserGroupSettings || false;
  if(!obj['query'] || !obj['query']['users']) return
  var user = obj['query']['users'];
  if(user.length == 0) return
  user = user[0];
  var someHeading = document.getElementsByTagName('h1')[0] || document.getElementsByTagName('h2')[0]
  if(!someHeading) return
 
  var span = document.createElement('span');
  var title = 'User:' + user['name'] + ' ';
  var text = ' ';
 
  if(user['invalid'] == '') {
    if(show && show.IP) text += '[IP] '
    else title += '[invalid or IP username] '
  } else if(user['missing'] == '') {
    if(show && show.unregistered) text += '[doesn\'t exist] '
    else title += '[not a registered name] '
  } else {
    if(show && show.registered) text += '[exists] '
    else title += '[username registered] '
    if(user['groups']) {
      if(show && show.groups || !show) text += '[user,' + user['groups'] + '] '
      else title += '[user,' + user['groups'] + '] '
    } else {
      if(show && show.groupless) text += '[user] '
      else title += '[user] '
    }
    if(user['editcount']) {
      if(show && show.editcount) text += '[' + user['editcount'] + ' edits] '
      else title += '[' + user['editcount'] + ' edits] '
    }
    if(user['registration']) {
      if(show && show.regdate) text += '[created: ' + user['registration'].split('T')[0] + '] '
      else title += '[created: ' + user['registration'] + '] '
    }
    if(user['blockedby']) { 
      if(show && show.blocked) text += '[blocked] '
      else text += '[currently blocked] '
    }
  }
 
  span.setAttribute('class','detected-userrights');
  span.appendChild(document.createTextNode(text));
  someHeading.appendChild(span);
  someHeading.setAttribute('title',title);
  someHeading.className += ' detected-userrights-heading';
}