mirror of
https://github.com/Theodor-Springmann-Stiftung/hamann-ausgabe-core.git
synced 2025-10-29 17:25:32 +00:00
Deployment v1
This commit is contained in:
@@ -7,7 +7,7 @@ function getCookie(name) {
|
||||
const USESubmit = async function (oFormElement, file = null) {
|
||||
let fd = new FormData(oFormElement);
|
||||
document.getElementById("ha-filelistbutton").style.pointerEvents = "none";
|
||||
document.getElementById("ha-lds-ellipsis-load").style.display = "inline-block";
|
||||
document.getElementById("ha-filelistbutton").classList.add("loading");
|
||||
await fetch(oFormElement.action, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
@@ -17,40 +17,97 @@ const USESubmit = async function (oFormElement, file = null) {
|
||||
})
|
||||
.then(response => response.json())
|
||||
.then(json => {
|
||||
document.getElementById("ha-filelistbutton").classList.remove("loading");
|
||||
document.getElementById("ha-filelistbutton").style.pointerEvents = "auto";
|
||||
if ("Error" in json) {
|
||||
document.getElementById("ha-filelistbutton").style.pointerEvents = "auto";
|
||||
document.getElementById("ha-lds-ellipsis-load").style.display = "none";
|
||||
document.getElementById("ha-filelistoutput").textContent = json.Error;
|
||||
document.getElementById("ha-filelistoutput").textContent = json.Error;
|
||||
}
|
||||
else {
|
||||
document.getElementById("ha-filelistbutton").style.pointerEvents = "auto";
|
||||
document.getElementById("ha-lds-ellipsis-load").style.display = "none";
|
||||
location.reload();
|
||||
location.reload();
|
||||
}
|
||||
})
|
||||
.catch ((e) => {
|
||||
document.getElementById("ha-filelistbutton").classList.remove("loading");
|
||||
document.getElementById("ha-filelistbutton").style.pointerEvents = "auto";
|
||||
document.getElementById("ha-lds-ellipsis-load").style.display = "none";
|
||||
document.getElementById("ha-filelistoutput").textContent = e;
|
||||
})
|
||||
}
|
||||
|
||||
const YEARSUBMIT = async function (oFormElement, file = null) {
|
||||
let fd = new FormData(oFormElement);
|
||||
document.getElementById("ha-setendyearbutton").style.pointerEvents = "none";
|
||||
await fetch(oFormElement.action, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'RequestVerificationToken': getCookie('RequestVerificationToken')
|
||||
},
|
||||
body: fd
|
||||
})
|
||||
.then(response => response.json())
|
||||
.then(json => {
|
||||
document.getElementById("ha-setendyearbutton").style.pointerEvents = "auto";
|
||||
location.reload();
|
||||
})
|
||||
.catch ((e) => {
|
||||
document.getElementById("ha-setendyearbutton").style.pointerEvents = "auto";
|
||||
})
|
||||
const GETSyntaxCheck = async function (oFormElement, file = null) {
|
||||
document.getElementById("ha-scbutton").style.pointerEvents = "none";
|
||||
document.getElementById("ha-scbutton").classList.toggle("loading");
|
||||
await fetch(oFormElement.action)
|
||||
.then(response => response.json())
|
||||
.then(j => {
|
||||
Object.entries(j).forEach(([key, value]) => {
|
||||
var e = document.getElementById(key);
|
||||
if (e !== null && !e.classList.contains("red")) {
|
||||
var h = e.querySelector(".ha-managedfileheader");
|
||||
var i = e.querySelector(".ha-filestatusicon");
|
||||
var a = e.querySelector(".ha-managedfileannotations");
|
||||
if (value.errors === null) {
|
||||
h.classList.add("green");
|
||||
} else {
|
||||
var icon = i.querySelector("svg");
|
||||
icon.remove();
|
||||
i.insertAdjacentHTML("afterbegin", '<svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"><title>alert-decagram-outline</title><path d="M23,12L20.56,14.78L20.9,18.46L17.29,19.28L15.4,22.46L12,21L8.6,22.47L6.71,19.29L3.1,18.47L3.44,14.78L1,12L3.44,9.21L3.1,5.53L6.71,4.72L8.6,1.54L12,3L15.4,1.54L17.29,4.72L20.9,5.54L20.56,9.22L23,12M20.33,12L18.5,9.89L18.74,7.1L16,6.5L14.58,4.07L12,5.18L9.42,4.07L8,6.5L5.26,7.09L5.5,9.88L3.67,12L5.5,14.1L5.26,16.9L8,17.5L9.42,19.93L12,18.81L14.58,19.92L16,17.5L18.74,16.89L18.5,14.1L20.33,12M11,15H13V17H11V15M11,7H13V13H11V7" /></svg>');
|
||||
h.classList.add("expandable");
|
||||
h.classList.add("orange");
|
||||
h.addEventListener("click", () => {
|
||||
h.classList.toggle("expanded");
|
||||
});
|
||||
var t = document.createElement("table");
|
||||
var thr = document.createElement("tr");
|
||||
var thl = document.createElement("th");
|
||||
var thc = document.createElement("th");
|
||||
var thm = document.createElement("th");
|
||||
thl.append("Zeile");
|
||||
thc.append("Spalte");
|
||||
thm.append("Fehler");
|
||||
thr.append(thl, thc, thm);
|
||||
t.append(thr);
|
||||
value.errors.forEach((error) => {
|
||||
var tr = document.createElement("tr");
|
||||
var tdl = document.createElement("td");
|
||||
var tdc = document.createElement("td");
|
||||
var tdm = document.createElement("td");
|
||||
tdl.append(error.line);
|
||||
tdc.append(error.column);
|
||||
tdm.append(error.message);
|
||||
tr.append(tdl, tdc, tdm);
|
||||
t.append(tr);
|
||||
})
|
||||
a.append(t);
|
||||
}
|
||||
}
|
||||
console.log(e, h, i, a);
|
||||
});
|
||||
// let coll = document.getElementsByClassName("ha-managedfile");
|
||||
// for (i = 0; i < coll.length; i++) {
|
||||
// let e = coll[i];
|
||||
// if (j[e.id] !== null) {
|
||||
// if(j[e.id].errors === null) {
|
||||
// console.log(e.id + " hat keine errors");
|
||||
// } else {
|
||||
// console.log(e.id + " hat errors");
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
document.getElementById("ha-scbutton").classList.toggle("hidden");
|
||||
|
||||
})
|
||||
.catch ((e) => {
|
||||
console.log(e);
|
||||
document.getElementById("ha-scbutton").classList.toggle("loading");
|
||||
document.getElementById("ha-scbutton").style.pointerEvents = "auto";
|
||||
})
|
||||
}
|
||||
|
||||
var coll = document.getElementsByClassName("expandable");
|
||||
|
||||
for (i = 0; i < coll.length; i++) {
|
||||
let element = coll[i]
|
||||
coll[i].addEventListener("click", () => {
|
||||
element.classList.toggle("expanded");
|
||||
});
|
||||
}
|
||||
@@ -21,5 +21,6 @@ if (document.getElementById("ha-scrollbutton") !== null) {
|
||||
document.body.scrollTop = 0; // For Safari
|
||||
document.documentElement.scrollTop = 0; // For Chrome, Firefox, IE and Opera
|
||||
})
|
||||
window.addEventListener("scroll", scrollFunction);
|
||||
// TODO: workaround, bc window does not recieve scroll events anymore
|
||||
setInterval(() => scrollFunction(), 1000);
|
||||
}
|
||||
|
||||
157
HaWeb/wwwroot/js/websocket.js
Normal file
157
HaWeb/wwwroot/js/websocket.js
Normal file
@@ -0,0 +1,157 @@
|
||||
var stateSC = null;
|
||||
var stateValidation = null;
|
||||
var stateReload = null;
|
||||
var stateCommit = null;
|
||||
var firstMessage = true;
|
||||
var commsLog = document.getElementById("commsLog");
|
||||
var commsNot = document.getElementById("comm-notifications");
|
||||
var socket;
|
||||
|
||||
var scheme = document.location.protocol === "https:" ? "wss" : "ws";
|
||||
var port = document.location.port ? (":" + document.location.port) : "";
|
||||
|
||||
var connectionUrl = scheme + "://" + document.location.hostname + port + "/WS" ;
|
||||
|
||||
function htmlEscape(str) {
|
||||
return str.toString()
|
||||
.replace(/&/g, '&')
|
||||
.replace(/"/g, '"')
|
||||
.replace(/'/g, ''')
|
||||
.replace(/</g, '<')
|
||||
.replace(/>/g, '>');
|
||||
}
|
||||
|
||||
|
||||
socket = new WebSocket(connectionUrl);
|
||||
socket.onopen = function (event) {
|
||||
socket.send("Hello");
|
||||
updateMessage();
|
||||
};
|
||||
socket.onclose = function (event) {
|
||||
updateMessage();
|
||||
};
|
||||
socket.onerror = updateMessage;
|
||||
socket.onmessage = function (event) {
|
||||
var msg = JSON.parse(event.data);
|
||||
if (msg.ValidationState != null) {
|
||||
stateValidation = msg.ValidationState;
|
||||
console.log(msg.ValidationState);
|
||||
switch (msg.ValidationState) {
|
||||
case 0:
|
||||
commsNot.classList.remove("loading");
|
||||
commsNot.classList.remove("green");
|
||||
if (!commsNot.classList.contains("red")) {
|
||||
commsNot.classList.add("red");
|
||||
}
|
||||
updateMessage();
|
||||
break;
|
||||
case 1:
|
||||
if (!commsNot.classList.contains("loading")) {
|
||||
commsNot.classList.add("loading");
|
||||
}
|
||||
updateMessage();
|
||||
break;
|
||||
case 2:
|
||||
commsNot.classList.remove("red");
|
||||
commsNot.classList.remove("loading");
|
||||
if (!commsNot.classList.contains("green")) {
|
||||
commsNot.classList.add("green");
|
||||
}
|
||||
updateMessage();
|
||||
break;
|
||||
}
|
||||
} else if (msg.Commit != null) {
|
||||
stateCommit = msg;
|
||||
updateMessage();
|
||||
} else if (msg.reload != null) {
|
||||
stateReload = msg.reload;
|
||||
if (msg.reload) {
|
||||
setTimeout(() => {
|
||||
commsNot.remove();
|
||||
socket.close(1000, "bye");
|
||||
location.reload();
|
||||
}, 1500);
|
||||
|
||||
}
|
||||
} else if (msg.SC != null) {
|
||||
stateSC = msg.SC;
|
||||
} else {
|
||||
commsLog.innerHTML = htmlEscape(event.data);
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
function updateMessage() {
|
||||
function disable() {
|
||||
commsNot.classList.remove("red");
|
||||
commsNot.classList.remove("loading");
|
||||
commsNot.classList.remove("green");
|
||||
}
|
||||
function enable() {
|
||||
|
||||
}
|
||||
|
||||
if (!socket) {
|
||||
disable();
|
||||
} else {
|
||||
switch (socket.readyState) {
|
||||
case WebSocket.CLOSED:
|
||||
commsLog.innerHTML = "Keine Verbindung";
|
||||
disable();
|
||||
break;
|
||||
case WebSocket.CLOSING:
|
||||
commsLog.innerHTML = "Verbindung wird geschlossen...";
|
||||
disable();
|
||||
break;
|
||||
case WebSocket.CONNECTING:
|
||||
commsLog.innerHTML = "Verbinden...";
|
||||
disable();
|
||||
break;
|
||||
case WebSocket.OPEN:
|
||||
commsLog.innerHTML = "";
|
||||
// TODO: decide on state what the message is
|
||||
if (stateValidation == 0 ) {
|
||||
commsLog.innerHTML = 'Der angezeigte Stand ist nicht aktuell. ' +
|
||||
'<a href="/Admin">Fehler beheben</a>';
|
||||
if (!firstMessage) commsNot.classList.add("imp");
|
||||
} else if (stateValidation == 1) {
|
||||
commsLog.innerHTML = "Der Server arbeitet...";
|
||||
} else {
|
||||
if (stateCommit != null) {
|
||||
commsLog.innerHTML = "commit " +
|
||||
stateCommit.Commit.substring(0, 7) +
|
||||
" geladen"
|
||||
} else {
|
||||
commsLog.innerHTML = "OK.";
|
||||
}
|
||||
}
|
||||
firstMessage = false;
|
||||
enable();
|
||||
break;
|
||||
default:
|
||||
commsLog.innerHTML = "Unknown WebSocket State: " + htmlEscape(socket.readyState);
|
||||
disable();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// closeButton.onclick = function () {
|
||||
// if (!socket || socket.readyState !== WebSocket.OPEN) {
|
||||
// alert("socket not connected");
|
||||
// }
|
||||
// socket.close(1000, "Closing from client");
|
||||
// };
|
||||
|
||||
// sendButton.onclick = function () {
|
||||
// if (!socket || socket.readyState !== WebSocket.OPEN) {
|
||||
// alert("socket not connected");
|
||||
// }
|
||||
// var data = sendMessage.value;
|
||||
// socket.send(data);
|
||||
// commsLog.innerHTML += '<tr>' +
|
||||
// '<td class="commslog-client">Client</td>' +
|
||||
// '<td class="commslog-server">Server</td>' +
|
||||
// '<td class="commslog-data">' + htmlEscape(data) + '</td></tr>';
|
||||
// };
|
||||
|
||||
Reference in New Issue
Block a user