מדיה ויקי:Gadget-RestoreWarnings.js: הבדלים בין גרסאות בדף

על מה ולמה קריאות כפולות לפונקציות?
מ 89 גרסאות של הדף wikipedia:he:מדיה_ויקי:Gadget-RestoreWarnings.js יובאו
 
(40 גרסאות ביניים של 9 משתמשים אינן מוצגות)
שורה 1: שורה 1:
//<source lang="javascript">
function addWarningLinks() {
/* סקריפט להוספת קישורים להוספת תבניות אזהרה שונות למשתמשים, התורמים: Yonidebest, Ofekalef, קיפודנחש, חיים 7 */
$(function() {
"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('editToken'), appendtext: content, format: 'json'};
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['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')
next();
next();
שורה 24: שורה 22:
refPage = $this.attr('refPage').replace(/_/g, ' ');
refPage = $this.attr('refPage').replace(/_/g, ' ');


if(user == mw.user.name() && ! confirm('זהו דף השיחה שלך. האם אתה בטוח שברצונך להוסיף את התבנית?'))
if(user == mw.user.getName() && ! confirm('זהו דף השיחה שלך. האם אתה בטוח שברצונך להוסיף את התבנית?'))
return;
return;


שורה 47: שורה 45:
if (refPage)
if (refPage)
text = '\n==' + (linkTitle? "[[" + refPage + "]]" : refPage ) + '==\n' + text;
text = '\n==' + (linkTitle? "[[" + refPage + "]]" : refPage ) + '==\n' + text;
save_topage("שיחת משתמש:" + user, warning, text, watchOrUnwatch(templ), function() {mw.util.jsMessage(' תבנית "' + warning + '" נרשמה בשיחת משתמש:' + user);});
save_topage("שיחת משתמש:" + user, warning, text, watchOrUnwatch(templ), function() {mw.notify(' תבנית "' + warning + '" נרשמה בשיחת משתמש:' + user);});
}
}
שורה 60: שורה 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:first')
: $('#mw-diff-ntitle2 a.mw-userlink')
);
);
}
}
שורה 73: שורה 71:
anon = mw.util.isIPv4Address(user) || mw.util.isIPv6Address(user),
anon = mw.util.isIPv4Address(user) || mw.util.isIPv6Address(user),
all = [
all = [
{t:"אזהרה", m: "אזהרה", tl:"הוספת תבנית אזהרה"},
{t: "אזהרה", m: "אזהרה", tl: "הוספת תבנית אזהרה", wl: 'unwatch'},
{t:"ניסוי", m: "ניסויים", tl:"הוספת תבנית ניסויים", wl: '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:"הוספת תבנית פרסומת", wl: 'unwatch'},
{t: "פרסום", m: "פרסומת", tl: "הוספת תבנית פרסומת", wl: 'unwatch'},
{t:"הועתק", m: "העתקה", tl:"הוספת אזהרת העתקה", wl: 'unwatch'},
{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: "בה", tl:"הוספת תבנית ברוך בואך", noPage: true}
anon ? {t: "תודה", m: "תודה", tl: "הוספת תבנית תודה", wl: 'unwatch'} : {t: "בה", m: "ברוך בואך", tl:"הוספת תבנית ברוך בואך", wl: 'unwatch', noPage: true}
],
],
deletedTemplates = [
deletedTemplates = [
{t:"הבל", m: "הבל", tl:"הוספת אזהרת הבל", linkTitle: false },
{t: "הבל", m: "הבל", tl: "הוספת אזהרת הבל", linkTitle: false },
{t:"נמחק", m: "נמחק", tl:"הוספת תבנית מחיקה", linkTitle: false },
{t: "נמחק", m: "נמחק", tl: "הוספת תבנית מחיקה", linkTitle: false },
{t:"ניסוי נמחק", m: "נמחק ניסויים", tl:"הוספת תבנית מחיקה של ניסוי", linkTitle: false },
{t: "ניסוי נמחק", m: "נמחק ניסויים", tl: "הוספת תבנית מחיקה של ניסוי", linkTitle: false },
{t:"פרסום", m: "פרסומת", tl:"הוספת תבנית פרסומת", linkTitle: false },
{t: "פרסום", m: "פרסומת", tl: "הוספת תבנית פרסומת", linkTitle: false },
{t:"הועתק", m: "העתקה", tl:"הוספת אזהרת העתקה"}
{t: "הועתק", m: "העתקה", tl: "הוספת אזהרת העתקה"}
],
],
youWereBlocked = {t:"נחסמת", m: "נחסמת", tl:"הודעה למשתמש שנחסם", askExtra: {prompt: 'סיבת החסימה', param: '|'}, noPage: true};
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(' (');
שורה 100: שורה 104:
' | ',
' | ',
$('<a>', {href: mw.util.getUrl('Special:Contributions/' + 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: 'חסימה'}),
$('<a>', {href: mw.util.getUrl('Special:Block/' + forUser), text: 'חסימה'}),
שורה 117: שורה 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);
שורה 133: שורה 147:
link.after(makeSpan(user, false));
link.after(makeSpan(user, false));
}
}
else if (sysop && wgAction == 'delete' && $('#deleteconfirm').length==0) { //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 users = {};
שורה 144: שורה 158:
$(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)));
});
});
}
}
});
}
//</source>
 
// Early execution
if ( document.readyState === 'interactive' ) {
addWarningLinks();
} else {
$( addWarningLinks );
}