מעדיעוויקי:Gadget-DeleteRequest.js
אַכטונג: נאכן היטן, ברויכט איר אפשר נאך אויסקרויזן דעם בראוזער'ס זאַפאַס צו זען די ענדערונגען.
- פייערפוקס/סאפארי: האלט אראפ שיפט בשעת'ן דרוקן Reload, אדער דרוקט Ctrl-F5 אדער Ctrl-R (אויף א מאקינטאש ⌘-R)
- גוגל כראם: דרוקט Ctrl-Shift-R (אויף א מאקינטאש ⌘-Shift-R)
- אינטערנעט עקספלארער: האלט אראפ Ctrl בשעת'ן קליקן Refresh, אדער דרוקט Ctrl-F5
- אפערע: גייט צו מעניו → שטעלונגען ( אפערע → פרעפערנצן אויף א מעק) און דערנאך צו פריוואטקייט & און זיכערהייט → רוימען בראוזער דאטא → בילדער און טעקעס אין זאפאס
/* הסקריפט מוסיף לשוניות "מחיקה", "הגנה" ו"חסימה" על מנת שאפשר יהיה לבקש מחיקת דפים, הגנת דפים וחסימת משתמשים באמצעות דף בקשות פון אדמיניסטראטארן. */
console.time('DeleteRequest');
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("לא מולאה סיבה");
} else if (value !== "" && selectValue == "אחר") {
code1(value);
} else if (
value === "" &&
selectValue != "אחר" &&
selectValue != "משחית כבד"
) {
code2(selectValue);
} else if (
value !== "" &&
selectValue !== "אחר" &&
selectValue != "משחית כבד"
) {
code3(value, selectValue);
} else if (selectValue == "משחית כבד") {
$.post(
mw.util.wikiScript("api"),
{
action: "emailuser",
format: "json",
target: "משתמש:לחסום",
subject: mw.config.get("wgRelevantUserName"),
text: "משחית כבד",
ccme: 1,
token: mw.user.tokens.get("csrfToken"),
utf8: 1,
},
function (data) {
if (data && data.emailuser && data.emailuser.result) {
mw.notify("הודעת אימייל נשלחה בהצלחה");
}
}
);
}
dialog.dialog("close");
}
});
dialog.dialog("option", "buttons", {
ביצוע: function () {
var value = input["0"].value,
selectValue = select["0"].value;
if (value === "" && selectValue == "אחר") {
alert("לא מולאה סיבה");
} else if (value !== "" && selectValue == "אחר") {
code1(value);
} else if (
value === "" &&
selectValue != "אחר" &&
selectValue != "משחית כבד"
) {
code2(selectValue);
} else if (
value !== "" &&
selectValue !== "אחר" &&
selectValue != "משחית כבד"
) {
code3(value, selectValue);
} else if (selectValue === "משחית כבד") {
$.post(
mw.util.wikiScript("api"),
{
action: "emailuser",
format: "json",
target: "משתמש:לחסום",
subject: mw.config.get("wgRelevantUserName"),
text: "משחית כבד",
ccme: 1,
token: mw.user.tokens.get("csrfToken"),
utf8: 1,
},
function (data) {
if (data && data.emailuser && data.emailuser.result) {
mw.notify("הודעת אימייל נשלחה בהצלחה");
}
}
);
}
dialog.dialog("close");
},
סגירה: function () {
dialog.dialog("close");
},
});
}
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("csrfToken"),
section: section || "0",
appendtext: content,
format: "json",
};
$.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 saveDelete(selectValue, message) {
save(
"המכלול:בקשות פון אדמיניסטראטארן",
"/* בקשות מחיקה */ [[replaceParam]]",
"\n\n* " + message.replace(/reason/g, selectValue),
1,
function () {
mw.notify("בקשתך נשמרה בדף הבקשות מהמפעילים");
}
);
}
function checkAndSaveDelete(selectValue, message) {
new mw.Api()
.get({
action: "query",
prop: "linkshere",
titles: 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.linkshere && d.linkshere.length > 0) {
mw.loader.using("oojs-ui", function () {
var linkUrl = new mw.Title(
"מיוחד:דפים_המקושרים_לכאן/" + mw.config.get("wgPageName")
).getUrl();
OO.ui
.confirm(
$("<div>").html(
"יש " +
d.linkshere.length +
' +<a href="' +
linkUrl +
'">קישורים לדף</a>, האם הם נבדקו לפני בקשת המחיקה?'
)
)
.done(function (confirmed) {
if (confirmed) {
saveDelete(selectValue, message);
} else {
mw.notify("נא לבדוק את הקישורים לפני הבקשה.");
}
});
});
} else {
saveDelete(selectValue, message);
}
} else {
saveDelete(selectValue, message);
}
});
}
function checkRequestDuplication() {
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 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 () {
checkRequestDuplication()
.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(/_/g, " ")
)
.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) {
checkAndSaveDelete(selectValue, message);
},
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("בקשתך נשמרה בדף הבקשות מהמפעילים");
}
);
},
[
"השחתה לאחר אזהרה",
"קללות או גסויות",
"הפרעה",
"כניסה למלחמת עריכה",
"העלאת הבלים או ערכים חסרי תוכן",
"הסרת תוכן מדפים",
"משחית כבד",
"שם משתמש לא מקובל",
"לא בא/ה לתרום",
"Upload spam",
],
"חסום את המשתמש"
);
break;
case "בקשת הגנה":
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]]";
var protectTemplate = $(".redirectMsg").length
? "{{בקשת הגנה|replaceParam|reason|הפניה=כן}}"
: "{{בקשת הגנה|replaceParam|reason}}";
if (
mw.config.get("wgRestrictionEdit") &&
mw.config.get("wgRestrictionEdit").length === 0
)
addMenuItem(
"בקשת הגנה",
"בקשה להגן על הדף replaceParam",
protectTemplate,
"="
);
else
addMenuItem(
"שינוי הגנה",
"בקשה לשנות את ההגנה על הדף replaceParam",
protectTemplate,
"="
);
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") +
"|טקסט=גרסה זו}} ב[[" +
ca +
mw.config.get("wgPageName").replace(/_/g, " ") +
"]]",
"["
);
$(document).trigger("new-portlet-link");
});
console.timeEnd('DeleteRequest');