User:Bosco/MediaWiki:Gadget-MarkRights.js: Difference between revisions

From Test Wiki
Content deleted Content added
Fix: 用戶名帶有空格的編碼
切換「互動式瀏覽歷史」差異、最近/相關更改更新時重新進行標記
Line 42: Line 42:
var queue1 = [];
var queue1 = [];
var queue2 = [];
var queue2 = [];
var i=0, n=0;
var i = 0, n = 0;
for (var user in users) {
for (var user in users) {
queue1.push(user);
queue1.push(user);
Line 63: Line 63:
return decodeURIComponent(username.replace('User:', '').replace(/_/g, ' '));
return decodeURIComponent(username.replace('User:', '').replace(/_/g, ' '));
}
}
username = url.match(/^\/wiki\/User:(.+?)$/);
username = url.match(/\/wiki\/User:(.+?)$/);
if (username) {
if (username) {
return decodeURIComponent(username[1].replace(/_/g, ' '));
return decodeURIComponent(username[1].replace(/_/g, ' '));
}
}
return null;
return null;
}
};


var done = function () {
var done = function () {
var group, user, j;
var group;
$('a.mw-userlink:not(.mw-anonuserlink)').each(function(i, el) {
$('a.mw-userlink:not(.mw-anonuserlink)').each(function (i, el) {
var username = getUsername($(el).attr('href'));
var username = getUsername($(el).attr('href'));
if (username) {
if (username) {
Line 93: Line 93:
users = [];
users = [];
}
}
for (var i=0; i<users.length; i++) {
for (var i = 0; i < users.length; i++) {
var user = users[i];
var user = users[i];
if (user.groups) {
if (user.groups) {
Line 109: Line 109:
};
};
var api = new mw.Api();
var api = new mw.Api();
for (var j=0; j<queue2.length; j++) {
for (var j = 0; j < queue2.length; j++) {
api.get({
api.get({
format: 'json',
format: 'json',
Line 119: Line 119:
}
}
};
};
if (mw.config.get('wgDiffNewId') || mw.config.get('wgDiffOldId')) {
markUG();
// 啟用「互動式瀏覽歷史」,切換差異時重新標記
mw.hook('wikipage.diff').add(function () { // Reload alongside the revision slider
markUG();
});
} else if (['Recentchanges', 'Recentchangeslinked'].includes(mw.config.get('wgCanonicalSpecialPageName'))) {
// 最近/相關更改更新時重新標記
mw.hook('wikipage.content').add(function (element) {
if (element.hasClass('mw-changeslist')) {
markUG();
}
});
markUG();
} else {
markUG();
}
});
});