@@ -293,7 +308,8 @@
async function init() {
await loadVocabs();
await i18nLoader();
- chooseLicense();
+ chooseCCLicense();
+ addSoftwareLicenses();
addCreator();
$("#inputEducationalLevel option[value='https://w3id.org/kim/educationalLevel/level_A']").attr("selected", "true");
$('.selectpicker').selectpicker('refresh');
@@ -302,7 +318,9 @@
if (userLang) {
changeLanguage(userLang);
}
+
}
+
let vocabInstitutions = []
function loadVocabs() {
@@ -385,8 +403,50 @@
}
];
+ const softwareLicenses = [
+ {
+ name: 'Apache License 2.0',
+ url:'https://opensource.org/license/apache-2-0'
+ },
+ {
+ name: 'BSD 2-Clause "Simplified" License',
+ url: 'https://opensource.org/license/bsd-2-clause'
+ },
+ {
+ name: 'BSD 3-Clause "New" or "Revised" License',
+ url: 'https://opensource.org/license/bsd-3-clause',
+ },
+ {
+ name: 'GNU General Public License v2.0',
+ url: 'https://opensource.org/license/gpl-2-0',
+ },
+ {
+ name: 'GNU General Public License v3.0',
+ url: 'https://opensource.org/license/gpl-3-0',
+ },
+ {
+ name: 'GNU Lesser General Public License v2.1',
+ url: 'https://opensource.org/license/lgpl-2-1',
+ },
+ {
+ name: 'GNU Affero General Public License v3.0',
+ url: 'https://www.gnu.org/licenses/agpl-3.0.html',
+ },
+ {
+ name: 'MIT License',
+ url: 'https://opensource.org/license/mit',
+ },
+ {
+ name: 'GNU Free Documentation License',
+ url: 'https://www.gnu.org/licenses/fdl-1.3.html',
+ },
+ {
+ name: 'Zero-Clause BSD',
+ url: 'https://opensource.org/license/0bsd'
+ }
+ ]
- function chooseLicense() {
+ function chooseCCLicense() {
const by = document.getElementById("inputLicenseBY")
const sa = document.getElementById("inputLicenseSA")
const nd = document.getElementById("inputLicenseND")
@@ -478,6 +538,27 @@
}
}
+ function addSoftwareLicenses() {
+ softwareLicenses.forEach((item) => {
+ $("#inputSoftwareLicense").append('');
+ });
+ }
+
+ function ccOrSoftwareLicense() {
+ if(document.getElementById("radioLicenseCC").checked) {
+ document.getElementById("inputLicenseBY").disabled = false;
+ document.getElementById("choicesLicense").style = "";
+ chooseCCLicense();
+ document.getElementById("inputSoftwareLicense").setAttribute("disabled", "true");
+ } else {
+ document.getElementById("inputLicenseBY").disabled = true;
+ document.getElementById("choicesLicense").style = "color: gray";
+ document.getElementById("choosenLicense").style = "color: gray";
+ document.getElementById("inputSoftwareLicense").removeAttribute("disabled");
+ }
+ $('.selectpicker').selectpicker('refresh');
+ }
+
function splitKeywords(keywordString) {
const keywords = keywordString.split(",");
return keywords.map((k) => k.trim());
@@ -712,7 +793,11 @@
type: "LearningResource",
name: document.getElementById("inputTitle").value,
description: document.getElementById("inputDescription").value,
- license: document.getElementById("licenseUrl").value
+ }
+ if(document.getElementById("radioLicenseCC").checked) {
+ meta.license = document.getElementById("licenseUrl").value
+ } else {
+ meta.license = document.getElementById("inputSoftwareLicense").value
}
if (identifier) {
meta.id = identifier;
@@ -791,7 +876,7 @@
document.getElementById("inputDescription").value = data.description ? data.description : "";
$('#inputLanguage').val(data.inLanguage ? data.inLanguage : []).selectpicker('refresh');
$('#inputSubjectOf').val(aboutIds).selectpicker('refresh');
- setLicense(licenseUrl)
+ setLicense((data.license && data.license.id) ? idMap(data.license) : data.license)
document.getElementById("inputImage").value = data.image ? data.image : "";
$('#inputResourceType').val(learningResourceTypeIds).selectpicker('refresh');
if (educationalLevelIds.length > 0) {
@@ -805,52 +890,63 @@
}
}
function setLicense(license) {
- const by = document.getElementById("inputLicenseBY")
- const sa = document.getElementById("inputLicenseSA")
- const nd = document.getElementById("inputLicenseND")
- const nc = document.getElementById("inputLicenseNC")
- if (license.startsWith("https://creativecommons.org/publicdomain/zero/")) {
- by.checked = true;
- sa.checked = true;
- nd.checked = true;
- nc.checked = true;
- } else if (license.startsWith("https://creativecommons.org/licenses/by/")) {
- by.checked = false;
- sa.checked = true;
- nd.checked = true;
- nc.checked = true;
- } else if (license.startsWith("https://creativecommons.org/licenses/by-sa/")) {
- by.checked = false;
- sa.checked = false;
- nd.checked = true;
- nc.checked = true;
- } else if (license.startsWith("https://creativecommons.org/licenses/by-nd/")) {
- by.checked = false;
- sa.checked = true;
- nd.checked = false;
- nc.checked = true;
- } else if (license.startsWith("https://creativecommons.org/licenses/by-nc/")) {
- by.checked = false;
- sa.checked = true;
- nd.checked = true;
- nc.checked = false;
- } else if (license.startsWith("https://creativecommons.org/licenses/by-nc-sa/")) {
- by.checked = false;
- sa.checked = false;
- nd.checked = true;
- nc.checked = false;
- } else if (license.startsWith("https://creativecommons.org/licenses/by-nc-nd/")) {
- by.checked = false;
- sa.checked = true;
- nd.checked = false;
- nc.checked = false;
+ if (license.startsWith("https://creativecommons.org/")) {
+ const by = document.getElementById("inputLicenseBY")
+ const sa = document.getElementById("inputLicenseSA")
+ const nd = document.getElementById("inputLicenseND")
+ const nc = document.getElementById("inputLicenseNC")
+ if (license.startsWith("https://creativecommons.org/publicdomain/zero/")) {
+ by.checked = true;
+ sa.checked = true;
+ nd.checked = true;
+ nc.checked = true;
+ } else if (license.startsWith("https://creativecommons.org/licenses/by/")) {
+ by.checked = false;
+ sa.checked = true;
+ nd.checked = true;
+ nc.checked = true;
+ } else if (license.startsWith("https://creativecommons.org/licenses/by-sa/")) {
+ by.checked = false;
+ sa.checked = false;
+ nd.checked = true;
+ nc.checked = true;
+ } else if (license.startsWith("https://creativecommons.org/licenses/by-nd/")) {
+ by.checked = false;
+ sa.checked = true;
+ nd.checked = false;
+ nc.checked = true;
+ } else if (license.startsWith("https://creativecommons.org/licenses/by-nc/")) {
+ by.checked = false;
+ sa.checked = true;
+ nd.checked = true;
+ nc.checked = false;
+ } else if (license.startsWith("https://creativecommons.org/licenses/by-nc-sa/")) {
+ by.checked = false;
+ sa.checked = false;
+ nd.checked = true;
+ nc.checked = false;
+ } else if (license.startsWith("https://creativecommons.org/licenses/by-nc-nd/")) {
+ by.checked = false;
+ sa.checked = true;
+ nd.checked = false;
+ nc.checked = false;
+ } else {
+ by.checked = false;
+ sa.checked = false;
+ nd.checked = false;
+ nc.checked = false;
+ }
+ chooseCCLicense();
} else {
- by.checked = false;
- sa.checked = false;
- nd.checked = false;
- nc.checked = false;
+ document.getElementById("inputSoftwareLicense").name = softwareLicenses.find(l => l.url == license).name;
+ document.getElementById("inputSoftwareLicense").value = license;
+ document.getElementById("radioLicenseSoftware").checked = "true";
+ document.getElementById("inputLicenseBY").disabled = true;
+ document.getElementById("choicesLicense").style = "color: gray";
+ document.getElementById("choosenLicense").style = "color: gray";
+ document.getElementById("inputSoftwareLicense").removeAttribute("disabled");
+ $('.selectpicker').selectpicker('refresh');
}
- chooseLicense();
}
async function i18nLoader() {