מדיה ויקי:Gadget-RestoreWarnings.js: הבדלים בין גרסאות בדף
whitespace damage |
מ 89 גרסאות של הדף wikipedia:he:מדיה_ויקי:Gadget-RestoreWarnings.js יובאו |
||
| (57 גרסאות ביניים של 11 משתמשים אינן מוצגות) | |||
| שורה 1: | שורה 1: | ||
function addWarningLinks() { | |||
"use strict"; | "use strict"; | ||
function save_topage(title, summary, content, wl, next) { | function save_topage(title, summary, content, wl, next) { | ||
var param = {action: 'edit', title: title, summary: summary, token: mw.user.tokens.get(' | 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; | ||
$.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 | 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') | ||
next(); | next(); | ||
| שורה 21: | שורה 18: | ||
templ = $this.data('templ'), | templ = $this.data('templ'), | ||
warning = templ.m || templ.t, | warning = templ.m || templ.t, | ||
linkTitle = templ.hasOwnProperty('linkTitle')? templ.linkTitle : true, | |||
tw = warning, | tw = warning, | ||
refPage = $this.attr('refPage').replace(/_/g, ' '); | refPage = $this.attr('refPage').replace(/_/g, ' '); | ||
if(user == mw.user.getName() && ! confirm('זהו דף השיחה שלך. האם אתה בטוח שברצונך להוסיף את התבנית?')) | |||
return; | |||
if (!warning || !user) | if (!warning || !user) | ||
| שורה 29: | שורה 30: | ||
if (refPage) | if (refPage) | ||
tw += '|' + refPage; | tw += '|' + refPage; | ||
if (templ.askExtra) { | if (templ.askExtra) { | ||
if (templ.askExtra.prompt) { | var skipExtra = window.skipAsk64 && window.skipAsk64[templ.m]; | ||
if (templ.askExtra.prompt && !skipExtra) { | |||
var extra = $.trim(prompt(templ.askExtra.prompt)); | var extra = $.trim(prompt(templ.askExtra.prompt)); | ||
if (extra) | if (extra) | ||
tw += templ.askExtra.param + extra; | tw += templ.askExtra.param + extra; | ||
} | } | ||
else if (templ.askExtra.confirm && confirm(templ.askExtra.confirm)) | else if (! skipExtra && templ.askExtra.confirm && confirm(templ.askExtra.confirm)) | ||
tw += templ.askExtra.param; | tw += templ.askExtra.param; | ||
} | } | ||
| שורה 42: | שורה 44: | ||
var text = "{{" + tw + "}} ~~" + "~~\n"; | var text = "{{" + tw + "}} ~~" + "~~\n"; | ||
if (refPage) | if (refPage) | ||
text = | text = '\n==' + (linkTitle? "[[" + refPage + "]]" : refPage ) + '==\n' + text; | ||
save_topage("שיחת משתמש:" + user, warning, text, watchOrUnwatch(templ), function() {mw. | save_topage("שיחת משתמש:" + user, warning, text, watchOrUnwatch(templ), function() {mw.notify(' תבנית "' + warning + '" נרשמה בשיחת משתמש:' + user);}); | ||
} | } | ||
| שורה 56: | שורה 58: | ||
function getUserLink() { | function getUserLink() { | ||
return wgCanonicalSpecialPageName == 'Block' | return mw.config.get('wgCanonicalSpecialPageName') == 'Block' | ||
? mw.util.$content.find('p a:first') | ? mw.util.$content.find('p a:first') | ||
: (wgAction == 'rollback' | : (mw.config.get('wgAction') == 'rollback' | ||
? $('.mw-userlink:first') | ? $('.mw-userlink:first') | ||
: $('#mw-diff-ntitle2 a | : $('#mw-diff-ntitle2 a.mw-userlink') | ||
); | ); | ||
} | } | ||
| שורה 67: | שורה 69: | ||
link = getUserLink(), | link = getUserLink(), | ||
user = link.text(), | user = link.text(), | ||
anon = | anon = mw.util.isIPv4Address(user) || mw.util.isIPv6Address(user), | ||
all = [ | all = [ | ||
{t:"אזהרה", m: "אזהרה", tl:"הוספת תבנית אזהרה"}, | {t: "אזהרה", m: "אזהרה", tl: "הוספת תבנית אזהרה", wl: 'unwatch'}, | ||
{t:" | {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:"הוספת תבנית פרסומת", wl: 'unwatch'}, | {t: "פרסום", m: "פרסומת", tl: "הוספת תבנית פרסומת", wl: 'unwatch'}, | ||
{t:"הועתק", m: "העתקה", tl:"הוספת אזהרת העתקה", | {t: "הועתק", m: "העתקה", tl: "הוספת אזהרת העתקה", askExtra: {prompt: 'מקור ההעתקה', param: '|2='}}, | ||
{t:"הסבר", m: "הסבר", tl:"הוספת תבנית הסבר", askExtra: {confirm: 'בוטל ? (ביטול=לא)', param: '|בוטל=כן'}, wl: 'unwatch'}, | {t: "הסבר", m: "הסבר", tl: "הוספת תבנית הסבר", askExtra: {confirm: 'בוטל ? (ביטול=לא)', param: '|בוטל=כן'}, wl: 'unwatch'}, | ||
anon ? {t:"תודה", m: "תודה", tl:"הוספת תבנית תודה"} : {t:"בה", m: " | anon ? {t: "תודה", m: "תודה", tl: "הוספת תבנית תודה", wl: 'unwatch'} : {t: "בה", m: "ברוך בואך", tl:"הוספת תבנית ברוך בואך", wl: 'unwatch', noPage: true} | ||
], | ], | ||
deletedTemplates = [ | deletedTemplates = [ | ||
{t:"הבל", m: "הבל", tl:"הוספת אזהרת הבל"}, | {t: "הבל", m: "הבל", tl: "הוספת אזהרת הבל", linkTitle: false }, | ||
{t:"נמחק", m: "נמחק", tl:"הוספת תבנית מחיקה"}, | {t: "נמחק", m: "נמחק", tl: "הוספת תבנית מחיקה", linkTitle: false }, | ||
{t:"ניסוי נמחק", m: "נמחק ניסויים", tl:"הוספת תבנית מחיקה של ניסוי"}, | {t: "ניסוי נמחק", m: "נמחק ניסויים", tl: "הוספת תבנית מחיקה של ניסוי", linkTitle: false }, | ||
{t:"פרסום", m: "פרסומת", tl:"הוספת תבנית פרסומת"}, | {t: "פרסום", m: "פרסומת", tl: "הוספת תבנית פרסומת", linkTitle: false }, | ||
{t:"הועתק", m: "העתקה", tl:"הוספת אזהרת העתקה"} | {t: "הועתק", m: "העתקה", tl: "הוספת אזהרת העתקה"} | ||
], | ], | ||
youWereBlocked = {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) { | function makeSpan(forUser, forDeletePage, paragraph) { | ||
var container = $(paragraph ? '<p>' : '<span>').text(' ('); | var container = $(paragraph ? '<p>' : '<span>').text(' ('); | ||
if (forDeletePage) { | if (forDeletePage) { | ||
container.append($('<a>', {href: mw.util. | 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]); | all = deletedTemplates.concat([youWereBlocked]); | ||
} | } | ||
| שורה 111: | שורה 123: | ||
container.append(i==0 ? '':' | ').append(a); | container.append(i==0 ? '':' | ').append(a); | ||
} | } | ||
return container.append(')'); | |||
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', wgUserGroups)+1; | var sysop = $.inArray('sysop', mw.config.get('wgUserGroups'))+1; | ||
if (sysop) { | if (sysop) { | ||
if (wgCanonicalSpecialPageName == 'Block') | if (mw.config.get('wgCanonicalSpecialPageName') == 'Block') | ||
all = []; | all = []; | ||
all.push(youWereBlocked); | all.push(youWereBlocked); | ||
| שורה 127: | שורה 147: | ||
link.after(makeSpan(user, false)); | link.after(makeSpan(user, false)); | ||
} | } | ||
else if (sysop && wgAction == 'delete') { //more complex case: we have to use API to get the user. | else if (sysop && mw.config.get('wgAction') == 'delete' && $('#deleteconfirm').length===0) { //more complex case: we have to use API to get the user. | ||
$.getJSON( | $.getJSON( | ||
mw.util.wikiScript('api'), | mw.util.wikiScript('api'), | ||
{action: 'query', list: 'deletedrevs', drlimit: 20, titles: wgPageName, drprop: 'user', format: 'json'}, | {action: 'query', list: 'deletedrevs', drlimit: 20, titles: mw.config.get('wgPageName'), drprop: 'user', format: 'json'}, | ||
function(data) { | function(data) { | ||
var users = {}; | |||
var content = mw.util.$content; | |||
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;}); | ||
}); | }); | ||
content.append('<p>', {text: 'את הדף ' + wgPageName + ' ערכו העורכים הבאים:'}); | content.append('<p>', {text: 'את הדף ' + mw.config.get('wgPageName') + ' ערכו העורכים הבאים:'}); | ||
for (var editor in users) | for (var editor in users) | ||
content.append($('<p>').append(makeSpan(editor, true))); | content.append($('<p>').append(makeSpan(editor, true))); | ||
}); | }); | ||
} | } | ||
}); | } | ||
// Early execution | |||
if ( document.readyState === 'interactive' ) { | |||
addWarningLinks(); | |||
} else { | |||
$( addWarningLinks ); | |||
} | |||