מדיה ויקי:Gadget-RestoreWarnings.js: הבדלים בין גרסאות בדף
מראה
מ [http://he.wikipedia.org/w/index.php?title=%D7%A9%D7%99%D7%97%D7%AA_%D7%9E%D7%A9%D7%AA%D7%9E%D7%A9:%D7%A7%D7%99%D7%A4%D7%95%D7%93%D7%A0%D7%97%D7%A9&diff=prev&oldid=12341101 בעקבות הבקשה של החבלן] התאמה רציונלית |
שליטה של המשתמש על רשימת המעקב |
||
| שורה 3: | שורה 3: | ||
$(function() { | $(function() { | ||
"use strict"; | |||
function save_topage(title, summary, content, wl, next) { | |||
var param = {action: 'edit', title: title, summary: summary, token: mw.user.tokens.get('editToken'), appendtext: content, format: 'json'}; | |||
if ( | if (wl) | ||
param.watchlist = | param.watchlist = wl; | ||
$.post(mw.util.wikiScript('api'), param, function (data) { | $.post(mw.util.wikiScript('api'), param, function (data) { | ||
if (data && data.error) | if (data && data.error) | ||
alert('error saving: ' + data.error['info']); | alert('error saving: ' + data.error['info']); | ||
else if (data && data.edit && data.edit.result == 'Success' && typeof next == 'function') | else if (data && data.edit && data.edit.result == 'Success' && typeof next == 'function') | ||
| שורה 15: | שורה 15: | ||
}); | }); | ||
} | } | ||
function activate() { | function activate() { | ||
var $this = $(this), | var $this = $(this), | ||
| שורה 23: | שורה 23: | ||
tw = warning, | tw = warning, | ||
refPage = $this.attr('refPage').replace(/_/g, ' '); | refPage = $this.attr('refPage').replace(/_/g, ' '); | ||
if (!warning || !user) | if (!warning || !user) | ||
return; | return; | ||
if (refPage) | if (refPage) | ||
tw += '|' + refPage; | tw += '|' + refPage; | ||
if (templ.askExtra) { | if (templ.askExtra) { | ||
if (templ.askExtra.prompt) { | if (templ.askExtra.prompt) { | ||
| שורה 40: | שורה 40: | ||
} | } | ||
text = "{{" + tw + "}} ~~" + "~~\n"; | var text = "{{" + tw + "}} ~~" + "~~\n"; | ||
if (refPage) | if (refPage) | ||
text = "\n==[[" + refPage + "]]==\n" + text; | text = "\n==[[" + refPage + "]]==\n" + text; | ||
save_topage("שיחת משתמש:" + user, warning, text, templ | save_topage("שיחת משתמש:" + user, warning, text, watchOrUnwatch(templ), function() {mw.util.jsMessage(' תבנית "' + warning + '" נרשמה בשיחת משתמש:' + user);}); | ||
} | } | ||
function watchOrUnwatch(templ) { | |||
var l = window.script64Watch || ''; | |||
return l | |||
? (typeof l == "string" | |||
? l | |||
: l[templ.t]) | |||
: templ.wl; | |||
} | |||
function getUserLink() { | function getUserLink() { | ||
return wgCanonicalSpecialPageName == 'Block' | return wgCanonicalSpecialPageName == 'Block' | ||
? mw.util.$content.find('p a:first') | |||
: (wgAction == 'rollback' | |||
? $('.mw-userlink:first') | |||
: $('#mw-diff-ntitle2 a:first') | |||
); | |||
} | } | ||
// main body of function | // main body of function | ||
var | var | ||
link = getUserLink(), | link = getUserLink(), | ||
user = link.text(), | user = link.text(), | ||
| שורה 61: | שורה 70: | ||
all = [ | all = [ | ||
{t:"אזהרה", m: "אזהרה", tl:"הוספת תבנית אזהרה"}, | {t:"אזהרה", m: "אזהרה", tl:"הוספת תבנית אזהרה"}, | ||
{t:"ניסוי", m: "ניסויים", tl:"הוספת תבנית ניסויים", unwatch | {t:"ניסוי", m: "ניסויים", tl:"הוספת תבנית ניסויים", wl: 'unwatch'}, | ||
{t:"בוטל", m: "בוטל", tl:"הוספת תבנית בוטל", askExtra: {prompt: 'סיבת הביטול', param: '|סיבה='}}, | {t:"בוטל", m: "בוטל", tl:"הוספת תבנית בוטל", askExtra: {prompt: 'סיבת הביטול', param: '|סיבה='}}, | ||
{t:"חזרה", m: "חזרה על עריכה", tl:"הוספת תבנית חזרה על עריכה"}, | {t:"חזרה", m: "חזרה על עריכה", tl:"הוספת תבנית חזרה על עריכה"}, | ||
{t:"פרסום", m: "פרסומת", tl:"הוספת תבנית פרסומת", unwatch | {t:"פרסום", m: "פרסומת", tl:"הוספת תבנית פרסומת", wl: 'unwatch'}, | ||
{t:"הועתק", m: "העתקה", tl:"הוספת אזהרת העתקה", wl: 'unwatch'}, | |||
{t:"הסבר", m: "הסבר", tl:"הוספת תבנית הסבר", askExtra: {confirm: 'בוטל ? (ביטול=לא)', param: '|בוטל=כן'}, unwatch | {t:"הסבר", m: "הסבר", tl:"הוספת תבנית הסבר", askExtra: {confirm: 'בוטל ? (ביטול=לא)', param: '|בוטל=כן'}, wl: 'unwatch'}, | ||
anon ? {t:"תודה", m: "תודה", tl:"הוספת תבנית תודה"} : {t:"בה", m: "בה", tl:"הוספת תבנית ברוך בואך", noPage: true} | anon ? {t:"תודה", m: "תודה", tl:"הוספת תבנית תודה"} : {t:"בה", m: "בה", tl:"הוספת תבנית ברוך בואך", noPage: true} | ||
], | ], | ||
deletedTemplates = [ | deletedTemplates = [ | ||
{t:"הבל", m: "הבל", tl:"הוספת אזהרת הבל"}, | {t:"הבל", m: "הבל", tl:"הוספת אזהרת הבל"}, | ||
{t:"נמחק", m: "נמחק", tl:"הוספת תבנית מחיקה"}, | |||
{t:"ניסוי נמחק", m: "נמחק ניסויים", tl:"הוספת תבנית מחיקה של ניסוי"}, | |||
{t:"פרסום", m: "פרסומת", tl:"הוספת תבנית פרסומת"}, | |||
{t:"הועתק", m: "העתקה", tl:"הוספת אזהרת העתקה"} | {t:"הועתק", m: "העתקה", tl:"הוספת אזהרת העתקה"} | ||
], | ], | ||
youWereBlocked = {t:"נחסמת", m: "נחסמת", tl:"הודעה למשתמש שנחסם"}; | youWereBlocked = {t:"נחסמת", m: "נחסמת", tl:"הודעה למשתמש שנחסם"}; | ||
function makeSpan(forUser, forDeletePage, paragraph) { | function makeSpan(forUser, forDeletePage, paragraph) { | ||
var container = $(paragraph ? '<p>' : '<span>').text(' ('); | var container = $(paragraph ? '<p>' : '<span>').text(' ('); | ||
| שורה 90: | שורה 99: | ||
container.append(' )'); | container.append(' )'); | ||
all = deletedTemplates.concat([youWereBlocked]); | all = deletedTemplates.concat([youWereBlocked]); | ||
} | } | ||
for (var i in all) { | for (var i in all) { | ||
| שורה 105: | שורה 114: | ||
return container.append(')'); | return container.append(')'); | ||
} | } | ||
var sysop = $.inArray('sysop', wgUserGroups)+1; | var sysop = $.inArray('sysop', wgUserGroups)+1; | ||
if (sysop) { | if (sysop) { | ||
| שורה 112: | שורה 121: | ||
all.push(youWereBlocked); | all.push(youWereBlocked); | ||
} | } | ||
if (user) { | if (user) { | ||
if ($('#mw-diff-ntitle2').length) | if ($('#mw-diff-ntitle2').length) | ||
$('#mw-diff-ntitle2').append(makeSpan(user, false, true)); | $('#mw-diff-ntitle2').append(makeSpan(user, false, true)); | ||
else | else | ||
link.after(makeSpan(user, false)); | link.after(makeSpan(user, false)); | ||
} | } | ||
| שורה 126: | שורה 135: | ||
{action: 'query', list: 'deletedrevs', drlimit: 20, titles: wgPageName, drprop: 'user', format: 'json'}, | {action: 'query', list: 'deletedrevs', drlimit: 20, titles: wgPageName, drprop: 'user', format: 'json'}, | ||
function(data) { | function(data) { | ||
if (data && data.query && data.query.deletedrevs) | if (data && data.query && data.query.deletedrevs) | ||
$(data.query.deletedrevs).each(function() { | $(data.query.deletedrevs).each(function() { | ||
$(this.revisions).each(function() {users[this.user] = true;}); | $(this.revisions).each(function() {users[this.user] = true;}); | ||
| שורה 133: | שורה 142: | ||
for (var editor in users) | for (var editor in users) | ||
content.append($('<p>').append(makeSpan(editor, true))); | content.append($('<p>').append(makeSpan(editor, true))); | ||
}); | }); | ||
} | } | ||
}); | }); | ||
//</source> | //</source> | ||
גרסה מ־01:13, 4 במאי 2012
//
/* סקריפט להוספת קישורים להוספת תבניות אזהרה שונות למשתמשים, התורמים: Yonidebest, Ofekalef, קיפודנחש, חיים 7 */
$(function() {
"use strict";
function save_topage(title, summary, content, wl, next) {
var param = {action: 'edit', title: title, summary: summary, token: mw.user.tokens.get('editToken'), appendtext: content, format: 'json'};
if (wl)
param.watchlist = wl;
$.post(mw.util.wikiScript('api'), param, function (data) {
if (data && data.error)
alert('error saving: ' + data.error['info']);
else if (data && data.edit && data.edit.result == 'Success' && typeof next == 'function')
next();
});
}
function activate() {
var $this = $(this),
user = $this.attr('user'),
templ = $this.data('templ'),
warning = templ.m || templ.t,
tw = warning,
refPage = $this.attr('refPage').replace(/_/g, ' ');
if (!warning || !user)
return;
if (refPage)
tw += '|' + refPage;
if (templ.askExtra) {
if (templ.askExtra.prompt) {
var extra = $.trim(prompt(templ.askExtra.prompt));
if (extra)
tw += templ.askExtra.param + extra;
}
else if (templ.askExtra.confirm && confirm(templ.askExtra.confirm))
tw += templ.askExtra.param;
}
var text = "{{" + tw + "}} ~~" + "~~\n";
if (refPage)
text = "\n==[[" + refPage + "]]==\n" + text;
save_topage("שיחת משתמש:" + user, warning, text, watchOrUnwatch(templ), function() {mw.util.jsMessage(' תבנית "' + warning + '" נרשמה בשיחת משתמש:' + user);});
}
function watchOrUnwatch(templ) {
var l = window.script64Watch || '';
return l
? (typeof l == "string"
? l
: l[templ.t])
: templ.wl;
}
function getUserLink() {
return wgCanonicalSpecialPageName == 'Block'
? mw.util.$content.find('p a:first')
: (wgAction == 'rollback'
? $('.mw-userlink:first')
: $('#mw-diff-ntitle2 a:first')
);
}
// main body of function
var
link = getUserLink(),
user = link.text(),
anon = /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/.test(user),
all = [
{t:"אזהרה", m: "אזהרה", tl:"הוספת תבנית אזהרה"},
{t:"ניסוי", m: "ניסויים", tl:"הוספת תבנית ניסויים", wl: 'unwatch'},
{t:"בוטל", m: "בוטל", tl:"הוספת תבנית בוטל", askExtra: {prompt: 'סיבת הביטול', param: '|סיבה='}},
{t:"חזרה", m: "חזרה על עריכה", tl:"הוספת תבנית חזרה על עריכה"},
{t:"פרסום", m: "פרסומת", tl:"הוספת תבנית פרסומת", wl: 'unwatch'},
{t:"הועתק", m: "העתקה", tl:"הוספת אזהרת העתקה", wl: 'unwatch'},
{t:"הסבר", m: "הסבר", tl:"הוספת תבנית הסבר", askExtra: {confirm: 'בוטל ? (ביטול=לא)', param: '|בוטל=כן'}, wl: 'unwatch'},
anon ? {t:"תודה", m: "תודה", tl:"הוספת תבנית תודה"} : {t:"בה", m: "בה", tl:"הוספת תבנית ברוך בואך", noPage: true}
],
deletedTemplates = [
{t:"הבל", m: "הבל", tl:"הוספת אזהרת הבל"},
{t:"נמחק", m: "נמחק", tl:"הוספת תבנית מחיקה"},
{t:"ניסוי נמחק", m: "נמחק ניסויים", tl:"הוספת תבנית מחיקה של ניסוי"},
{t:"פרסום", m: "פרסומת", tl:"הוספת תבנית פרסומת"},
{t:"הועתק", m: "העתקה", tl:"הוספת אזהרת העתקה"}
],
youWereBlocked = {t:"נחסמת", m: "נחסמת", tl:"הודעה למשתמש שנחסם"};
function makeSpan(forUser, forDeletePage, paragraph) {
var container = $(paragraph ? '<p>' : '<span>').text(' (');
if (forDeletePage) {
container.append($('<a>', {href: mw.util.wikiGetlink('User:' + forUser), text: forUser}));
container.append(' ( ');
container.append($('<a>', {href: mw.util.wikiGetlink('User Talk:' + forUser), text: 'שיחה'}));
container.append(', ');
container.append($('<a>', {href: mw.util.wikiGetlink('Special:Contributions/' + forUser), text: 'תרומות'}));
container.append(', ');
container.append($('<a>', {href: mw.util.wikiGetlink('Special:Block/' + forUser), text: 'חסימה'}));
container.append(' )');
all = deletedTemplates.concat([youWereBlocked]);
}
for (var i in all) {
var templ = all[i];
var page = (templ.noPage)
? ''
: (($.inArray(mw.config.get('wgNamespaceNumber'), [6, 14]) + 1) ? ':' : '') + mw.config.get('wgPageName').replace(/_/g, " ");
var a = $("<a>", {href: '#', user: forUser, refPage: page, title: templ.tl || templ.t})
.text(templ.t)
.click(activate)
.data({templ: templ});
container.append(i==0 ? '':' | ').append(a);
}
return container.append(')');
}
var sysop = $.inArray('sysop', wgUserGroups)+1;
if (sysop) {
if (wgCanonicalSpecialPageName == 'Block')
all = [];
all.push(youWereBlocked);
}
if (user) {
if ($('#mw-diff-ntitle2').length)
$('#mw-diff-ntitle2').append(makeSpan(user, false, true));
else
link.after(makeSpan(user, false));
}
else if (sysop && wgAction == 'delete') { //more complex case: we have to use API to get the user.
users = {},
content = mw.util.$content;
$.getJSON(
mw.util.wikiScript('api'),
{action: 'query', list: 'deletedrevs', drlimit: 20, titles: wgPageName, drprop: 'user', format: 'json'},
function(data) {
if (data && data.query && data.query.deletedrevs)
$(data.query.deletedrevs).each(function() {
$(this.revisions).each(function() {users[this.user] = true;});
});
content.append('<p>', {text: 'את הדף ' + wgPageName + ' ערכו העורכים הבאים:'});
for (var editor in users)
content.append($('<p>').append(makeSpan(editor, true)));
});
}
});
//