diff --git a/i18n/de.json b/i18n/de.json
index ad3e815..27076f6 100644
--- a/i18n/de.json
+++ b/i18n/de.json
@@ -44,5 +44,6 @@
"LABEL_URL": "URL der Ressource",
"LABEL_URL_PLACEHOLDER": "Direktlink zur Resource (Voreinstellung GitHub/GitLab Pages URL)",
"LABEL_YAML_METADATA": "YAML Metadaten",
- "LABEL_NO_INSTITUTION_FOUND": "Keine passende Institution gefunden"
+ "LABEL_NO_INSTITUTION_FOUND": "Keine passende Institution gefunden",
+ "LABEL_DATE_PUBLISHED": "Veröffentlichungsdatum"
}
\ No newline at end of file
diff --git a/i18n/en.json b/i18n/en.json
index ac65b58..d11642a 100644
--- a/i18n/en.json
+++ b/i18n/en.json
@@ -44,5 +44,6 @@
"LABEL_URL": "Resource URL",
"LABEL_URL_PLACEHOLDER": "Direct link to the resource (default GitHub/GitLab Pages URL)",
"LABEL_YAML_METADATA": "YAML Metadata",
- "LABEL_NO_INSTITUTION_FOUND": "No matching institution found"
+ "LABEL_NO_INSTITUTION_FOUND": "No matching institution found",
+ "LABEL_DATE_PUBLISHED": "Date published"
}
\ No newline at end of file
diff --git a/metadata-generator.html b/metadata-generator.html
index 32cd660..3a6fbe6 100644
--- a/metadata-generator.html
+++ b/metadata-generator.html
@@ -17,6 +17,12 @@
+
+
+
+
+
+
@@ -223,7 +229,7 @@
+
@@ -554,6 +569,7 @@
creatorList.insertBefore(item, creatorList.lastElementChild);
createOrUpdateSelect2();
+ createOrUpdateDatePicker();
updateContent();
}
@@ -620,6 +636,7 @@
const selectedResourceTypes = $('#inputResourceType').val();
const selectedEducationalLevel = $('#inputEducationalLevel').val();
const identifier = document.getElementById("inputUrl").value;
+ const datePublished = $("#datepicker1").datepicker("getDate");
let meta = {
creativeWorkStatus: document.getElementById("inputStatus").value,
name: document.getElementById("inputTitle").value,
@@ -650,6 +667,12 @@
if (selectedEducationalLevel.length > 0) {
meta.educationalLevel = selectedEducationalLevel
}
+ if (meta.creativeWorkStatus == "Published" && datePublished) {
+ let dateString = datePublished.getFullYear() + "-"
+ + ('0' + (datePublished.getMonth()+1)).slice(-2) + "-"
+ + ('0' + datePublished.getDate()).slice(-2);
+ meta.datePublished = dateString;
+ }
document.getElementById("comment").value = jsyaml.dump(meta);
if (navigator.clipboard) {
document.getElementById("button_copy_generated_output").disabled = false
@@ -683,6 +706,7 @@
const educationalLevelIds = data.educationalLevel ? data.educationalLevel.map(idMap) : [];
document.getElementById("inputStatus").value = data.creativeWorkStatus ? data.creativeWorkStatus : "Draft";
+ $("#datepicker1").datepicker("update", new Date(data.datePublished));
document.getElementById("inputUrl").value = data.id ? data.id : "";
document.getElementById("inputTitle").value = data.name;
setCreators(data.creator ? data.creator : []);
@@ -789,6 +813,7 @@
i18next.changeLanguage(languageCode);
document.getElementById("selectedLanguageLabel").textContent = languageCode.toUpperCase();
createOrUpdateSelect2();
+ createOrUpdateDatePicker();
}
function createOrUpdateSelect2() {
@@ -837,6 +862,31 @@
});
}
+ function createOrUpdateDatePicker() {
+ // Keep previously set date when changing the language
+ let date = $('#datepicker1').datepicker("getDate");
+
+ if (document.getElementById("inputStatus").value != "Published") {
+ document.getElementById("datepickerInput").required = false;
+ } else {
+ // Make required if input status is set to published
+ document.getElementById("datepickerInput").required = true;
+ // When set to published, set datePublished to today
+ if (!date) {
+ $('#datepicker1').datepicker("update", new Date());
+ }
+ }
+ $('#datepicker1').datepicker("destroy");
+ let language = document.getElementById("selectedLanguageLabel").textContent.toLowerCase();
+ if (language == "en") language += "-US";
+ $('#datepicker1').datepicker({
+ language: language
+ });
+ if (date) {
+ $('#datepicker1').datepicker("update", new Date(date));
+ }
+ }
+
function updateContent() {
let elements = document.querySelectorAll('[data-i18n]');
for (let i = 0; i < elements.length; i++) {