MediaWiki:Gadget-UserDetails.js: Difference between revisions
Jump to navigation
Jump to search
Want an adless experience? Log in or Create an account.
(addOnloadHook -> jQuery) |
m (update deprecated wg variables to mw.config) |
||
Line 28: | Line 28: | ||
}; | }; | ||
if((wgNamespaceNumber == 2 || wgNamespaceNumber == 3) && wgTitle.indexOf('/') == -1 && (wgAction != 'edit' || wgAction != 'submit')) $(showUserGroups) | if((mw.config.get('wgNamespaceNumber') == 2 || mw.config.get('wgNamespaceNumber') == 3) && mw.config.get('wgTitle').indexOf('/') == -1 && (mw.config.get('wgAction') != 'edit' || mw.config.get('wgAction') != 'submit')) $(showUserGroups) | ||
function 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); | var url = mw.config.get('wgServer') + mw.config.get('wgScriptPath') + '/api.php?action=query&format=json&callback=showUserGroupsCB&maxage=3600&smaxage=3600&usprop=blockinfo|groups|editcount|registration&list=users&ususers=' + encodeURIComponent(mw.config.get('wgTitle')); | ||
importScriptURI(url); | importScriptURI(url); | ||
} | } |
Revision as of 04:38, March 19, 2017
/* 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 }; */ /* default behavior */ var showUserGroupSettings = { 'IP':false, 'unregistered':true, 'registered':false, 'groups': false, 'groupless': false, 'editcount':true, 'regdate':false, 'blocked':true }; if((mw.config.get('wgNamespaceNumber') == 2 || mw.config.get('wgNamespaceNumber') == 3) && mw.config.get('wgTitle').indexOf('/') == -1 && (mw.config.get('wgAction') != 'edit' || mw.config.get('wgAction') != 'submit')) $(showUserGroups) function showUserGroups() { var url = mw.config.get('wgServer') + mw.config.get('wgScriptPath') + '/api.php?action=query&format=json&callback=showUserGroupsCB&maxage=3600&smaxage=3600&usprop=blockinfo|groups|editcount|registration&list=users&ususers=' + encodeURIComponent(mw.config.get('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['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-userdetails'); span.appendChild(document.createTextNode(text)); someHeading.appendChild(span); someHeading.setAttribute('title',title); someHeading.className += ' detected-userdetails-heading'; }