Added interpreter for pseudocode for displaying exhibitions, events.

Added basic search.
Added object pages.
This commit is contained in:
2018-06-15 11:26:25 +02:00
committed by Stefan Rohde-Enslin
parent a49746ab10
commit 80485a98ab
19 changed files with 1573 additions and 82 deletions

View File

@ -5,7 +5,7 @@
*
* @return {void}
*/
function removeElement(elem) {
async function removeElement(elem) {
while (elem.firstChild) {
elem.removeChild(elem.firstChild);
}
@ -29,16 +29,28 @@ document.addEventListener("DOMContentLoaded", function() {
let translations = {
"en" : {
"uploadFile" : "Upload file",
"submit" : "Submit",
"generate" : "Generate",
"eventCalendar" : "Event calendar",
"uploadFile" : "Upload file",
"submit" : "Submit",
"generate" : "Generate",
"embedCodeGenerator" : "Generator for embed code",
"helpEmbedCode" : "Here you can create embed code.",
"singleObjectTile" : "Single object (tile)",
"singleObjectDetails": "Single object (details)",
"singleCollection" : "Single collection",
"exhibitionCalendar" : "Exhibition calendar",
"eventCalendar" : "Event calendar",
},
"de" : {
"uploadFile" : "Eine Datei heraufladen",
"submit" : "Abschicken",
"generate" : "Generieren",
"eventCalendar" : "Veranstaltungen (Kalender)",
"uploadFile" : "Eine Datei heraufladen",
"submit" : "Abschicken",
"generate" : "Generieren",
"embedCodeGenerator" : "Generator für Einbettungen",
"helpEmbedCode" : "Hier können sie den embed-code generieren.",
"singleObjectTile" : "Einzelobjekt (Kachel)",
"singleObjectDetails": "Einzelobjekt (Details)",
"singleCollection" : "Einzelsammlung",
"exhibitionCalendar" : "Ausstellungskalender",
"eventCalendar" : "Veranstaltungen (Kalender)",
}
};
@ -159,7 +171,7 @@ document.addEventListener("DOMContentLoaded", function() {
}
}
(function() {
(async function() {
let trigger = document.getElementById("uploadFile");
if (trigger === undefined || trigger === null) return;
@ -206,7 +218,7 @@ document.addEventListener("DOMContentLoaded", function() {
overlay.appendChild(uploadForm);
document.getElementsByTagName("body")[0].appendChild(overlay);
document.getElementsByTagName("body")[0].addEventListener('keydown', function(e) {
document.getElementsByTagName("body")[0].addEventListener('keydown', async function(e) {
if (e.keyCode != 27) return;
removeElement(overlay);
});
@ -214,7 +226,7 @@ document.addEventListener("DOMContentLoaded", function() {
queryPage(
encodeURI('./files.php'),
function (request) {
let allFiles = request.response;
let allFiles = JSON.parse(request.response);
for (let i = 0, max = allFiles.length; i < max; i++) {
console.log(allFiles[i]);
@ -231,14 +243,56 @@ document.addEventListener("DOMContentLoaded", function() {
*/
(function() {
function generateToolTip(toolTipID, toolTipText, toolTipTitle = "", triggerId = "") {
let trigger = document.createElement("span");
trigger.classList.add("newToolTipTag");
trigger.classList.add("helpToolTip");
trigger.setAttribute("data-for", toolTipID);
let toolTip = document.createElement("div");
toolTip.id = "tooltip_" + toolTipID;
toolTip.classList.add("newToolTip");
toolTip.setAttribute("data-title", toolTipTitle);
let toolTipCont = document.createElement("p");
toolTipCont.textContent = toolTipText;
toolTip.appendChild(toolTipCont);
trigger.appendChild(toolTip);
return trigger;
}
let generator = document.getElementById("embedGenerator");
if (generator === undefined || generator === null) return;
// Define generator types
let generatorTypes = [
["", "", false, "text"],
["eventCalendar", getTranslation(translations, "eventCalendar"), true, "number"],
["", "", false],
["singleObjectTile", getTranslation(translations, "singleObjectTile"), true],
["singleObjectDetails", getTranslation(translations, "singleObjectDetails"), true],
["singleCollectionTile", getTranslation(translations, "singleCollection"), true],
["exhibitionCalendar", getTranslation(translations, "exhibitionCalendar"), true],
["eventCalendar", getTranslation(translations, "eventCalendar"), true],
];
// Add help tooltip
let generatorLabelSpan = document.createElement("span");
generatorLabelSpan.classList.add("labelLine");
let generatorLabel = document.createElement("label");
generatorLabel.textContent = getTranslation(translations, "embedCodeGenerator");
generatorLabelSpan.appendChild(generatorLabel);
generatorLabelSpan.appendChild(generateToolTip("embedGeneratorToolTip", getTranslation(translations, "helpEmbedCode"), getTranslation(translations, "embedCodeGenerator")));
generator.appendChild(generatorLabelSpan);
let selectType = document.createElement("select");
for (let i = 0, max = generatorTypes.length; i < max; i++) {
@ -246,7 +300,6 @@ document.addEventListener("DOMContentLoaded", function() {
generatorOption.value = generatorTypes[i][0];
generatorOption.textContent = generatorTypes[i][1];
generatorOption.setAttribute("data-useSpecifier", generatorTypes[i][2]);
generatorOption.setAttribute("data-inputType", generatorTypes[i][3]);
selectType.appendChild(generatorOption);
}
@ -274,7 +327,6 @@ document.addEventListener("DOMContentLoaded", function() {
generatorSpecifier.value = "";
if (selectType.options[selectType.selectedIndex].getAttribute("data-useSpecifier") == "true") {
generatorSpecifier.classList.remove("invisible");
generatorSpecifier.type = selectType.options[selectType.selectedIndex].getAttribute("data-inputType");
}
else generatorSpecifier.classList.add("invisible");
@ -283,13 +335,20 @@ document.addEventListener("DOMContentLoaded", function() {
});
buttonGenerate.addEventListener('click', function(e) {
function runGenerator() {
if (selectType.value == "") return;
generatorFieldCont.textContent = "[" + selectType.value + "]";
if (generatorSpecifier.value != "") {
generatorFieldCont.textContent += "{" + generatorSpecifier.value + "}";
}
}
generatorSpecifier.addEventListener('keydown', function(e) {
if (e.keyCode != 13) return;
e.stopPropagation(); e.preventDefault();
runGenerator();
});
buttonGenerate.addEventListener('click', function() { runGenerator(); });
generator.appendChild(generatorField);