מדיה ויקי:Gadget-DeleteRequest.js: הבדלים בין גרסאות בדף
קפיצה לניווט
קפיצה לחיפוש
(שמות מרחב מקוצרים) |
(סיבות נפוצות) |
||
שורה 2: | שורה 2: | ||
if(mw.config.get('wgNamespaceNumber') + 1) // not a special page | if(mw.config.get('wgNamespaceNumber') + 1) // not a special page | ||
$(function(){ | $(function(){ | ||
function | function openDialog(code1, code2, code3, reasons, req) { | ||
var | var dialog = $("<div>").html("סיבה: ").dialog({title: "בקשה ל" + req}); | ||
var select = $("<select>").append($("<option>").append("אחר")); | |||
dialog.append(select); | |||
for (var id in reasons) { | |||
select.append($("<option>").append(reasons[id])); | |||
} | |||
var input = $("<input>"); | |||
dialog.append($("<br>"), "סיבה אחרת/נוספת: ", input); | |||
input.focus(); | |||
$(dialog).keypress(function(event) { | |||
} | if (event.key == "Enter") { | ||
var value = input["0"].value, selectValue = select["0"].value; | |||
if (value === "" && selectValue == "אחר") alert("לא מולאה סיבה"); | |||
if (value !== "" && selectValue == "אחר") code1(value); | |||
if (value === "" && selectValue != "אחר") code2(selectValue); | |||
if ( | if (value !== "" && selectValue !== "אחר") code3(value, selectValue); | ||
dialog.dialog('close'); | |||
if ( | |||
} | } | ||
} | }); | ||
dialog.dialog('option', 'buttons', { | |||
'בוצע': | 'בוצע': | ||
function(){ | |||
var value = input["0"].value, selectValue = select["0"].value; | |||
if (value === "" && selectValue == "אחר") alert("לא מולאה סיבה"); | |||
if (value !== "" && selectValue == "אחר") code1(value); | |||
if (value === "" && selectValue != "אחר") code2(selectValue); | |||
if (value !== "" && selectValue !== "אחר") code3(value, selectValue); | |||
dialog.dialog('close'); | |||
}, | |||
'סגור': | 'סגור': | ||
function() { | function() {dialog.dialog('close');} | ||
}); | |||
}); | |||
} | } | ||
function checkRequest() { | |||
function checkRequest() | |||
{ | |||
var requestChecker = new $.Deferred(); | var requestChecker = new $.Deferred(); | ||
new mw.Api().get( { | new mw.Api().get( { | ||
שורה 79: | שורה 45: | ||
indexpageids: 1 | indexpageids: 1 | ||
}).done(function(d) { | }).done(function(d) { | ||
d = d.query | d = d.query; | ||
if ( d && d.pageids && d.pageids.length ) { | if ( d && d.pageids && d.pageids.length ) { | ||
d = d.pages[d.pageids[0]]; | d = d.pages[d.pageids[0]]; | ||
שורה 96: | שורה 62: | ||
function save(title, summary, content, section, next) { | function save(title, summary, content, section, next) { | ||
var param = {action: 'edit', title: title, summary: summary, token: mw.user.tokens.get('editToken'), section: section || '0', appendtext: content, format: 'json', tags:'בקשות_ממפעילים'}; | var param = {action: 'edit', title: title, summary: summary.replace(/replaceParam/g, mw.config.get("wgPageName").replace(/_/g, " ")).replace(/replaceUser/g, mw.config.get('wgRelevantUserName')), token: mw.user.tokens.get('editToken'), section: section || '0', appendtext: content, format: 'json', tags:'בקשות_ממפעילים'}; | ||
$.post(mw.util.wikiScript('api'), param, function(data) { | $.post(mw.util.wikiScript('api'), param, function(data) { | ||
if (data && data.error) | if (data && data.error) | ||
mw.notify('שגיאה בשמירה: ' + data. | mw.notify('שגיאה בשמירה: ' + data.erro[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(); | ||
שורה 105: | שורה 71: | ||
} | } | ||
function addMenuItem(caption, tooltip | function addMenuItem(caption, tooltip, message, accessKey) { | ||
var a = mw.util.addPortletLink('p-cactions','#',caption,'',tooltip,(accessKey||'') | var a = mw.util.addPortletLink('p-cactions','#',caption,'',tooltip.replace(/replaceParam/g, mw.config.get("wgPageName").replace(/_/g, " ")).replace(/replaceUser/g, mw.config.get('wgRelevantUserName')),(accessKey||'')); | ||
$(a).click(function() { | $(a).click(function() { | ||
checkRequest().fail(function(err){ | checkRequest().fail(function(err){ | ||
mw.notify(err); | mw.notify(err); | ||
}).done(function(){ | }).done(function(){ | ||
if (message.match(/reason/)) {message += ' ~~' + '~~'}else{message += ' - reason ~~' + '~~'} | |||
message = message.replace(/replaceParam/g, mw.config.get('wgPageName')).replace(/replaceUser/g, mw.config.get('wgRelevantUserName')); | |||
switch (caption) { | |||
case "מחיקה": | |||
openDialog(function(value){save('ויקיפדיה:בקשות ממפעילים', '/* בקשות מחיקה */ [[replaceParam]]', '\n\n* ' + message.replace(/reason/g, value), 1, function() { mw.notify('בקשתך נשמרה בדף הבקשות מהמפעילים');})}, function(selectValue){save('ויקיפדיה:בקשות ממפעילים', '/* בקשות מחיקה */ [[replaceParam]]', '\n\n* ' + message.replace(/reason/g, selectValue), 1, function() { mw.notify('בקשתך נשמרה בדף הבקשות מהמפעילים');})}, function(value, selectValue){save('ויקיפדיה:בקשות ממפעילים', '/* בקשות מחיקה */ [[replaceParam]]', '\n\n* ' + message.replace(/reason/g, selectValue + ": " + value), 1, function() { mw.notify('בקשתך נשמרה בדף הבקשות מהמפעילים');})}, ["הבל", "מילוני/אולטרה קצרמר", "הפניה מיותרת", "הפניה שגויה", "לא אנציקלופדי", "פרסומת", "שגוי/טעות", "לבקשת הכותב", "הועבר למרחב טיוטה", "הועבר למרחב המשתמש", "הועבר למרחב הערכים"], "מחוק את הדף"); | |||
break; | |||
case "חסימה": | |||
openDialog(function(value){save('ויקיפדיה:בקשות ממפעילים', "/* בקשות חסימה / הסרת חסימה */ [[מש:replaceUser|replaceUser]] ([[שמש:replaceUser|ש]]|[[מיוחד:תרומות/replaceUser|ת]]|[[מיוחד:חסימה/replaceUser|ח]])", '\n\n* ' + message.replace(/reason/g, value), 2, function() { mw.notify('בקשתך נשמרה בדף הבקשות מהמפעילים');})}, function(selectValue){save('ויקיפדיה:בקשות ממפעילים', "/* בקשות חסימה / הסרת חסימה */ [[מש:replaceUser|replaceUser]] ([[שמש:replaceUser|ש]]|[[מיוחד:תרומות/replaceUser|ת]]|[[מיוחד:חסימה/replaceUser|ח]])", '\n\n* ' + message.replace(/reason/g, selectValue), 2, function() { mw.notify('בקשתך נשמרה בדף הבקשות מהמפעילים');})}, function(value, selectValue){save('ויקיפדיה:בקשות ממפעילים', "/* בקשות חסימה / הסרת חסימה */ [[מש:replaceUser|replaceUser]] ([[שמש:replaceUser|ש]]|[[מיוחד:תרומות/replaceUser|ת]]|[[מיוחד:חסימה/replaceUser|ח]])", '\n\n* ' + message.replace(/reason/g, selectValue + ": " + value), 2, function() { mw.notify('בקשתך נשמרה בדף הבקשות מהמפעילים');})}, ["השחתה לאחר אזהרה", "קללות או גסויות", "הפרעה", "כניסה למלחמת עריכה", "העלאת הבלים או ערכים חסרי תוכן", "הסרת תוכן מדפים", "שם משתמש לא מקובל", "לא בא/ה לתרום", "כתתובת אנונימית שמשמשת להשחתה"], "חסום את המשתמש"); | |||
break; | |||
case "הגנה": | |||
openDialog(function(value){save('ויקיפדיה:בקשות ממפעילים', '/* בקשות הגנה / הסרת הגנה */ [[replaceParam]]', '\n\n* ' + message.replace(/reason/g, value), 3, function() { mw.notify('בקשתך נשמרה בדף הבקשות מהמפעילים');})}, function(selectValue){save('ויקיפדיה:בקשות ממפעילים', '/* בקשות הגנה / הסרת הגנה */ [[replaceParam]]', '\n\n* ' + message.replace(/reason/g, selectValue), 3, function() { mw.notify('בקשתך נשמרה בדף הבקשות מהמפעילים');})}, function(value, selectValue){save('ויקיפדיה:בקשות ממפעילים', '/* בקשות הגנה / הסרת הגנה */ [[replaceParam]]', '\n\n* ' + message.replace(/reason/g, selectValue + ": " + value), 3, function() { mw.notify('בקשתך נשמרה בדף הבקשות מהמפעילים');})}, ["השחתות רבות", "אקטואלי", "טיפול מונע", "מלחמת עריכה"], "הגן על הדף"); | |||
break; | |||
case "הסתרת גרסה": | |||
openDialog(function(value){save('ויקיפדיה:בקשות ממפעילים', '/* בקשות מחיקת גרסאות מסוימות */ הסתרת גרסה', '\n\n* ' + message.replace(/reason/g, value), 4, function() { mw.notify('בקשתך נשמרה בדף הבקשות מהמפעילים');})}, function(selectValue){save('ויקיפדיה:בקשות ממפעילים', '/* בקשות מחיקת גרסאות מסוימות */ הסתרת גרסה', '\n\n* ' + message.replace(/reason/g, selectValue), 4, function() { mw.notify('בקשתך נשמרה בדף הבקשות מהמפעילים');})}, function(value, selectValue){save('ויקיפדיה:בקשות ממפעילים', '/* בקשות מחיקת גרסאות מסוימות */ הסתרת גרסה', '\n\n* ' + message.replace(/reason/g, selectValue + ": " + value), 4, function() { mw.notify('בקשתך נשמרה בדף הבקשות מהמפעילים');})}, ["תוכן פוגעני", "קללות/גסויות", "נאצות/השמצות"], "הסתיר את הגרסה"); | |||
break; | |||
} | } | ||
}); | }); | ||
}); | }); | ||
} | } | ||
var ca = $.inArray(mw.config.get('wgNamespaceNumber'), [6, 14]) + 1 ? ':' : ''; | var ca = $.inArray(mw.config.get('wgNamespaceNumber'), [6, 14]) + 1 ? ':' : ''; | ||
var pageName = mw.config.get('wgPageName').replace( /_/g, " " ); | var pageName = mw.config.get('wgPageName').replace( /_/g, " " ); | ||
if ($('#t-contributions').length) { | if ($('#t-contributions').length) { | ||
addMenuItem('חסימה', 'בקשה לחסום את replaceUser', "{{לחסום|replaceUser}}", "]"); | |||
addMenuItem('חסימה', 'בקשה לחסום את | |||
} | } | ||
var pageLink = $('.redirectMsg').length ? '{{ללא הפניה|replaceParam}}' : '[[' + ca + 'replaceParam]]'; | var pageLink = $('.redirectMsg').length ? '{{ללא הפניה|replaceParam}}' : '[[' + ca + 'replaceParam]]'; | ||
addMenuItem('הגנה', 'בקשה להגן על הדף replaceParam' | addMenuItem('הגנה', 'בקשה להגן על הדף replaceParam', pageLink, '='); | ||
var | var deleteTemplate = $('.redirectMsg').length ? '{{בקשת מחיקה|replaceParam|reason|הפניה=כן}}' : '{{בקשת מחיקה|replaceParam|reason}}'; | ||
if (!mw.util.getParamValue('redlink')) | |||
addMenuItem('מחיקה', 'בקשה למחוק את הדף replaceParam', deleteTemplate,'d'); | |||
if (mw.util.getParamValue('oldid') && mw.util.getParamValue('diff')) | if (mw.util.getParamValue('oldid') && mw.util.getParamValue('diff')) | ||
addMenuItem('הסתרת גרסה', 'בקשה להסתיר את הגרסה ' + mw.util.getParamValue('diff') | addMenuItem('הסתרת גרסה', 'בקשה להסתיר את הגרסה ' + mw.util.getParamValue('diff') , '{{הבדל|' + mw.config.get('wgPageName') + '|' + mw.util.getParamValue('diff') + '|' + mw.util.getParamValue('oldid') + '|טקסט=גרסה זו}} ב[['+ mw.config.get('wgPageName').replace( /_/g, " " ) +']]', '['); | ||
$( document ).trigger( 'new-portlet-link' ); | $( document ).trigger( 'new-portlet-link' ); | ||
}); | }); |
גרסה מ־12:01, 28 ביוני 2017
/* הסקריפט מוסיף לשוניות "מחיקה", "הגנה" ו"חסימה" על מנת שאפשר יהיה לבקש מחיקת דפים, הגנת דפים וחסימת משתמשים באמצעות דף בקשות ממפעילים. */
if(mw.config.get('wgNamespaceNumber') + 1) // not a special page
$(function(){
function openDialog(code1, code2, code3, reasons, req) {
var dialog = $("<div>").html("סיבה: ").dialog({title: "בקשה ל" + req});
var select = $("<select>").append($("<option>").append("אחר"));
dialog.append(select);
for (var id in reasons) {
select.append($("<option>").append(reasons[id]));
}
var input = $("<input>");
dialog.append($("<br>"), "סיבה אחרת/נוספת: ", input);
input.focus();
$(dialog).keypress(function(event) {
if (event.key == "Enter") {
var value = input["0"].value, selectValue = select["0"].value;
if (value === "" && selectValue == "אחר") alert("לא מולאה סיבה");
if (value !== "" && selectValue == "אחר") code1(value);
if (value === "" && selectValue != "אחר") code2(selectValue);
if (value !== "" && selectValue !== "אחר") code3(value, selectValue);
dialog.dialog('close');
}
});
dialog.dialog('option', 'buttons', {
'בוצע':
function(){
var value = input["0"].value, selectValue = select["0"].value;
if (value === "" && selectValue == "אחר") alert("לא מולאה סיבה");
if (value !== "" && selectValue == "אחר") code1(value);
if (value === "" && selectValue != "אחר") code2(selectValue);
if (value !== "" && selectValue !== "אחר") code3(value, selectValue);
dialog.dialog('close');
},
'סגור':
function() {dialog.dialog('close');}
});
}
function checkRequest() {
var requestChecker = new $.Deferred();
new mw.Api().get( {
action:'query',
prop: 'links',
titles: 'ויקיפדיה:בקשות ממפעילים',
pltitles: mw.config.get('wgPageName'),
indexpageids: 1
}).done(function(d) {
d = d.query;
if ( d && d.pageids && d.pageids.length ) {
d = d.pages[d.pageids[0]];
if ( d.links && d.links.length > 0 )
{
if (!confirm('הדף כבר מוזכר בבקשות ממפעילים. האם לשלוח בכל זאת את הבקשה?')) {
requestChecker.reject('הדף כבר מוזכר בבקשות ממפעילים. הבקשה לא בוצעה');
return;
}
}
}
requestChecker.resolve();
});
return requestChecker;
}
function save(title, summary, content, section, next) {
var param = {action: 'edit', title: title, summary: summary.replace(/replaceParam/g, mw.config.get("wgPageName").replace(/_/g, " ")).replace(/replaceUser/g, mw.config.get('wgRelevantUserName')), token: mw.user.tokens.get('editToken'), section: section || '0', appendtext: content, format: 'json', tags:'בקשות_ממפעילים'};
$.post(mw.util.wikiScript('api'), param, function(data) {
if (data && data.error)
mw.notify('שגיאה בשמירה: ' + data.erro[info]);
else if (data && data.edit && data.edit.result == 'Success' && typeof next == 'function')
next();
});
}
function addMenuItem(caption, tooltip, message, accessKey) {
var a = mw.util.addPortletLink('p-cactions','#',caption,'',tooltip.replace(/replaceParam/g, mw.config.get("wgPageName").replace(/_/g, " ")).replace(/replaceUser/g, mw.config.get('wgRelevantUserName')),(accessKey||''));
$(a).click(function() {
checkRequest().fail(function(err){
mw.notify(err);
}).done(function(){
if (message.match(/reason/)) {message += ' ~~' + '~~'}else{message += ' - reason ~~' + '~~'}
message = message.replace(/replaceParam/g, mw.config.get('wgPageName')).replace(/replaceUser/g, mw.config.get('wgRelevantUserName'));
switch (caption) {
case "מחיקה":
openDialog(function(value){save('ויקיפדיה:בקשות ממפעילים', '/* בקשות מחיקה */ [[replaceParam]]', '\n\n* ' + message.replace(/reason/g, value), 1, function() { mw.notify('בקשתך נשמרה בדף הבקשות מהמפעילים');})}, function(selectValue){save('ויקיפדיה:בקשות ממפעילים', '/* בקשות מחיקה */ [[replaceParam]]', '\n\n* ' + message.replace(/reason/g, selectValue), 1, function() { mw.notify('בקשתך נשמרה בדף הבקשות מהמפעילים');})}, function(value, selectValue){save('ויקיפדיה:בקשות ממפעילים', '/* בקשות מחיקה */ [[replaceParam]]', '\n\n* ' + message.replace(/reason/g, selectValue + ": " + value), 1, function() { mw.notify('בקשתך נשמרה בדף הבקשות מהמפעילים');})}, ["הבל", "מילוני/אולטרה קצרמר", "הפניה מיותרת", "הפניה שגויה", "לא אנציקלופדי", "פרסומת", "שגוי/טעות", "לבקשת הכותב", "הועבר למרחב טיוטה", "הועבר למרחב המשתמש", "הועבר למרחב הערכים"], "מחוק את הדף");
break;
case "חסימה":
openDialog(function(value){save('ויקיפדיה:בקשות ממפעילים', "/* בקשות חסימה / הסרת חסימה */ [[מש:replaceUser|replaceUser]] ([[שמש:replaceUser|ש]]|[[מיוחד:תרומות/replaceUser|ת]]|[[מיוחד:חסימה/replaceUser|ח]])", '\n\n* ' + message.replace(/reason/g, value), 2, function() { mw.notify('בקשתך נשמרה בדף הבקשות מהמפעילים');})}, function(selectValue){save('ויקיפדיה:בקשות ממפעילים', "/* בקשות חסימה / הסרת חסימה */ [[מש:replaceUser|replaceUser]] ([[שמש:replaceUser|ש]]|[[מיוחד:תרומות/replaceUser|ת]]|[[מיוחד:חסימה/replaceUser|ח]])", '\n\n* ' + message.replace(/reason/g, selectValue), 2, function() { mw.notify('בקשתך נשמרה בדף הבקשות מהמפעילים');})}, function(value, selectValue){save('ויקיפדיה:בקשות ממפעילים', "/* בקשות חסימה / הסרת חסימה */ [[מש:replaceUser|replaceUser]] ([[שמש:replaceUser|ש]]|[[מיוחד:תרומות/replaceUser|ת]]|[[מיוחד:חסימה/replaceUser|ח]])", '\n\n* ' + message.replace(/reason/g, selectValue + ": " + value), 2, function() { mw.notify('בקשתך נשמרה בדף הבקשות מהמפעילים');})}, ["השחתה לאחר אזהרה", "קללות או גסויות", "הפרעה", "כניסה למלחמת עריכה", "העלאת הבלים או ערכים חסרי תוכן", "הסרת תוכן מדפים", "שם משתמש לא מקובל", "לא בא/ה לתרום", "כתתובת אנונימית שמשמשת להשחתה"], "חסום את המשתמש");
break;
case "הגנה":
openDialog(function(value){save('ויקיפדיה:בקשות ממפעילים', '/* בקשות הגנה / הסרת הגנה */ [[replaceParam]]', '\n\n* ' + message.replace(/reason/g, value), 3, function() { mw.notify('בקשתך נשמרה בדף הבקשות מהמפעילים');})}, function(selectValue){save('ויקיפדיה:בקשות ממפעילים', '/* בקשות הגנה / הסרת הגנה */ [[replaceParam]]', '\n\n* ' + message.replace(/reason/g, selectValue), 3, function() { mw.notify('בקשתך נשמרה בדף הבקשות מהמפעילים');})}, function(value, selectValue){save('ויקיפדיה:בקשות ממפעילים', '/* בקשות הגנה / הסרת הגנה */ [[replaceParam]]', '\n\n* ' + message.replace(/reason/g, selectValue + ": " + value), 3, function() { mw.notify('בקשתך נשמרה בדף הבקשות מהמפעילים');})}, ["השחתות רבות", "אקטואלי", "טיפול מונע", "מלחמת עריכה"], "הגן על הדף");
break;
case "הסתרת גרסה":
openDialog(function(value){save('ויקיפדיה:בקשות ממפעילים', '/* בקשות מחיקת גרסאות מסוימות */ הסתרת גרסה', '\n\n* ' + message.replace(/reason/g, value), 4, function() { mw.notify('בקשתך נשמרה בדף הבקשות מהמפעילים');})}, function(selectValue){save('ויקיפדיה:בקשות ממפעילים', '/* בקשות מחיקת גרסאות מסוימות */ הסתרת גרסה', '\n\n* ' + message.replace(/reason/g, selectValue), 4, function() { mw.notify('בקשתך נשמרה בדף הבקשות מהמפעילים');})}, function(value, selectValue){save('ויקיפדיה:בקשות ממפעילים', '/* בקשות מחיקת גרסאות מסוימות */ הסתרת גרסה', '\n\n* ' + message.replace(/reason/g, selectValue + ": " + value), 4, function() { mw.notify('בקשתך נשמרה בדף הבקשות מהמפעילים');})}, ["תוכן פוגעני", "קללות/גסויות", "נאצות/השמצות"], "הסתיר את הגרסה");
break;
}
});
});
}
var ca = $.inArray(mw.config.get('wgNamespaceNumber'), [6, 14]) + 1 ? ':' : '';
var pageName = mw.config.get('wgPageName').replace( /_/g, " " );
if ($('#t-contributions').length) {
addMenuItem('חסימה', 'בקשה לחסום את replaceUser', "{{לחסום|replaceUser}}", "]");
}
var pageLink = $('.redirectMsg').length ? '{{ללא הפניה|replaceParam}}' : '[[' + ca + 'replaceParam]]';
addMenuItem('הגנה', 'בקשה להגן על הדף replaceParam', pageLink, '=');
var deleteTemplate = $('.redirectMsg').length ? '{{בקשת מחיקה|replaceParam|reason|הפניה=כן}}' : '{{בקשת מחיקה|replaceParam|reason}}';
if (!mw.util.getParamValue('redlink'))
addMenuItem('מחיקה', 'בקשה למחוק את הדף replaceParam', deleteTemplate,'d');
if (mw.util.getParamValue('oldid') && mw.util.getParamValue('diff'))
addMenuItem('הסתרת גרסה', 'בקשה להסתיר את הגרסה ' + mw.util.getParamValue('diff') , '{{הבדל|' + mw.config.get('wgPageName') + '|' + mw.util.getParamValue('diff') + '|' + mw.util.getParamValue('oldid') + '|טקסט=גרסה זו}} ב[['+ mw.config.get('wgPageName').replace( /_/g, " " ) +']]', '[');
$( document ).trigger( 'new-portlet-link' );
});