User:*Youngjin/RollbackComment.js
(Redirected from User:분당선M/RollbackComment.js)
Note: After publishing, you may have to bypass your browser's cache to see the changes.
- Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
- Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
- Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
- Opera: Press Ctrl-F5.
/*
* Gadget Script for rollbackers v0.1
** by [[ko:사용자:Devunt]]
** Transclued to meta & translate by user:분당선M
*/
function addExtRbLink() {
var rbnode = [], diffnode, index = {}, gebcn = document.getElementsByClassName
? function(a, b, c) { return a.getElementsByClassName(c) }
: getElementsByClassName;
if (typeof rollbackLinksDisable == 'object' && rollbackLinksDisable instanceof Array)
for (var i = 0; i < rollbackLinksDisable.length; i++)
index[rollbackLinksDisable[i]] = true;
if (!('user' in index) && wgCanonicalSpecialPageName == "Contributions" ||
!('recent' in index) && wgCanonicalSpecialPageName == "Recentchanges" ||
!('watchlist' in index) && wgCanonicalSpecialPageName == "Watchlist")
rbnode = gebcn(document.getElementById("bodyContent"), "span", "mw-rollback-link");
else if (!('history' in index) && wgAction == "history")
rbnode = gebcn(document.getElementById("pagehistory"), "span", "mw-rollback-link");
else if (!('diff' in index) && (diffnode = document.getElementById("mw-diff-ntitle2")))
rbnode = gebcn(diffnode, "span", "mw-rollback-link");
for (var i = 0, len = rbnode.length; i < len; i++)
addExtendedRollbackLink(rbnode[i]);
};
function confirmRollback() {
var url = this.href;
var user = url.match(/[?&]from=([^&]*)/);
if (!user) return;
user = decodeURIComponent(user[1].replace(/\+/g, " "));
var summary = prompt("Please write edit summary.",
rollbackSummaryDefault);
if (summary == undefined)
return false;
else if (summary == "")
return true;
this.href += "&summary=" + 'Reverted all edits by [[Special:Contributions/$2|$2]]([[User talk:$2|talk]]): '.replace(/\$2/g, user) + encodeURIComponent(summary.replace(/\$user/g, user));
return true;
};
function rollbackAsBot() {
this.href += "&bot=1";
return true;
}
function addExtendedRollbackLink(rbnode) {
var rblink = rbnode.getElementsByTagName("a")[0];
var alink = rblink.cloneNode(true);
alink.className = "";
alink.firstChild.nodeValue = "(+편집 요약)";
alink.onclick = confirmRollback;
rbnode.insertBefore(alink, rblink.nextSibling);
rbnode.insertBefore(document.createTextNode(" | "), alink);
if (userIsInGroup('sysop'))
{
var blink = rblink.cloneNode(true);
blink.className = "";
blink.firstChild.nodeValue = "(+봇)";
blink.onclick = rollbackAsBot;
rbnode.insertBefore(blink, alink.nextSibling);
rbnode.insertBefore(document.createTextNode(" | "), blink);
}
};
if (typeof rollbackLinksDisable == 'undefined')
rollbackLinksDisable = [];
if (typeof rollbackSummaryDefault == 'undefined')
rollbackSummaryDefault = "";
$(addExtRbLink);
function userIsInGroup (group)
{
if (wgUserGroups) {
if (!group || group.length == 0) group = '*';
return wgUserGroups.join (' ').indexOf (group) >= 0;
}
return false;
}
function esEditSummary() {
if (wgAction == 'edit' || wgAction == 'submit' || wgAction == 'editredlink') {
var wpSummary = document.getElementById('wpSummary')
if (!wpSummary || (wpSummary.form.wpSection && wpSummary.form.wpSection.value == 'new')) return
wpSummaryButtons = document.createElement('span')
wpSummaryButtons.id = 'esSummaryButtons'
wpSummary.parentNode.insertBefore(wpSummaryButtons, wpSummary.nextSibling)
esAddingButton()
}
}
function esAddButton(name, text, title) {
var btn = document.createElement('esSummaryButton')
btn.appendChild(document.createTextNode(name))
btn.title = title
btn.onclick = function() { esInsertSummary(text) }
wpSummaryButtons.appendChild(btn)
}
function esInsertSummary(text) {
var wpSummary = document.getElementById('wpSummary')
if (wpSummary.value.indexOf(text) != -1) return
if (wpSummary.value.match(/[^,; \/]$/)) wpSummary.value += ','
if (wpSummary.value.match(/[^ ]$/)) wpSummary.value += ' '
wpSummary.value += text
}