מדיה ויקי:Gadget-DeleteRequest.js
הערה: לאחר הפרסום, ייתכן שיהיה צורך לנקות את זיכרון המטמון (cache) של הדפדפן כדי להבחין בשינויים.
- פיירפוקס / ספארי: להחזיק את המקש Shift בעת לחיצה על טעינה מחדש (Reload), או ללחוץ על צירוף המקשים Ctrl-F5 או Ctrl-R (במחשב מק: ⌘-R).
- גוגל כרום: ללחוץ על צירוף המקשים Ctrl-Shift-R (במחשב מק: ⌘-Shift-R).
- אינטרנט אקספלורר / אדג': להחזיק את המקש Ctrl בעת לחיצה על רענן (Refresh), או ללחוץ על צירוף המקשים Ctrl-F5.
- אופרה: ללחוץ על Ctrl-F5.
/* הסקריפט מוסיף לשוניות "מחיקה", "הגנה" ו"חסימה" על מנת שאפשר יהיה לבקש מחיקת דפים, הגנת דפים וחסימת משתמשים באמצעות דף בקשות ממפעילים. */
if(mw.config.get('wgNamespaceNumber') + 1) // not a special page
$(function(){
function DialogRapi(Res) {
var nameOfpage = mw.config.get( 'wgPageName' ).replace(new RegExp('_', 'g'), ' ');
new mw.Api().post({
action : 'edit',
prependtext : '* {{בקשת מחיקה|' + nameOfpage + '|' + Res + '}} ~~' + '~~\n' ,
section: 2,
tags: 'בקשות_ממפעילים',
summary : 'בקשה למחיקה:' + ' [[' + nameOfpage + ']]',
title : 'ויקיפדיה:בקשות_ממפעילים',
token : mw.user.tokens.get('editToken')
}).done(function(d){ if (d) {mw.notify('הבקשה נשלחה בהצלחה!');}});
}
function DoneDelReq(){
if ($("#SelectDelReq")["0"].value == "אחר" && $("#ElseResDelReq")["0"].value === ""){
alert("לא מולאה סיבה");
}else{
if ($("#SelectDelReq")["0"].value == "אחר") {
DialogRapi($('.redirectMsg').length ? $("#ElseResDelReq")["0"].value + "|הפניה=כן" : $("#ElseResDelReq")["0"].value);
}else{
if ($("#SelectDelReq")["0"].value !== "אחר" && $("#ElseResDelReq")["0"].value === ""){
DialogRapi($('.redirectMsg').length ? $("#SelectDelReq")["0"].value + "|הפניה=כן" : $("#SelectDelReq")["0"].value);
}else{
DialogRapi($('.redirectMsg').length ? $("#SelectDelReq")["0"].value + ": " + $("#ElseResDelReq")["0"].value + "|הפניה=כן" : $("#SelectDelReq")["0"].value + ": " + $("#ElseResDelReq")["0"].value);
}
}
}
}
function HevelPD() {
checkRequest().fail(function(err){
mw.notify(err);
}).done(function(){
var ElseResDelReq = $("<select id='SelectDelReq'>")
.append($("<option>").append("אחר"))
.append($("<option>").append("הבל"))
.append($("<option>").append("מילוני/אולטרה קצרמר"))
.append($("<option>").append("הפרת זכויות יוצרים"))
.append($("<option>").append("הפניה מיותרת"))
.append($("<option>").append("לא אנציקלופדי"))
.append($("<option>").append("פרסומת"))
.append($("<option>").append("לבקשת הכותב"))
.append($("<option>").append("שגוי/טעות"));
var DialogDelReq = $('<div>').dialog()
.append(ElseResDelReq)
.dialog('option', 'buttons', {
'בוצע':
DoneDelReq,
'סגור':
function() {DialogDelReq.dialog('close');}
})
.dialog({title: "בקשה למחוק את הדף", width: "400", height: "170", position: [$('body').width() * 0.05, $('body').height() * 0.05]});
$("#SelectDelReq").after($("<input type='text' size='40' id='ElseResDelReq'>"));
$("#SelectDelReq").before("סיבה למחיקה: ");
$("#SelectDelReq").after($("<br />"));
$("#ElseResDelReq").before("סיבה אחרת/נוספת: ");
});
}
//validate the page is not already linked from sysop request page
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, 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.error['info']);
else if (data && data.edit && data.edit.result == 'Success' && typeof next == 'function')
next();
});
}
function addMenuItem(caption, tooltip, section, message, summary, accessKey, replaceParam) {
var a = mw.util.addPortletLink('p-cactions','#',caption,'',tooltip,(accessKey||'')),
hasReason = /reason/.test(message);
$(a).click(function() {
checkRequest().fail(function(err){
mw.notify(err);
}).done(function(){
var reason = prompt("הסיבה לבקשת ה" + caption);
if ($.trim(reason) == '')
return;
if (replaceParam) {
var r = /replaceParam|reason/g;
tooltip = tooltip.replace(r, function(m) { if(m=='reason') { return reason; } return replaceParam; });
message = message.replace(r, function(m) { if(m=='reason') { return reason; } return replaceParam; });
summary = summary.replace(r, function(m) { if(m=='reason') { return reason; } return replaceParam; });
}
message += ( hasReason? '' : ' - ' + reason ) + ' ~~' + '~~';
save('ויקיפדיה:בקשות ממפעילים', summary, '\n\n* ' + message, section, function() { mw.notify('בקשתך נשמרה בדף הבקשות מהמפעילים');});
});
});
}
var ca = $.inArray(mw.config.get('wgNamespaceNumber'), [6, 14]) + 1 ? ':' : '';
var pageName = mw.config.get('wgPageName').replace( /_/g, " " );
if ($('#t-contributions').length) {
var badUser = mw.config.get('wgTitle').split('/')[0];
addMenuItem('חסימה', 'בקשה לחסום את replaceParam', 2, "{{לחסום|replaceParam}}", '/* בקשות חסימה / הסרת חסימה */ [[משתמש:replaceParam|replaceParam]] ([[שיחת משתמש:replaceParam|ש]]|[[מיוחד:תרומות/replaceParam|ת]]|[[מיוחד:חסימה/replaceParam|ח]])',']', badUser);
}
var pageLink = $('.redirectMsg').length ? '{{ללא הפניה|replaceParam}}' : '[[' + ca + 'replaceParam]]';
addMenuItem('הגנה', 'בקשה להגן על הדף replaceParam', 3, pageLink, '/* בקשות הגנה / הסרת הגנה */ [[replaceParam]]','=', pageName);
var AMI = mw.util.addPortletLink('p-cactions','#', "מחיקה");
$(AMI).click(function(){HevelPD()});
if (mw.util.getParamValue('oldid') && mw.util.getParamValue('diff'))
addMenuItem('הסתרת גרסה', 'בקשה להסתיר את הגרסה ' + mw.util.getParamValue('diff') , 4, '{{הבדל|' + mw.config.get('wgPageName') + '|' + mw.util.getParamValue('diff') + '|' + mw.util.getParamValue('oldid') + '|טקסט=גרסה זו}} ב[['+ mw.config.get('wgPageName').replace( /_/g, " " ) +']]', '/* בקשות מחיקת גרסאות מסוימות */ הסתרת גרסה','[');
$( document ).trigger( 'new-portlet-link' );
});