לדלג לתוכן

מדיה ויקי:Licenses.js

מתוך המכלול, האנציקלופדיה היהודית

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

  • פיירפוקס / ספארי: להחזיק את המקש Shift בעת לחיצה על טעינה מחדש (Reload) או ללחוץ על צירוף המקשים Ctrl-F5 או Ctrl-R (במחשב מק: ⌘-R).
  • גוגל כרום: ללחוץ על צירוף המקשים Ctrl-Shift-R (במחשב מק: ⌘-Shift-R).
  • אדג': להחזיק את המקש Ctrl בעת לחיצה על רענן (Refresh) או ללחוץ על צירוף המקשים Ctrl-F5.
// התאמה אישית של רשימת הרישיונות בדף העלאת קובץ
mw.loader.using(["mediawiki.util", "mediawiki.user"]).done(function () {
  var uploadInformationTemplateExists = false;
  function showLicenseAlert(licenseAlert) {
    var licenseAlertField = $("#uploadAlertData");

    switch (licenseAlert) {
      case "שימוש הוגן":
        licenseAlertField.html(
          '<b>שימו לב</b>: בשדה התיאור יש להחליף את הכיתוב "שם-הערך-בו-מותר-השימוש" בשם הערך שעבורו העליתם את התמונה.'
        );
        break;
      case "ויקישיתוף":
        licenseAlertField.html(
          "<b>שימו לב</b>: תמונות חופשיות מומלץ להעלות לוויקישיתוף (למעט תמונות שנועדו לשימוש אישי בדף משתמש). אם לא תעשו כן, ייתכן שהתמונה תועלה לשם על ידי משתמש אחר בעתיד."
        );
        break;
      case "שימוש הוגן ומקור":
        licenseAlertField.html(
          '<b>שימו לב</b>: בשדה התיאור יש להחליף את הכיתוב "שם-הערך-בו-מותר-השימוש" בשם הערך שעבורו העליתם את התמונה, ואת הכיתוב "מקור-התמונה" באתר האינטרנט ממנה נלקחה התמונה.'
        );
        break;
      default:
        return;
    }

    $("#uploadAlert").css("display", "block");
  }

  function showLicenseInfo(licenseName) {
    var licenseViewOriginal = $("#wpUploadDescription");
    licenseViewOriginal.focus();

    var licenseView = "{" + "{";
    switch (licenseName) {
      case "אין":
        licenseView += "ס:תמונה חשודה}}";
        break;
      case "infobox":
        if (
          !licenseViewOriginal.val() &&
          !mw.util.getParamValue("wpForReUpload")
        ) {
          licenseViewOriginal.val(
            "== תקציר ==\n{" +
              "{מידע\n|תיאור=\n|מקור=\n|תאריך יצירה=\n|יוצר=\n|אישורים והיתרים=\n|גרסאות אחרות=\n}}"
          );
          uploadInformationTemplateExists = true;
        }
        licenseViewOriginal.prop("rows", 20);
        return;
      //---
      case "שימוש הוגן":
        licenseView += "שימוש הוגן|מקור=מקור-התמונה|ערך=שם-הערך-בו-מותר-השימוש}}";
        showLicenseAlert("שימוש הוגן ומקור");
        break;
      case "לוגו":
        licenseView += "לוגו|שם-הערך-בו-מותר-השימוש}}";
        showLicenseAlert("שימוש הוגן");
        break;
      case "עטיפת ספר":
        licenseView += "עטיפת ספר|שם-הערך-בו-מותר-השימוש}}";
        showLicenseAlert("שימוש הוגן");
        break;
      case "עטיפת אלבום":
        licenseView += "עטיפת אלבום|שם-הערך-בו-מותר-השימוש}}";
        showLicenseAlert("שימוש הוגן");
        break;
      case "כרזת סרט, וידאו או תקליטור":
        licenseView += "כרזת סרט|שם-הערך-בו-מותר-השימוש}}";
        showLicenseAlert("שימוש הוגן");
        break;
      case "צילום מסך של אתר אינטרנט או תוכנה":
        licenseView += "צילום מסך|שם-הערך-בו-מותר-השימוש}}";
        showLicenseAlert("שימוש הוגן");
        break;
      //---
      case "רשות ציבור":
        licenseView += "שימוש חופשי|" + mw.config.get("wgUserName") + "}}";
        showLicenseAlert("ויקישיתוף");
        break;
      case "self CC":
        licenseView +=
          "Cc-by-sa-3.0|יוצר=" + mw.config.get("wgUserName") + "}}";
        showLicenseAlert("ויקישיתוף");
        break;
      case "תרומת יצירה":
        licenseView += "תרומת יצירה|יוצר=" + mw.config.get("wgUserName") + "}}";
        showLicenseAlert("ויקישיתוף");
        break;
      case "PD-old":
        licenseView += "PD-old}}";
        showLicenseAlert("ויקישיתוף");
        break;
      case "תמונה פדרלית":
        licenseView += "תמונה פדרלית}}";
        showLicenseAlert("ויקישיתוף");
        break;
      case "CC":
        licenseView += "Cc-by-sa-3.0|יוצר=שם-בעל-זכויות-היוצרים}}";
        showLicenseAlert("ויקישיתוף");
        break;
      case "נגזרת":
        licenseView += "יצירה נגזרת}}";
        break;
      case "מרוטשת":
        licenseView += "יצירה נגזרת|מרוטש=כן}}";
        break;
      default:
        return;
    }

    if (licenseName === "נגזרת" || licenseName === "מרוטשת") {
      licenseViewOriginal.val(licenseView);
      uploadInformationTemplateExists = false;
      return;
    }
    if (/\|אישורים והיתרים=/.test(licenseViewOriginal.val())) 
      licenseViewOriginal.val(
        licenseViewOriginal
          .val()
          .replace(/(\|אישורים והיתרים=)/, "$1" + licenseView)
      );
    else 
      licenseViewOriginal.val(
        licenseViewOriginal.val() + "\n== רישיון ==\n" + licenseView
      );
    
  }

  function isFairuse() {
    return $.inArray("fairuse", mw.config.get("wgPageName").split("/")) > -1;
  }
  function licenseListViewer() {
    var licenseListOriginal = $("#wpLicense");
    if (!licenseListOriginal.length) return;
    var selector = licenseListOriginal.get(0);
    selector.onchange = function () {
      showLicenseInfo($(this).find(":selected").prop("title"));
      $(this).prop("selectedIndex", 0);
    };
    $("#wpLicense option").remove(); // remove old options

    licenseListOriginal
      .append($("<option></option>")).append($("<option>אין לי מידע בקשר לרישיון</option>").prop("title", "אין").val("תמונה חשודה"));

    if (isFairuse()) {
      // fair use upload page
      licenseListOriginal.append(
        $("<option>------ שימוש הוגן ------</option>", {
          disabled: "disabled",
        }).css("color", "red")
      );
      var fairUseLicenes = [
        "שימוש הוגן",
        "לוגו",
        "עטיפת ספר",
        "עטיפת אלבום",
        "כרזת סרט, וידאו או תקליטור",
        "צילום מסך של אתר אינטרנט או תוכנה",
      ];
      $.each(fairUseLicenes, function (i, license) {
        licenseListOriginal.append(
          $("<option>" + license + "</option>").prop("title", license)
        );
      });
    } else {
      // normal upload page
      licenseListOriginal
        .append($('<optgroup label="אני יצרתי/איירתי/צילמתי"></optgroup>'))
        .append($("<option>ואני תורם את היצירה למכון חכמת התורה - מפעיל אתר המכלול.</option>").prop("title", "תרומת יצירה").val("תרומת יצירה"))
        .append($('<optgroup label="לא אני יצרתי אבל בעל הזכויות"></optgroup>'))
        .append($("<option>שחרר את היצירה לחופשי כיון שחלפו יותר מ-71 שנה ממות היוצר.</option>").prop("title", "PD-old").val("PD-old"))
        .append($("<option>שחרר את היצירה לחופשי כיון שהיוצר הוא הממשל האמריקאי.</option>").prop("title", "תמונה פדרלית").val("תמונה פדרלית"))
        

      mw.user.getRights(function (rights) {
        if (rights.indexOf("upload_by_url") > -1) {
          licenseListOriginal
            .append($('<optgroup label="יצירה נגזרת"</optgroup>')).append($("<Option>חתוכה</Option>").prop("title", "נגזרת").val("יצירה נגזרת"))
            .append($("<Option>מרוטשת</Option>").prop("title", "מרוטשת").val("יצירה נגזרת|מרוטש=כן"));
        }
      });
    }

    showLicenseInfo("infobox"); //add the מידע template to description box
  }

  function checkUploadInformationTemplate() {
    var wpIgnoreWarning = document.getElementById("wpIgnoreWarning");
    if (wpIgnoreWarning && wpIgnoreWarning.checked) return true;
    $("[name=wpUpload]").click(function () {
      var UploadTextBox = $("#wpUploadDescription");

      /*if ( uploadInformationTemplateExists && !/\{\{מידע\|תיאור=.*\|מקור=..+\|תאריךיצירה=.*\|יוצר=..+\|אישוריםוהיתרים=.*\|.+}}|\{\{כרזתסרט|\{\{עטיפתספר|\{\{עטיפתאלבום|\{\{צילוםמסך|\{\{לוגו/.test(UploadTextBox.val().replace(/[ \r\n]/g,"").replace(/\|+/g,"|")) )
            {
            alert ('המידע שסיפקתם על רשיון הקובץ אינו תקין.\nשימו לב שחסרים פרטי חובה נדרשים בתבנית המידע.');
            return false;
            }*/

      if (
        (isFairuse() &&
          !/\{\{.+}}/.test(UploadTextBox.val().replace(/[ \r\n]/g, ""))) ||
        (uploadInformationTemplateExists &&
          !/\{\{מידע\|תיאור=.*\|מקור=.*\|תאריךיצירה=.*\|יוצר=.*\|אישוריםוהיתרים=.*\{\{.+}}.*\|.+}}/.test(
            UploadTextBox.val().replace(/[ \r\n]/g, "").replace(/\|+/g, "|")
          ))
      ) {
        alert("המידע שסיפקתם על רשיון הקובץ אינו תקין.\nשימו לב שחובה לבחור את הרישיון המתאים מרשימת הרישיונות.");
        return false;
      }

      if (UploadTextBox.val().indexOf("שם-בעל-זכויות-היוצרים") != -1) {
        alert("המידע שסיפקתם אינו מלא. חובה לספק את שם בעל זכויות היוצרים.");
        return false;
      }

      if (UploadTextBox.val().indexOf("שם-הערך-בו-מותר-השימוש") != -1) {
        alert(
          "המידע שסיפקתם אינו מלא. חובה לספק את שם הערך בו הקובץ מותר בשימוש."
        );
        return false;
      }

      return true;
    });
  }

  if (mw.config.get("wgCanonicalSpecialPageName") == "Upload") {
    //disable preview
    mw.config.set("wgAjaxLicensePreview", false);
    $(function () {
      licenseListViewer();
      checkUploadInformationTemplate();
    });
  }
});