מעדיעוויקי:Gadget-DeleteRequest.js

פון המכלול
קפיצה לניווט קפיצה לחיפוש

אַכטונג: נאכן היטן, ברויכט איר אפשר נאך אויסקרויזן דעם בראוזער'ס זאַפאַס צו זען די ענדערונגען.

  • פייערפוקס/סאפארי: האלט אראפ שיפט בשעת'ן דרוקן Reload, אדער דרוקט Ctrl-F5 אדער Ctrl-R (אויף א מאקינטאש ⌘-R)
  • גוגל כראם: דרוקט Ctrl-Shift-R (אויף א מאקינטאש ⌘-Shift-R)
  • אינטערנעט עקספלארער: האלט אראפ Ctrl בשעת'ן קליקן Refresh, אדער דרוקט Ctrl-F5
  • אפערע: גייט צו מעניו → שטעלונגען ( אפערע → פרעפערנצן אויף א מעק) און דערנאך צו פריוואטקייט & און זיכערהייט → רוימען בראוזער דאטא → בילדער און טעקעס אין זאפאס
/* הסקריפט מוסיף לשוניות "מחיקה", "הגנה" ו"חסימה" על מנת שאפשר יהיה לבקש מחיקת דפים, הגנת דפים וחסימת באַניצערים באמצעות דף בקשות פון אדמיניסטראטארן. */
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(
                  'דער בלאט איז שוין דערמאנט אויפן<a href="/המכלול:בקשות_פון_אדמיניסטראטארן#בעטן_מעקן">בקשות פון אדמיניסטראטארן</a>. הבקשה לא בוצעה'
                );
                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 || ""
      );
	var alreadyClicked;
	$(a).click(function(e) {
		e.preventDefault();
		e.stopPropagation();
		if (alreadyClicked) return;
		alreadyClicked = true;
		checkRequestDuplication().fail(function(err){
			mw.notify($('<span>').html(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($('<span>').html('אייער בקשה איז געהיטן געווארן אויפן<a href="/המכלול:בקשות_פון_אדמיניסטראטארן#בעטן_מעקן">בקשות פון אדמיניסטראטארן בלאט</a>');
                      }
                    );
                  },
                  function (selectValue) {
                    checkAndSaveDelete(selectValue, message);
                  },
                  function (value, selectValue) {
                    save(
                      "המכלול:בקשות פון אדמיניסטראטארן",
                      "/* בעטן מעקן */ [[replaceParam]]",
                      "\n\n* " +
                        message.replace(/reason/g, selectValue + ": " + value),
                      1,
                      function () {
                        mw.notify($('<span>').html('אייער בקשה איז געהיטן געווארן אויפן<a href="/המכלול:בקשות_פון_אדמיניסטראטארן#בעטן_מעקן">בקשות פון אדמיניסטראטארן בלאט</a>');
                      }
                    );
                  },
                  [
                    "הבל",
                    "מילוני/אולטרה קצרמר",
                    "הפניה בדפי שיחה",
                    "הפניה בקטגוריה",
                    "הפניה מיותרת",
                    "הפניה שגויה",
                    "נמחק בוויקיפדיה העברית",
                    "לא אנציקלופדי",
                    "פרסומת",
                    "שגוי/טעות",
                    "לבקשת הכותב",
                    "הועבר למרחב טיוטה",
                    "הועבר למרחב הבאַניצער",
                    "הועבר למרחב הערכים",
                  ],
                  "מחוק את הדף"
                );
                break;
              case "בעטן חסימה":
                openDialog(
                  function (value) {
                    save(
                      "המכלול:בקשות פון אדמיניסטראטארן",
                      "/* בעטן חסימה / אראפנעמען חסימה */ [[באַניצער:replaceUser|replaceUser]] ([[באַניצער שמועס:replaceUser|ש]]|[[באזונדער:תרומות/replaceUser|ת]]|[[באזונדער:חסימה/replaceUser|ח]])",
                      "\n\n* " + message.replace(/reason/g, value),
                      2,
                      function () {
                        mw.notify($('<span>').html("אייער בקשה איז געהיטן געווארן אויפן<a href="/המכלול:בקשות_פון_אדמיניסטראטארן#בעטן_חסימה_/_אראפנעמען_חסימה">בקשות פון אדמיניסטראטארן בלאט</a>");
                      }
                    );
                  },
                  function (selectValue) {
                    save(
                      "המכלול:בקשות פון אדמיניסטראטארן",
                      "/* בעטן חסימה / אראפנעמען חסימה */ [[באַניצער:replaceUser|replaceUser]] ([[באַניצער שמועס:replaceUser|ש]]|[[באזונדער:תרומות/replaceUser|ת]]|[[באזונדער:חסימה/replaceUser|ח]])",
                      "\n\n* " + message.replace(/reason/g, selectValue),
                      2,
                      function () {
                        mw.notify($('<span>').html("אייער בקשה איז געהיטן געווארן אויפן<a href="/המכלול:בקשות_פון_אדמיניסטראטארן#בעטן_חסימה_/_אראפנעמען_חסימה">בקשות פון אדמיניסטראטארן בלאט</a>");
                      }
                    );
                  },
                  function (value, selectValue) {
                    save(
                      "המכלול:בקשות פון אדמיניסטראטארן",
                      "/* בקשות חסימה / הסרת חסימה */ [[באַניצער:replaceUser|replaceUser]] ([[באַניצער שמועס:replaceUser|ש]]|[[באזונדער:תרומות/replaceUser|ת]]|[[באזונדער:חסימה/replaceUser|ח]])",
                      "\n\n* " +
                        message.replace(/reason/g, selectValue + ": " + value),
                      2,
                      function () {
                        mw.notify($('<span>').html("אייער בקשה איז געהיטן געווארן אויפן<a href="/המכלול:בקשות_פון_אדמיניסטראטארן#בעטן_חסימה_/_אראפנעמען_חסימה">בקשות פון אדמיניסטראטארן בלאט</a>");
                      }
                    );
                  },
                  [
                    "השחתה לאחר אזהרה",
                    "קללות או גסויות",
                    "הפרעה",
                    "כניסה למלחמת עריכה",
                    "העלאת הבלים או ערכים חסרי תוכן",
                    "הסרת תוכן מדפים",
                    "משחית כבד",
                    "באַניצער נאמען לא מקובל",
                    "לייגט ספעם",
                    "נישט געקומען ביישטייערן",
                    "איינגעשריבענער וואנדאל",
                  ],
                  "חסום את הבאַניצער"
                );
                break;
              case "בקשת הגנה":
              case "שינוי הגנה":
                openDialog(
                  function (value) {
                    save(
                      "המכלול:בקשות פון אדמיניסטראטארן",
                      "/* בעטן באשיצונג / אראפנעמען באשיצונג */ [[replaceParam]]",
                      "\n\n* " + message.replace(/reason/g, value),
                      3,
                      function () {
                        mw.notify($('<span>').html("אייער בקשה איז געהיטן געווארן אויפן<a href="/המכלול:בקשות_פון_אדמיניסטראטארן#בעטן_באשיצונג_/_אראפנעמען_באשיצונג">בקשות פון אדמיניסטראטארן בלאט</a>");
                      }
                    );
                  },
                  function (selectValue) {
                    save(
                      "המכלול:בקשות פון אדמיניסטראטארן",
                      "/* בעטן באשיצונג / אראפנעמען באשיצונג */ [[replaceParam]]",
                      "\n\n* " + message.replace(/reason/g, selectValue),
                      3,
                      function () {
                        mw.notify($('<span>').html("אייער בקשה איז געהיטן געווארן אויפן<a href="/המכלול:בקשות_פון_אדמיניסטראטארן#בעטן_באשיצונג_/_אראפנעמען_באשיצונג">בקשות פון אדמיניסטראטארן בלאט</a>");
                      }
                    );
                  },
                  function (value, selectValue) {
                    save(
                      "המכלול:בקשות פון אדמיניסטראטארן",
                      "/* בעטן באשיצונג / אראפנעמען באשיצונג */ [[replaceParam]]",
                      "\n\n* " +
                        message.replace(/reason/g, selectValue + ": " + value),
                      3,
                      function () {
                        mw.notify($('<span>').html("אייער בקשה איז געהיטן געווארן אויפן<a href="/המכלול:בקשות_פון_אדמיניסטראטארן#בעטן_באשיצונג_/_אראפנעמען_באשיצונג">בקשות פון אדמיניסטראטארן בלאט</a>");
                      }
                    );
                  },
                  ["השחתות רבות", "אקטואלי", "טרול/חסום", "מלחמת עריכה"],
                  "הגן על הדף"
                );
                break;
              case "הסתרת גרסה":
                openDialog(
                  function (value) {
                    save(
                      "המכלול:בקשות פון אדמיניסטראטארן",
                      "/* בעטן אויסמעקן ספעציפישע ווערסיעס */ הסתרת גרסה",
                      "\n\n* " + message.replace(/reason/g, value),
                      4,
                      function () {
                        mw.notify($('<span>').html("אייער בקשה איז געהיטן געווארן אויפן<a href="/המכלול:בקשות_פון_אדמיניסטראטארן#בעטן_אויסמעקן_ספעציפישע_ווערסיעס">בקשות פון אדמיניסטראטארן בלאט</a>");
                      }
                    );
                  },
                  function (selectValue) {
                    save(
                      "המכלול:בקשות פון אדמיניסטראטארן",
                      "/* בעטן אויסמעקן ספעציפישע ווערסיעס */ הסתרת גרסה",
                      "\n\n* " + message.replace(/reason/g, selectValue),
                      4,
                      function () {
                        mw.notify($('<span>').html("אייער בקשה איז געהיטן געווארן אויפן<a href="/המכלול:בקשות_פון_אדמיניסטראטארן#בעטן_אויסמעקן_ספעציפישע_ווערסיעס">בקשות פון אדמיניסטראטארן בלאט</a>");
                      }
                    );
                  },
                  function (value, selectValue) {
                    save(
                      "המכלול:בקשות פון אדמיניסטראטארן",
                      "/* בעטן אויסמעקן ספעציפישע ווערסיעס */ הסתרת גרסה",
                      "\n\n* " +
                        message.replace(/reason/g, selectValue + ": " + value),
                      4,
                      function () {
                        mw.notify($('<span>').html("אייער בקשה איז געהיטן געווארן אויפן<a href="/המכלול:בקשות_פון_אדמיניסטראטארן#בעטן_אויסמעקן_ספעציפישע_ווערסיעס">בקשות פון אדמיניסטראטארן בלאט</a>");
                      }
                    );
                  },
                  [
                    "תוכן פוגעני",
                    "תמונה לא ראויה",
                    "תוכן בלתי ראוי",
                    "לשון הרע/כבוד תח",
                    "הוסרה תבנית סינון",
                  ],
                  "הסתיר את הגרסה"
                );
                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");
  });