User:Bosco/MediaWiki:Gadget-MarkRights.js: Difference between revisions
From Test Wiki
Content deleted Content added
wikipage.content hook加入Watchlist |
mNo edit summary |
||
| (19 intermediate revisions by 4 users not shown) | |||
| Line 11: | Line 11: | ||
$(function () { |
$(function () { |
||
var groups = { |
var groups = { |
||
| ⚫ | |||
// 全站管理型权限 |
|||
| ⚫ | |||
| ⚫ | |||
autoreview: {list: [], class: "markrights-autoreview"}, |
|||
blockedfromchat: {list: [], class: "markrights-blockedfromchat"}, |
|||
bot: {list: [], class: "markrights-bot"}, |
|||
bureaucrat: {list: [], class: "markrights-bureaucrat"}, |
bureaucrat: {list: [], class: "markrights-bureaucrat"}, |
||
chatmod: {list: [], class: "markrights-chatmod"}, |
|||
checkuser: {list: [], class: "markrights-checkuser"}, |
checkuser: {list: [], class: "markrights-checkuser"}, |
||
'checkuser-temporary-account': {list: [], class: "markrights-checkuser-temporary-account"}, |
|||
confirmed: {list: [], class: "markrights-confirmed"}, |
|||
electionadmin: {list: [], class: "markrights-electionadmin"}, |
|||
'interface-admin': {list: [], class: "markrights-interface-admin"}, |
'interface-admin': {list: [], class: "markrights-interface-admin"}, |
||
'interwiki-admin': {list: [], class: "markrights-interwiki-admin"}, |
|||
//'non-stewardsuppress': {list: [], class: "markrights-non-stewardsuppress"}, |
|||
// 页面管理型权限 |
|||
patroller: {list: [], class: "markrights-patroller"}, |
patroller: {list: [], class: "markrights-patroller"}, |
||
'push-subscription-manager': {list: [], class: "markrights-push-subscription-manager"}, |
|||
reviewer: {list: [], class: "markrights-reviewer"}, |
|||
suppress: {list: [], class: "markrights-suppress"}, |
|||
// 大量操作型权限 |
|||
sysop: {list: [], class: "markrights-sysop"}, |
|||
translationadmin: {list: [], class: "markrights-translationadmin"}, |
|||
steward: {list: [], class: "markrights-steward"}, |
|||
// 确认权限 |
|||
sysadmin: {list: [], class: "markrights-sysadmin"}, |
|||
autoconfirmed: {list: [], class: "markrights-autoconfirmed"}, |
autoconfirmed: {list: [], class: "markrights-autoconfirmed"}, |
||
// 机器权限 |
|||
| ⚫ | |||
| ⚫ | |||
| ⚫ | |||
| ⚫ | |||
}; |
}; |
||
var markUG = function () { |
var markUG = function () { |
||
| Line 62: | Line 63: | ||
var getUsername = function (url) { |
var getUsername = function (url) { |
||
var username = mw.util.getParamValue('title', url); |
var username = mw.util.getParamValue('title', url); |
||
var decode1 = function (username) { |
|||
return decodeURIComponent((function (u) { |
|||
| ⚫ | |||
return decodeURIComponent(u.replace('User:', '').replace(/_/g, ' ')); |
|||
} catch (e) { |
|||
return u.replace('User:', '').replace(/_/g, ' ').replace(/%(?!\d+)/g, '%25'); |
|||
| ⚫ | |||
})(username)) |
|||
| ⚫ | |||
if (username) { |
if (username) { |
||
return |
return decode1(username); |
||
} |
} |
||
username = url.match(/\/wiki\/User:(.+?)$/); |
username = url.match(/\/wiki\/User:(.+?)$/); |
||
var decode2 = function (username) { |
|||
return decodeURIComponent((function (u) { |
|||
try { |
|||
return decodeURIComponent(u.replace(/_/g, ' ')); |
|||
} catch (e) { |
|||
return u.replace(/_/g, ' ').replace(/%(?!\d+)/g, '%25'); |
|||
} |
|||
})(username)) |
|||
| ⚫ | |||
if (username) { |
if (username) { |
||
return |
return decode2(username[1]); |
||
} |
} |
||
return null; |
return null; |
||
| Line 79: | Line 98: | ||
for (group in groups) { |
for (group in groups) { |
||
if (groups.hasOwnProperty(group)) { |
if (groups.hasOwnProperty(group)) { |
||
if (groups[group].list. |
if (groups[group].list.indexOf(username) > -1) { |
||
$(el).append('<sup class="' + groups[group].class + '"></sup>'); |
$(el).append('<sup class="' + groups[group].class + '"></sup>'); |
||
} |
} |
||
| Line 110: | Line 129: | ||
} |
} |
||
}; |
}; |
||
var api = new mw.Api(); |
var api = new mw.Api({ userAgent: 'Gadget-MarkRights' }); |
||
for (var j = 0; j < queue2.length; j++) { |
for (var j = 0; j < queue2.length; j++) { |
||
api.get({ |
api.get({ |
||
| Line 121: | Line 140: | ||
} |
} |
||
}; |
}; |
||
mw.hook('wikipage.content').add(function(e) { |
|||
if (e.attr('id') === 'mw-content-text') { |
|||
// 啟用「互動式瀏覽歷史」,切換差異時重新標記 |
|||
mw.hook('wikipage.diff').add(function () { // Reload alongside the revision slider |
|||
markUG(); |
markUG(); |
||
return; |
|||
| ⚫ | |||
} else if (['Recentchanges', 'Recentchangeslinked', 'Watchlist'].indexOf(mw.config.get('wgCanonicalSpecialPageName')) !== -1) { |
|||
| ⚫ | |||
// 最近/相關更改更新時重新標記 |
|||
| ⚫ | |||
mw.hook('wikipage.content').add(function (element) { |
|||
| ⚫ | |||
| ⚫ | |||
| ⚫ | |||
| ⚫ | |||
markUG(); |
|||
| ⚫ | |||
markUG(); |
|||
| ⚫ | |||
}); |
}); |
||