משתמש:מקף/CheckRequest.js
מראה
הערה: לאחר הפרסום, ייתכן שיהיה צורך לנקות את זיכרון המטמון (cache) של הדפדפן כדי להבחין בשינויים.
- פיירפוקס / ספארי: להחזיק את המקש Shift בעת לחיצה על טעינה מחדש (Reload) או ללחוץ על צירוף המקשים Ctrl-F5 או Ctrl-R (במחשב מק: ⌘-R).
- גוגל כרום: ללחוץ על צירוף המקשים Ctrl-Shift-R (במחשב מק: ⌘-Shift-R).
- אדג': להחזיק את המקש Ctrl בעת לחיצה על רענן (Refresh) או ללחוץ על צירוף המקשים Ctrl-F5.
/*
מוסיף לשוניות בקשת בדיקה נוספת על מנת שאפשר יהיה לבקש בדיקת שינוי באמצעות דף וק:בד.
מבוסס על [[מדיה ויקי:Gadget-DeleteRequest.js]]
*/
if (mw.config.get("wgNamespaceNumber") + 1)
// not a special page
$(function () {
function openDialog(code1, code, 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 (selectValue === "אחר") {
if (value === "") alert("יש צורך בפירוט")
else {
code1(value, selectValue);
dialog.dialog("close");
}
}
else {
code(value, selectValue);
dialog.dialog("close");
}
}
})
dialog.dialog("option", "buttons", {
ביצוע: function () {
var value = input["0"].value,
selectValue = select["0"].value
if (selectValue === "אחר") {
if (value === "") alert("יש צורך בפירוט")
else {
code1(value, selectValue);
dialog.dialog("close");
}
}
else {
code(value, selectValue);
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",
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 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 checkSection(selectValue) {
if (
selectValue === "בדיקת נכונות" ||
selectValue === "בדיקת המקור" ||
selectValue === "בקשה למקורות מידע"
) {
return 2
} else if (
selectValue === "בדיקת אנציקלופדיות" ||
selectValue === "בדיקת מהותיות או רלוונטיות המידע"
) {
return 3
} else if (
selectValue === "בדיקת נייטרליות" ||
selectValue === "בדיקת צורך בהבהרה"
) {
return 4
} else {
return 1
}
}
function checkSectionName(selectValue) {
if (
selectValue === "בדיקת נכונות" ||
selectValue === "בדיקת המקור" ||
selectValue === "בקשה למקורות מידע"
) {
return "נכונות ואמינות"
} else if (
selectValue === "בדיקת אנציקלופדיות" ||
selectValue === "בדיקת מהותיות או רלוונטיות המידע"
) {
return "אנציקלופדיות, מהותיות ורלוונטיות"
} else if (
selectValue === "בדיקת נייטרליות" ||
selectValue === "בדיקת צורך בהבהרה"
) {
return "ניטרליות וצורך בהבהרה"
} else {
return "כללי"
}
}
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 || ""
)
var alreadySign
$(a).click(function () {
checkRequestDuplication()
.fail(function (err) {
mw.notify(err)
})
.done(function () {
if (!alreadySign) {
alreadySign = true
message += " – reason ~~" + "~~"
message = message
.replace(
/replaceParam/g,
mw.config.get("wgPageName").replace(/_/g, " ")
)
.replace(
/replaceUser/g,
mw.config.get("wgRelevantUserName")
)
}
switch (caption) {
case "לבדיקה נוספת":
openDialog(
//code1
function (value, selectValue) {
save(
"ויקיפדיה:לבדיקה נוספת",
"/*" +
checkSectionName(selectValue) +
"*/\t[[replaceParam]]",
"\n\n* " +
message.replace(
/reason/g,
value
),
checkSection(selectValue),
function () {
mw.notify(
$("<a>", {
href: mw.util.getUrl('ויקיפדיה:לבדיקה_נוספת'),
}).text(
"בקשתך נשמרה בדף הבקשות לבדיקה נוספת"
)
)
}
)
},
//code
function (value, selectValue) {
save(
"ויקיפדיה:לבדיקה נוספת",
"/*" +
checkSectionName(selectValue) +
"*/\t[[replaceParam]]",
"\n\n* " +
message.replace(
/reason/g,
selectValue + ": " + value
),
checkSection(selectValue),
function () {
mw.notify(
$("<a>", {
href: mw.util.getUrl('ויקיפדיה:לבדיקה_נוספת'),
}).text(
"בקשתך נשמרה בדף הבקשות לבדיקה נוספת"
)
)
}
)
},
[
"בדיקת המקור",
"בקשה למקורות מידע בנושא",
"בדיקת אנציקלופדיות",
"בדיקת מהותיות או רלוונטיות המידע",
"בדיקת נייטרליות",
"בדיקת צורך בהבהרה",
"אחר",
],
"בדיקה נוספת"
)
break;
}
})
})
}
var ca =
$.inArray(mw.config.get("wgNamespaceNumber"), [6, 14]) + 1 ? ":" : ""
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, " ") +
"]]",
"c" //shift+alt+c `C`heck request
)
$(document).trigger("new-portlet-link")
})