אונטערשייד צווישן ווערסיעס פון "מעדיעוויקי:Gadget-RestoreWarnings.js"
קפיצה לניווט
קפיצה לחיפוש
צייכן: אַנולירונג |
(flow time is over) |
||
(4 מיטלסטע ווערסיעס פון 2 באַניצער נישט געוויזן.) | |||
שורה 2: | שורה 2: | ||
"use strict"; | "use strict"; | ||
function save_topage(title, summary, content, wl, next) { | function save_topage(title, summary, content, wl, next) { | ||
var param = {action: ' | var param = {action: 'edit', title: title, summary: summary, token: mw.user.tokens.get('csrfToken'), appendtext: content, format: 'json'}; | ||
if (wl) | if (wl) | ||
param.watchlist = wl; | param.watchlist = wl; | ||
שורה 13: | שורה 13: | ||
} | } | ||
function activate() { | function activate(e) { | ||
e.preventDefault(); | |||
var $this = $(this), | var $this = $(this), | ||
user = $this.attr('user'), | user = $this.attr('user'), | ||
שורה 21: | שורה 22: | ||
tw = warning, | tw = warning, | ||
refPage = $this.attr('refPage').replace(/_/g, ' '); | refPage = $this.attr('refPage').replace(/_/g, ' '); | ||
if(user == mw.user.getName() | if(user == mw.user.getName() && ! confirm('זהו דף השיחה שלך. האם אתה בטוח שברצונך להוסיף את התבנית?')) | ||
return; | return; | ||
שורה 41: | שורה 42: | ||
tw += templ.askExtra.param; | tw += templ.askExtra.param; | ||
} | } | ||
var text = "{{" + tw + "}} ~~" + "~~\n"; | var text = (warning === "נחסמת" ? "\n\n== נחסמת ==\n" : "") + "{{" + tw + "}} ~~" + "~~\n"; | ||
if (refPage) | if (refPage) | ||
text = '\n==' + (linkTitle? "[[" + refPage + "]]" : refPage ) + '==\n' + text; | text = '\n==' + (linkTitle? "[[" + refPage + "]]" : refPage ) + '==\n' + text; | ||
שורה 153: | שורה 154: | ||
function(data) { | function(data) { | ||
var users = {}; | var users = {}; | ||
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;}); | ||
}); | }); | ||
var $div = $('<div>') | |||
.css({ | |||
border: '1px solid lightgray', | |||
borderRadius: '.3rem', | |||
backgroundColor: '#f3f3f3', | |||
padding: '.5rem 1rem .2rem', | |||
margin: '.5rem 0', | |||
fontSize: 'smaller' | |||
}) | |||
.text('את הדף "' + mw.config.get('wgPageName').replace(/_/g, ' ') + '" ערכו העורכים הבאים:') | |||
.insertBefore('#mw-returnto'); | |||
for (var editor in users) | for (var editor in users) | ||
$div.append(makeSpan(editor, true, true)); | |||
}); | }); | ||
} | } |
יעצטיגע רעוויזיע זינט 02:17, 28 מאי 2024
function addWarningLinks() {
"use strict";
function save_topage(title, summary, content, wl, next) {
var param = {action: 'edit', title: title, summary: summary, token: mw.user.tokens.get('csrfToken'), 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(e) {
e.preventDefault();
var $this = $(this),
user = $this.attr('user'),
templ = $this.data('templ'),
warning = templ.m || templ.t,
linkTitle = templ.hasOwnProperty('linkTitle')? templ.linkTitle : true,
tw = warning,
refPage = $this.attr('refPage').replace(/_/g, ' ');
if(user == mw.user.getName() && ! confirm('זהו דף השיחה שלך. האם אתה בטוח שברצונך להוסיף את התבנית?'))
return;
if (!warning || !user)
return;
if (refPage)
tw += '|' + refPage;
if (templ.askExtra) {
var skipExtra = window.skipAsk64 && window.skipAsk64[templ.m];
if (templ.askExtra.prompt && !skipExtra) {
var extra = $.trim(prompt(templ.askExtra.prompt));
if (extra)
tw += templ.askExtra.param + extra;
}
else if (! skipExtra && templ.askExtra.confirm && confirm(templ.askExtra.confirm))
tw += templ.askExtra.param;
}
var text = (warning === "נחסמת" ? "\n\n== נחסמת ==\n" : "") + "{{" + tw + "}} ~~" + "~~\n";
if (refPage)
text = '\n==' + (linkTitle? "[[" + refPage + "]]" : refPage ) + '==\n' + text;
save_topage("שיחת משתמש:" + user, warning, text, watchOrUnwatch(templ), function() {mw.notify(' תבנית "' + warning + '" נרשמה בשיחת משתמש:' + user);});
}
function watchOrUnwatch(templ) {
var l = window.script64Watch || '';
return l
? (typeof l == "string"
? l
: l[templ.t])
: templ.wl;
}
function getUserLink() {
return mw.config.get('wgCanonicalSpecialPageName') == 'Block'
? mw.util.$content.find('p a:first')
: (mw.config.get('wgAction') == 'rollback'
? $('.mw-userlink:first')
: $('#mw-diff-ntitle2 a.mw-userlink')
);
}
// main body of function
var
link = getUserLink(),
user = link.text(),
anon = mw.util.isIPv4Address(user) || mw.util.isIPv6Address(user),
all = [
{t: "אזהרה", m: "אזהרה", tl: "צולייגן מוסטער אזהרה", wl: 'unwatch'},
{t: "ניסויים", m: "ניסויים", tl: "צולייגן מוסטער ניסויים", wl: 'unwatch'},
{t: "בוטל", m: "בוטל", tl: "צולייגן מוסטער בוטל", askExtra: {prompt: 'סיבת הביטול', param: '|סיבה='}},
{t: "חזרה", m: "חזרה על עריכה", tl: "צולייגן מוסטער חזרה על עריכה"},
{t: "פרסום", m: "פרסומת", tl: "צולייגן מוסטער פרסומת", wl: 'unwatch'},
{t: "הועתק", m: "העתקה", tl: "הוספת אזהרת העתקה", askExtra: {prompt: 'מקור ההעתקה', param: '|2='}},
{t: "הסבר", m: "הסבר", tl: "צולייגן מוסטער הסבר", askExtra: {confirm: 'בוטל ? (ביטול=לא)', param: '|בוטל=כן'}, wl: 'unwatch'},
anon ? {t: "תודה", m: "תודה", tl: "צולייגן מוסטער תודה", wl: 'unwatch'} : {t: "שע", m: "שלום עליכם", tl:"צולייגן מוסטער שלום עליכם", wl: 'unwatch', noPage: true}
],
deletedTemplates = [
{t: "הבל", m: "הבל", tl: "הוספת אזהרת הבל", linkTitle: false },
{t: "נמחק", m: "נמחק", tl: "צולייגן מוסטער מחיקה", linkTitle: false },
{t: "ניסוי נמחק", m: "נמחק ניסויים", tl: "צולייגן מוסטער מחיקה של ניסוי", linkTitle: false },
{t: "פרסום", m: "פרסומת", tl: "צולייגן מוסטער פרסומת", linkTitle: false },
{t: "הועתק", m: "העתקה", tl: "הוספת אזהרת העתקה"}
],
youWereBlocked = {t: "נחסמת", m: "נחסמת", tl: "הודעה למשתמש שנחסם", askExtra: {prompt: 'סיבת החסימה', param: '|'}, noPage: true};
if (mw.user.options.get('userjs-RestoreWarnings-all')) {
var userTp = mw.user.options.get('userjs-RestoreWarnings-all').split(',');
for(var v in userTp)
{
all.push({t:userTp[v], m:userTp[v]});
}
}
function makeSpan(forUser, forDeletePage, paragraph) {
var container = $(paragraph ? '<p>' : '<span>').text(' (');
if (forDeletePage) {
container.append(
$('<a>', {href: mw.util.getUrl('User:' + forUser), text: forUser}),
' (',
$('<a>', {href: mw.util.getUrl('User Talk:' + forUser), text: 'שיחה'}),
' | ',
$('<a>', {href: mw.util.getUrl('Special:Contributions/' + forUser), text: 'תרומות'}),
' | ',
$('<a>', {href: mw.util.getUrl('Special:deletedcontributions/' + forUser), text: 'תרומות מחוקות'}),
' | ',
$('<a>', {href: mw.util.getUrl('Special:Block/' + forUser), text: 'חסימה'}),
' ) '
);
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(')').append($('<a href="#" title="הגדרת תבניות"> ⚙</a>').click(function(){
var newParams = prompt('תבניות נוספות להגדרה בתפריט (יש להפריד עם ,)', mw.user.options.get('userjs-RestoreWarnings-all') || '');
if (newParams !== null) {
if (newParams.length > 0) newParams = '=' + newParams;
var api = new mw.Api().postWithToken('csrf', {action: 'options', change: 'userjs-RestoreWarnings-all' + newParams })
}
return false;
}));
}
var sysop = $.inArray('sysop', mw.config.get('wgUserGroups'))+1;
if (sysop) {
if (mw.config.get('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 && mw.config.get('wgAction') == 'delete' && $('#deleteconfirm').length===0) { //more complex case: we have to use API to get the user.
$.getJSON(
mw.util.wikiScript('api'),
{action: 'query', list: 'deletedrevs', drlimit: 20, titles: mw.config.get('wgPageName'), drprop: 'user', format: 'json'},
function(data) {
var users = {};
if (data && data.query && data.query.deletedrevs)
$(data.query.deletedrevs).each(function() {
$(this.revisions).each(function() {users[this.user] = true;});
});
var $div = $('<div>')
.css({
border: '1px solid lightgray',
borderRadius: '.3rem',
backgroundColor: '#f3f3f3',
padding: '.5rem 1rem .2rem',
margin: '.5rem 0',
fontSize: 'smaller'
})
.text('את הדף "' + mw.config.get('wgPageName').replace(/_/g, ' ') + '" ערכו העורכים הבאים:')
.insertBefore('#mw-returnto');
for (var editor in users)
$div.append(makeSpan(editor, true, true));
});
}
}
// Early execution
if ( document.readyState === 'interactive' ) {
addWarningLinks();
} else {
$( addWarningLinks );
}