Community Central
Community Central
No edit summary
Tag: sourceedit
No edit summary
Tag: sourceedit
Line 12: Line 12:
 
* @description: Creates a link in Special:Contributions to the user's posts on discussions.
 
* @description: Creates a link in Special:Contributions to the user's posts on discussions.
 
*/
 
*/
  +
  +
var dContribsUserId = 0;
   
 
//Is there a better way to get the user id?
 
//Is there a better way to get the user id?
function getUserIdByName(username){
+
function getUserIdByName(username) {
 
var request = new XMLHttpRequest();
 
var request = new XMLHttpRequest();
 
request.onreadystatechange = function() {
 
request.onreadystatechange = function() {
 
if(request.readyState == 4 && request.status == 200) {
 
if(request.readyState == 4 && request.status == 200) {
 
var arr = JSON.parse(request.responseText);
 
var arr = JSON.parse(request.responseText);
return arr["query"]["allusers"][0].id;
+
dContribsUserId = arr["query"]["allusers"][0].id;
} else {
 
return -0;
 
 
}
 
}
 
};
 
};
Line 31: Line 31:
 
if (wgCanonicalSpecialPageName == "Contributions") {
 
if (wgCanonicalSpecialPageName == "Contributions") {
 
var userName = wgPageName.split("/")[1]; //Can usernames contain slashes?
 
var userName = wgPageName.split("/")[1]; //Can usernames contain slashes?
var userId = getUserIdByName(userName);
+
getUserIdByName(userName);
if (Boolean(userId)) {
+
if (Boolean(dContribsUserId)) {
 
//Add new entry to toolbar
 
//Add new entry to toolbar
 
var divContentSub = document.getElementById("contentSub");
 
var divContentSub = document.getElementById("contentSub");
 
var aDContribs = document.createElement("a");
 
var aDContribs = document.createElement("a");
aDContribs.href = "/d/u/" + userId;
+
aDContribs.href = "/d/u/" + dContribsUserId;
var aDContribsText = document.createTextNode(" Discussions posts");
+
var aDContribsText = document.createTextNode(" Discussion posts");
 
aDContribs.appendChild(aDContribsText);
 
aDContribs.appendChild(aDContribsText);
 
divContentSub.appendChild(aDContribs);
 
divContentSub.appendChild(aDContribs);

Revision as of 12:21, 12 August 2016

importArticles({
    type: 'script',
    articles: [
        'u:elderscrolls:MediaWiki:Common.js/DiscussionsFeed.js'
    ]
});

/**
* @author: Flightmare (http://elderscrolls.wikia.com/wiki/User:Flightmare)
* @version: 1.0
* @license: CC-BY-SA 3.0
* @description: Creates a link in Special:Contributions to the user's posts on discussions.
*/

var dContribsUserId = 0;

//Is there a better way to get the user id?
function getUserIdByName(username) {
    var request = new XMLHttpRequest();
    request.onreadystatechange = function() {
        if(request.readyState == 4 && request.status == 200) {
            var arr = JSON.parse(request.responseText);
            dContribsUserId = arr["query"]["allusers"][0].id;
        }
    };
    request.open("GET", "/api.php?action=query&list=allusers&aufrom=" + username + "&format=json&aulimit=1", true);
    request.send();
}

function createDContribLinks() {
    if (wgCanonicalSpecialPageName == "Contributions") {
        var userName = wgPageName.split("/")[1]; //Can usernames contain slashes?
        getUserIdByName(userName);
        if (Boolean(dContribsUserId)) {
            //Add new entry to toolbar
            var divContentSub = document.getElementById("contentSub");
            var aDContribs = document.createElement("a");
            aDContribs.href = "/d/u/" + dContribsUserId;
            var aDContribsText = document.createTextNode(" Discussion posts");
            aDContribs.appendChild(aDContribsText);
            divContentSub.appendChild(aDContribs);
        }
    }
}

addOnloadHook(createDContribLinks);