אונטערשייד צווישן ווערסיעס פון "מעדיעוויקי:Gadget-DeleteRequest.js"

פון המכלול
קפיצה לניווט קפיצה לחיפוש
(התחלת הצופאסונג)
אין תקציר עריכה
 
(7 מיטלסטע ווערסיעס פון 2 באַניצער נישט געוויזן.)
שורה 1: שורה 1:
/* הסקריפט מוסיף לשוניות "מחיקה", "הגנה" ו"חסימה" על מנת שאפשר יהיה לבקש מחיקת דפים, הגנת דפים וחסימת משתמשים באמצעות דף בקשות פון אדמיניסטראטארן. */
/* הסקריפט מוסיף לשוניות "מחיקה", "הגנה" ו"חסימה" על מנת שאפשר יהיה לבקש מחיקת דפים, הגנת דפים וחסימת באַניצערים באמצעות דף בקשות פון אדמיניסטראטארן. */
if (mw.config.get("wgNamespaceNumber") + 1)
if (mw.config.get("wgNamespaceNumber") + 1)
   // not a special page
   // not a special page
שורה 41: שורה 41:
                 action: "emailuser",
                 action: "emailuser",
                 format: "json",
                 format: "json",
                 target: "משתמש:לחסום",
                 target: "באַניצער:לחסום",
                 subject: mw.config.get("wgRelevantUserName"),
                 subject: mw.config.get("wgRelevantUserName"),
                 text: "משחית כבד",
                 text: "משחית כבד",
שורה 84: שורה 84:
                 action: "emailuser",
                 action: "emailuser",
                 format: "json",
                 format: "json",
                 target: "משתמש:לחסום",
                 target: "באַניצער:לחסום",
                 subject: mw.config.get("wgRelevantUserName"),
                 subject: mw.config.get("wgRelevantUserName"),
                 text: "משחית כבד",
                 text: "משחית כבד",
שורה 161: שורה 161:
               mw.loader.using("oojs-ui", function () {
               mw.loader.using("oojs-ui", function () {
                 var linkUrl = new mw.Title(
                 var linkUrl = new mw.Title(
                   "מיוחד:דפים_המקושרים_לכאן/" + mw.config.get("wgPageName")
                   "באזונדער:דפים_המקושרים_לכאן/" + mw.config.get("wgPageName")
                 ).getUrl();
                 ).getUrl();
                 OO.ui
                 OO.ui
שורה 211: שורה 211:
               ) {
               ) {
                 requestChecker.reject(
                 requestChecker.reject(
                   "הדף כבר מוזכר בבקשות פון אדמיניסטראטארן. הבקשה לא בוצעה"
                   'דער בלאט איז שוין דערמאנט אויפן <a href="/המכלול:בקשות_פון_אדמיניסטראטארן#בעטן_מעקן">בקשות פון אדמיניסטראטארן</a>. די ביטע איז נישט אויסגעפירט'
                 );
                 );
                 return;
                 return;
שורה 236: שורה 236:
         accessKey || ""
         accessKey || ""
       );
       );
      $(a).click(function () {
var alreadyClicked;
        checkRequestDuplication()
$(a).click(function(e) {
          .fail(function (err) {
e.preventDefault();
e.stopPropagation();
if (alreadyClicked) return;
alreadyClicked = true;
checkRequestDuplication().fail(function(err){
mw.notify($('<span>').html(err));
             mw.notify(err);
             mw.notify(err);
           })
           })
שורה 259: שורה 264:
                     save(
                     save(
                       "המכלול:בקשות פון אדמיניסטראטארן",
                       "המכלול:בקשות פון אדמיניסטראטארן",
                       "/* בקשות מחיקה */ [[replaceParam]]",
                       "/* בעטן מעקן */ [[replaceParam]]",
                       "\n\n* " + message.replace(/reason/g, value),
                       "\n\n* " + message.replace(/reason/g, value),
                       1,
                       1,
                       function () {
                       function () {
                         mw.notify("בקשתך נשמרה בדף הבקשות מהמפעילים");
                         mw.notify($('<span>').html('אייער בקשה איז געהיטן געווארן אויפן <a href="/המכלול:בקשות_פון_אדמיניסטראטארן#בעטן_מעקן">בקשות פון אדמיניסטראטארן בלאט</a>'));
                       }
                       }
                     );
                     );
שורה 273: שורה 278:
                     save(
                     save(
                       "המכלול:בקשות פון אדמיניסטראטארן",
                       "המכלול:בקשות פון אדמיניסטראטארן",
                       "/* בקשות מחיקה */ [[replaceParam]]",
                       "/* בעטן מעקן */ [[replaceParam]]",
                       "\n\n* " +
                       "\n\n* " +
                         message.replace(/reason/g, selectValue + ": " + value),
                         message.replace(/reason/g, selectValue + ": " + value),
                       1,
                       1,
                       function () {
                       function () {
                         mw.notify("בקשתך נשמרה בדף הבקשות מהמפעילים");
                         mw.notify($('<span>').html('אייער בקשה איז געהיטן געווארן אויפן <a href="/המכלול:בקשות_פון_אדמיניסטראטארן#בעטן_מעקן">בקשות פון אדמיניסטראטארן בלאט</a>'));
                       }
                       }
                     );
                     );
שורה 295: שורה 300:
                     "לבקשת הכותב",
                     "לבקשת הכותב",
                     "הועבר למרחב טיוטה",
                     "הועבר למרחב טיוטה",
                     "הועבר למרחב המשתמש",
                     "הועבר למרחב הבאַניצער",
                     "הועבר למרחב הערכים",
                     "הועבר למרחב הערכים",
                   ],
                   ],
שורה 301: שורה 306:
                 );
                 );
                 break;
                 break;
               case "בקשת חסימה":
               case "בעטן חסימה":
                 openDialog(
                 openDialog(
                   function (value) {
                   function (value) {
                     save(
                     save(
                       "המכלול:בקשות פון אדמיניסטראטארן",
                       "המכלול:בקשות פון אדמיניסטראטארן",
                       "/* בקשות חסימה / הסרת חסימה */ [[משתמש:replaceUser|replaceUser]] ([[שיחת משתמש:replaceUser|ש]]|[[מיוחד:תרומות/replaceUser|ת]]|[[מיוחד:חסימה/replaceUser|ח]])",
                       "/* בעטן חסימה / אראפנעמען חסימה */ [[באַניצער:replaceUser|replaceUser]] ([[באַניצער שמועס:replaceUser|ש]]|[[באזונדער:תרומות/replaceUser|ת]]|[[באזונדער:חסימה/replaceUser|ח]])",
                       "\n\n* " + message.replace(/reason/g, value),
                       "\n\n* " + message.replace(/reason/g, value),
                       2,
                       2,
                       function () {
                       function () {
                         mw.notify("בקשתך נשמרה בדף הבקשות מהמפעילים");
                         mw.notify($('<span>').html('אייער בקשה איז געהיטן געווארן אויפן <a href="/המכלול:בקשות_פון_אדמיניסטראטארן#בעטן_חסימה_/_אראפנעמען_חסימה">בקשות פון אדמיניסטראטארן בלאט</a>'));
                       }
                       }
                     );
                     );
שורה 317: שורה 322:
                     save(
                     save(
                       "המכלול:בקשות פון אדמיניסטראטארן",
                       "המכלול:בקשות פון אדמיניסטראטארן",
                       "/* בקשות חסימה / הסרת חסימה */ [[משתמש:replaceUser|replaceUser]] ([[שיחת משתמש:replaceUser|ש]]|[[מיוחד:תרומות/replaceUser|ת]]|[[מיוחד:חסימה/replaceUser|ח]])",
                       "/* בעטן חסימה / אראפנעמען חסימה */ [[באַניצער:replaceUser|replaceUser]] ([[באַניצער שמועס:replaceUser|ש]]|[[באזונדער:תרומות/replaceUser|ת]]|[[באזונדער:חסימה/replaceUser|ח]])",
                       "\n\n* " + message.replace(/reason/g, selectValue),
                       "\n\n* " + message.replace(/reason/g, selectValue),
                       2,
                       2,
                       function () {
                       function () {
                         mw.notify("בקשתך נשמרה בדף הבקשות מהמפעילים");
                         mw.notify($('<span>').html('אייער בקשה איז געהיטן געווארן אויפן <a href="/המכלול:בקשות_פון_אדמיניסטראטארן#בעטן_חסימה_/_אראפנעמען_חסימה">בקשות פון אדמיניסטראטארן בלאט</a>'));
                       }
                       }
                     );
                     );
שורה 328: שורה 333:
                     save(
                     save(
                       "המכלול:בקשות פון אדמיניסטראטארן",
                       "המכלול:בקשות פון אדמיניסטראטארן",
                       "/* בקשות חסימה / הסרת חסימה */ [[משתמש:replaceUser|replaceUser]] ([[שיחת משתמש:replaceUser|ש]]|[[מיוחד:תרומות/replaceUser|ת]]|[[מיוחד:חסימה/replaceUser|ח]])",
                       "/* בקשות חסימה / הסרת חסימה */ [[באַניצער:replaceUser|replaceUser]] ([[באַניצער שמועס:replaceUser|ש]]|[[באזונדער:תרומות/replaceUser|ת]]|[[באזונדער:חסימה/replaceUser|ח]])",
                       "\n\n* " +
                       "\n\n* " +
                         message.replace(/reason/g, selectValue + ": " + value),
                         message.replace(/reason/g, selectValue + ": " + value),
                       2,
                       2,
                       function () {
                       function () {
                         mw.notify("בקשתך נשמרה בדף הבקשות מהמפעילים");
                         mw.notify($('<span>').html('אייער בקשה איז געהיטן געווארן אויפן <a href="/המכלול:בקשות_פון_אדמיניסטראטארן#בעטן_חסימה_/_אראפנעמען_חסימה">בקשות פון אדמיניסטראטארן בלאט</a>'));
                       }
                       }
                     );
                     );
שורה 345: שורה 350:
                     "הסרת תוכן מדפים",
                     "הסרת תוכן מדפים",
                     "משחית כבד",
                     "משחית כבד",
                     "שם משתמש לא מקובל",
                     "באַניצער נאמען לא מקובל",
                     "לא בא/ה לתרום",
                     "לייגט ספעם",
                     "Upload spam",
                    "נישט געקומען ביישטייערן",
                     "איינגעשריבענער וואנדאל",
                   ],
                   ],
                   "חסום את המשתמש"
                   "חסום את הבאַניצער"
                 );
                 );
                 break;
                 break;
שורה 358: שורה 364:
                     save(
                     save(
                       "המכלול:בקשות פון אדמיניסטראטארן",
                       "המכלול:בקשות פון אדמיניסטראטארן",
                       "/* בקשות הגנה / הסרת הגנה */ [[replaceParam]]",
                       "/* בעטן באשיצונג / אראפנעמען באשיצונג */ [[replaceParam]]",
                       "\n\n* " + message.replace(/reason/g, value),
                       "\n\n* " + message.replace(/reason/g, value),
                       3,
                       3,
                       function () {
                       function () {
                         mw.notify("בקשתך נשמרה בדף הבקשות מהמפעילים");
                         mw.notify($('<span>').html('אייער בקשה איז געהיטן געווארן אויפן <a href="/המכלול:בקשות_פון_אדמיניסטראטארן#בעטן_באשיצונג_/_אראפנעמען_באשיצונג">בקשות פון אדמיניסטראטארן בלאט</a>'));
                       }
                       }
                     );
                     );
שורה 369: שורה 375:
                     save(
                     save(
                       "המכלול:בקשות פון אדמיניסטראטארן",
                       "המכלול:בקשות פון אדמיניסטראטארן",
                       "/* בקשות הגנה / הסרת הגנה */ [[replaceParam]]",
                       "/* בעטן באשיצונג / אראפנעמען באשיצונג */ [[replaceParam]]",
                       "\n\n* " + message.replace(/reason/g, selectValue),
                       "\n\n* " + message.replace(/reason/g, selectValue),
                       3,
                       3,
                       function () {
                       function () {
                         mw.notify("בקשתך נשמרה בדף הבקשות מהמפעילים");
                         mw.notify($('<span>').html('אייער בקשה איז געהיטן געווארן אויפן <a href="/המכלול:בקשות_פון_אדמיניסטראטארן#בעטן_באשיצונג_/_אראפנעמען_באשיצונג">בקשות פון אדמיניסטראטארן בלאט</a>'));
                       }
                       }
                     );
                     );
שורה 380: שורה 386:
                     save(
                     save(
                       "המכלול:בקשות פון אדמיניסטראטארן",
                       "המכלול:בקשות פון אדמיניסטראטארן",
                       "/* בקשות הגנה / הסרת הגנה */ [[replaceParam]]",
                       "/* בעטן באשיצונג / אראפנעמען באשיצונג */ [[replaceParam]]",
                       "\n\n* " +
                       "\n\n* " +
                         message.replace(/reason/g, selectValue + ": " + value),
                         message.replace(/reason/g, selectValue + ": " + value),
                       3,
                       3,
                       function () {
                       function () {
                         mw.notify("בקשתך נשמרה בדף הבקשות מהמפעילים");
                         mw.notify($('<span>').html('אייער בקשה איז געהיטן געווארן אויפן <a href="/המכלול:בקשות_פון_אדמיניסטראטארן#בעטן_באשיצונג_/_אראפנעמען_באשיצונג">בקשות פון אדמיניסטראטארן בלאט</a>'));
                       }
                       }
                     );
                     );
שורה 398: שורה 404:
                     save(
                     save(
                       "המכלול:בקשות פון אדמיניסטראטארן",
                       "המכלול:בקשות פון אדמיניסטראטארן",
                       "/* בקשות מחיקת גרסאות מסוימות */ הסתרת גרסה",
                       "/* בעטן אויסמעקן ספעציפישע ווערסיעס */ הסתרת גרסה",
                       "\n\n* " + message.replace(/reason/g, value),
                       "\n\n* " + message.replace(/reason/g, value),
                       4,
                       4,
                       function () {
                       function () {
                         mw.notify("בקשתך נשמרה בדף הבקשות מהמפעילים");
                         mw.notify($('<span>').html('אייער בקשה איז געהיטן געווארן אויפן <a href="/המכלול:בקשות_פון_אדמיניסטראטארן#בעטן_אויסמעקן_ספעציפישע_ווערסיעס">בקשות פון אדמיניסטראטארן בלאט</a>'));
                       }
                       }
                     );
                     );
שורה 409: שורה 415:
                     save(
                     save(
                       "המכלול:בקשות פון אדמיניסטראטארן",
                       "המכלול:בקשות פון אדמיניסטראטארן",
                       "/* בקשות מחיקת גרסאות מסוימות */ הסתרת גרסה",
                       "/* בעטן אויסמעקן ספעציפישע ווערסיעס */ הסתרת גרסה",
                       "\n\n* " + message.replace(/reason/g, selectValue),
                       "\n\n* " + message.replace(/reason/g, selectValue),
                       4,
                       4,
                       function () {
                       function () {
                         mw.notify("בקשתך נשמרה בדף הבקשות מהמפעילים");
                         mw.notify($('<span>').html('אייער בקשה איז געהיטן געווארן אויפן <a href="/המכלול:בקשות_פון_אדמיניסטראטארן#בעטן_אויסמעקן_ספעציפישע_ווערסיעס">בקשות פון אדמיניסטראטארן בלאט</a>'));
                       }
                       }
                     );
                     );
שורה 420: שורה 426:
                     save(
                     save(
                       "המכלול:בקשות פון אדמיניסטראטארן",
                       "המכלול:בקשות פון אדמיניסטראטארן",
                       "/* בקשות מחיקת גרסאות מסוימות */ הסתרת גרסה",
                       "/* בעטן אויסמעקן ספעציפישע ווערסיעס */ הסתרת גרסה",
                       "\n\n* " +
                       "\n\n* " +
                         message.replace(/reason/g, selectValue + ": " + value),
                         message.replace(/reason/g, selectValue + ": " + value),
                       4,
                       4,
                       function () {
                       function () {
                         mw.notify("בקשתך נשמרה בדף הבקשות מהמפעילים");
                         mw.notify($('<span>').html('אייער בקשה איז געהיטן געווארן אויפן <a href="/המכלול:בקשות_פון_אדמיניסטראטארן#בעטן_אויסמעקן_ספעציפישע_ווערסיעס">בקשות פון אדמיניסטראטארן בלאט</a>'));
                       }
                       }
                     );
                     );
שורה 446: שורה 452:
       $.inArray(mw.config.get("wgNamespaceNumber"), [6, 14]) + 1 ? ":" : "";
       $.inArray(mw.config.get("wgNamespaceNumber"), [6, 14]) + 1 ? ":" : "";
     var pageName = mw.config.get("wgPageName").replace(/_/g, " ");
     var pageName = mw.config.get("wgPageName").replace(/_/g, " ");
    var isRedirect = $('.redirectMsg').length || $("#redirectsub").length;
     if ($("#t-contributions").length) {
     if ($("#t-contributions").length) {
       addMenuItem(
       addMenuItem(
שורה 454: שורה 461:
       );
       );
     }
     }
     var pageLink = $(".redirectMsg").length
     var pageLink = isRedirect
       ? "{{ללא הפניה|replaceParam}}"
       ? "{{ללא הפניה|replaceParam}}"
       : "[[" + ca + "replaceParam]]";
       : "[[" + ca + "replaceParam]]";
     var protectTemplate = $(".redirectMsg").length
     var protectTemplate = isRedirect
       ? "{{בקשת הגנה|replaceParam|reason|הפניה=כן}}"
       ? "{{בקשת הגנה|replaceParam|reason|הפניה=כן}}"
       : "{{בקשת הגנה|replaceParam|reason}}";
       : "{{בקשת הגנה|replaceParam|reason}}";
שורה 478: שורה 485:
       );
       );


     var deleteTemplate = $(".redirectMsg").length
     var deleteTemplate = isRedirect
       ? "{{בקשת מחיקה|replaceParam|reason|הפניה=כן}}"
       ? "{{בקשת מחיקה|replaceParam|reason|הפניה=כן}}"
       : "{{בקשת מחיקה|replaceParam|reason}}";
       : "{{בקשת מחיקה|replaceParam|reason}}";

יעצטיגע רעוויזיע זינט 05:59, 20 אויגוסט 2024

/* הסקריפט מוסיף לשוניות "מחיקה", "הגנה" ו"חסימה" על מנת שאפשר יהיה לבקש מחיקת דפים, הגנת דפים וחסימת באַניצערים באמצעות דף בקשות פון אדמיניסטראטארן. */
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, " ");
    var isRedirect = $('.redirectMsg').length || $("#redirectsub").length;
    if ($("#t-contributions").length) {
      addMenuItem(
        "בקשת חסימה",
        "בקשה לחסום את replaceUser",
        "{{לחסום|replaceUser}}",
        "]"
      );
    }
    var pageLink = isRedirect
      ? "{{ללא הפניה|replaceParam}}"
      : "[[" + ca + "replaceParam]]";
    var protectTemplate = isRedirect
      ? "{{בקשת הגנה|replaceParam|reason|הפניה=כן}}"
      : "{{בקשת הגנה|replaceParam|reason}}";
    if (
      mw.config.get("wgRestrictionEdit") &&
      mw.config.get("wgRestrictionEdit").length === 0
    )
      addMenuItem(
        "בקשת הגנה",
        "בקשה להגן על הדף replaceParam",
        protectTemplate,
        "="
      );
    else
      addMenuItem(
        "שינוי הגנה",
        "בקשה לשנות את ההגנה על הדף replaceParam",
        protectTemplate,
        "="
      );

    var deleteTemplate = isRedirect 
      ? "{{בקשת מחיקה|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");
  });