משתמש:מ. רובין/הודעה למשתמש.js

הערה: לאחר הפרסום, ייתכן שיהיה צורך לנקות את זיכרון המטמון (cache) של הדפדפן כדי להבחין בשינויים.

  • פיירפוקס / ספארי: להחזיק את המקש Shift בעת לחיצה על טעינה מחדש (Reload) או ללחוץ על צירוף המקשים Ctrl-F5 או Ctrl-R (במחשב מק: ⌘-R).
  • גוגל כרום: ללחוץ על צירוף המקשים Ctrl-Shift-R (במחשב מק: ⌘-Shift-R).
  • אדג': להחזיק את המקש Ctrl בעת לחיצה על רענן (Refresh) או ללחוץ על צירוף המקשים Ctrl-F5.
//<nowiki>
"use strict";
mw.loader.using(["mediawiki.util", "mediawiki.api", "mediawiki.Title"]).then(function () {
  const api = new mw.Api();
  var nameOfpage = mw.config
    .get("wgPageName")
    .replace(new RegExp("_", "g"), " ");
  var UserPage = false;
  var oldRevisionId = mw.config.get("wgDiffOldId"),
    newRevisionId = mw.config.get("wgDiffNewId"),
    user = $("#mw-diff-ntitle2 > a").text(),
    replay = "{{T|" + user + "|בקשר}}",
    difftext =
      "{{הבג|דף=" +
      nameOfpage +
      "|מספר הגרסה=" +
      newRevisionId +
      "|גרסה קודמת=" +
      oldRevisionId +
      "|כיתוב= לעריכה זו}}, ";

  function openMyDiffDialog() {
    var dialog = $(
      `<div>
	  	<div>כותרת ההודעה:</div>
	  	<div><textarea id="titleNote" rows="1"></textarea></div>
	  	<div>תוכן ההודעה:</div>
	  	<div><textarea id="textNote" rows="10"></textarea></div>
	</div>`
    ).dialog({
      title: "כתיבת הודעה",
      open: function () {
        $("#textNote").val(replay + " " + difftext);
      },
      close: function () {
        dialog.remove();
      },
      buttons: [
        {
          text: "בשיחת המשתמש",

          click: function () {
            UserPage = true;
            var addtext = $("#textNote")
              .val()
              .replace(`{{T|${user}|בקשר}}`, "בקשר");
            let title = $("#titleNote").val()
              ? $("#titleNote").val()
              : `[[${nameOfpage}]]`;
            wattsUp(addtext, title, UserPage);
            dialog.dialog("close");
          },
        },
        {
          text: "בשיחת הערך",

          click: function () {
            UserPage = false;
            var addtext = $("#textNote").val();
            var title = $("#titleNote").val();
            if (!title) {
              alert("חובה להזין כותרת מותאמת לנושא!");
              return;
            }
            wattsUp(addtext, title, UserPage);
            dialog.dialog("close");
          },
        },
        {
          text: "סגור",

          click: function () {
            dialog.dialog("close");
          },
        },
      ],
    });
  }

  function wattsUp(addtext, title, UserPage) {
    var talkPage = UserPage
      ? "User talk:" + user
      : new mw.Title(mw.config.get("wgPageName")).getTalkPage().getPrefixedText();
    if (addtext === "" || addtext === null || addtext === undefined) {
      mw.notify("ההודעה לא נשלחה");
      return;
    }
    api
      .newSection(talkPage, title, addtext + " ~~~~")
      .done((data) => {
        if (data?.edit?.result === "Success") {
          mw.notify("ההודעה נשמרה בדף :" + talkPage, { type: "success" });
        }
      })
      .fail((error) => {
        if (error === "no-direct-editing") {
          var param = {
            action: "flow",
            submodule: "new-topic",
            page: talkPage,
            nttopic: title,
            token: mw.user.tokens.get("csrfToken"),
            ntcontent: addtext,
          };
          api
            .postWithEditToken(param)
            .done((data) => {
              if (data?.flow["new-topic"].status === "ok") {
                mw.notify("ההודעה נשמרה בדף :" + talkPage, { type: "success" });
              }
            })
            .fail(() => {
              mw.notify("ההודעה לא נשמרה", { type: "error" });
            });
        }
      });
  }

  if (mw.util.getParamValue("diff")) {
    $("#mw-diff-ntitle1").append(
      " <b>(</b>",
      $("<a>").html("<b>הודעה לעריכה</b>").click(openMyDiffDialog),
      "<b>)</b> "
    );
  }
});
//</nowiki>