]> gitweb.hhaalo.de Git - feierabend.git/commitdiff
js seperated from html
authorBastian Dehn <hhaalo@arcor.de>
Sun, 30 Jun 2024 08:00:00 +0000 (10:00 +0200)
committerBastian Dehn <hhaalo@arcor.de>
Sun, 30 Jun 2024 08:00:00 +0000 (10:00 +0200)
src/xmlviewer/viewer.html
src/xmlviewer/viewer.js [new file with mode: 0644]

index b93c5360db15b62fd130031c6b0d61b4d2ab1556..1b4088eac80c1e78836cbec5fceea772d5d56c8c 100644 (file)
                <meta http-equiv="content-type" content="text/html; charset=UTF-8">
                <meta name="viewport" content="width=device-width, initial-scale=1.0">
                <link rel="stylesheet" type="text/css" href="viewer.css">
+               <script src="viewer.js"></script>
        </head>
        <body>
                <main>
-                       <script>
-                               function addColorClass(element, quota) {
-                                       if (quota >= 1)
-                                               element.classList.add("red");
-                                       else if (quota >= 0.666666667)
-                                               element.classList.add("yellow");
-                                       else if (quota >= -0.666666667)
-                                               element.classList.add("green");
-                                       else if (quota <= -0.666666667)
-                                               element.classList.add("yellow");
-                                       else if (quota <= -1)
-                                               element.classList.add("red");
-                               }
-
-                               function loadFile() {
-                                       const fileinput = document.getElementById("filepath");
-                                       const element = document.getElementById("content");
-                                       element.innerHTML = '';
-                                       const filereader = new FileReader();
-                                       filereader.onload = data => {
-                                               const parser = new DOMParser();
-                                               const xmldoc = parser.parseFromString(data.target.result, "text/xml");
-
-                                               const rootNode = xmldoc.children[0]
-
-                                               const tableElement = document.createElement("table");
-                                               const MAX_OVERDAYS = 7.5;
-                                               let trElement;
-                                               let tdElement;
-                                               let saldo;
-                                               let timeArray;
-                                               let maxWorktime;
-                                               let quota;
-
-                                               const captionElement = document.createElement("caption");
-                                               captionElement.innerText = `Zeitkonto - Anfangssaldo: ${rootNode.getAttribute("anfangssaldo")}`
-                                               tableElement.append(captionElement);
-
-                                               trElement = document.createElement("tr");
-
-                                               tdElement = document.createElement("th");
-                                               tdElement.setAttribute("colspan", 2);
-                                               tdElement.innerText = "Datum";
-                                               trElement.append(tdElement);
-
-                                               tdElement = document.createElement("th");
-                                               tdElement.innerText = "Anfang"
-                                               trElement.append(tdElement);
-
-                                               tdElement = document.createElement("th");
-                                               tdElement.innerText = "Ende";
-                                               trElement.append(tdElement);
-
-                                               tdElement = document.createElement("th");
-                                               tdElement.innerText = "Pause";
-                                               trElement.append(tdElement);
-
-                                               tdElement = document.createElement("th");
-                                               tdElement.innerText = "Soll";
-                                               trElement.append(tdElement);
-
-                                               tdElement = document.createElement("th");
-                                               tdElement.innerText = "Ist";
-                                               trElement.append(tdElement);
-
-                                               tdElement = document.createElement("th");
-                                               tdElement.innerText = "Stunden";
-                                               trElement.append(tdElement);
-
-                                               tdElement = document.createElement("th");
-                                               tdElement.innerText = "Saldo";
-                                               trElement.append(tdElement);
-
-                                               tableElement.append(trElement)
-                                               const count = rootNode.childElementCount;
-                                               for (let i = 0; i < count; i++) {
-                                                       timeArray = rootNode.children[i].getAttribute("sollarbeitszeit").split(":");
-                                                       maxWorktime = timeArray[0] * 3600;
-                                                       maxWorktime += timeArray[1] * 60;
-                                                       maxWorktime *= MAX_OVERDAYS;
-                                                       timeArray = rootNode.children[i].getAttribute("saldo").split(":");
-                                                       saldo = timeArray[0] * 3600;
-                                                       saldo += timeArray[1] * 60;
-                                                       quota = saldo / maxWorktime;
-
-                                                       trElement = document.createElement("tr");
-
-                                                       tdElement = document.createElement("td");
-                                                       tdElement.setAttribute("data-cell", "Wochentag");
-                                                       tdElement.innerText = rootNode.children[i].getAttribute("wochentag");
-                                                       addColorClass(tdElement, quota);
-                                                       trElement.append(tdElement);
-
-                                                       tdElement = document.createElement("td");
-                                                       tdElement.setAttribute("data-cell", "Datum");
-                                                       tdElement.innerText = rootNode.children[i].getAttribute("datum");
-                                                       addColorClass(tdElement, quota);
-                                                       trElement.append(tdElement);
-
-                                                       tdElement = document.createElement("td");
-                                                       tdElement.setAttribute("data-cell", "Anfang");
-                                                       tdElement.innerText = rootNode.children[i].getAttribute("begin");
-                                                       addColorClass(tdElement, quota);
-                                                       trElement.append(tdElement);
-
-                                                       tdElement = document.createElement("td");
-                                                       tdElement.setAttribute("data-cell", "Ende");
-                                                       tdElement.innerText = rootNode.children[i].getAttribute("ende");
-                                                       addColorClass(tdElement, quota);
-                                                       trElement.append(tdElement);
-
-                                                       tdElement = document.createElement("td");
-                                                       tdElement.setAttribute("data-cell", "Pause");
-                                                       tdElement.innerText = rootNode.children[i].getAttribute("pause");
-                                                       addColorClass(tdElement, quota);
-                                                       trElement.append(tdElement);
-
-                                                       tdElement = document.createElement("td");
-                                                       tdElement.setAttribute("data-cell", "Soll");
-                                                       tdElement.innerText = rootNode.children[i].getAttribute("sollarbeitszeit");
-                                                       addColorClass(tdElement, quota);
-                                                       trElement.append(tdElement);
-
-                                                       tdElement = document.createElement("td");
-                                                       tdElement.setAttribute("data-cell", "Ist");
-                                                       tdElement.innerText = rootNode.children[i].getAttribute("arbeitszeit");
-                                                       addColorClass(tdElement, quota);
-                                                       trElement.append(tdElement);
-
-                                                       tdElement = document.createElement("td");
-                                                       tdElement.setAttribute("data-cell", "Stunden");
-                                                       tdElement.innerText = rootNode.children[i].getAttribute("stunden");
-                                                       addColorClass(tdElement, quota);
-                                                       trElement.append(tdElement);
-
-                                                       tdElement = document.createElement("td");
-                                                       tdElement.setAttribute("data-cell", "Saldo");
-                                                       tdElement.innerText = rootNode.children[i].getAttribute("saldo");
-                                                       addColorClass(tdElement, quota);
-                                                       trElement.append(tdElement);
-
-                                                       tableElement.append(trElement)
-                                               }
-
-                                               element.append(tableElement);
-                                       };
-                                       filereader.readAsText(fileinput.files[0]);
-                               }
-                       </script>
                        <div class="fileinput">
                                <label>Zeitkonto-Datei: </label>
                                <input onchange="loadFile()" type="file" id="filepath" name="file">
diff --git a/src/xmlviewer/viewer.js b/src/xmlviewer/viewer.js
new file mode 100644 (file)
index 0000000..6ee8dc0
--- /dev/null
@@ -0,0 +1,147 @@
+function addColorClass(element, quota) {
+       if (quota >= 1)
+               element.classList.add("red");
+       else if (quota >= 0.666666667)
+               element.classList.add("yellow");
+       else if (quota >= -0.666666667)
+               element.classList.add("green");
+       else if (quota <= -0.666666667)
+               element.classList.add("yellow");
+       else if (quota <= -1)
+               element.classList.add("red");
+}
+
+function loadFile() {
+       const fileinput = document.getElementById("filepath");
+       const element = document.getElementById("content");
+       element.innerHTML = '';
+       const filereader = new FileReader();
+       filereader.onload = data => {
+               const parser = new DOMParser();
+               const xmldoc = parser.parseFromString(data.target.result, "text/xml");
+
+               const rootNode = xmldoc.children[0]
+
+               const tableElement = document.createElement("table");
+               const MAX_OVERDAYS = 7.5;
+               let trElement;
+               let tdElement;
+               let saldo;
+               let timeArray;
+               let maxWorktime;
+               let quota;
+
+               const captionElement = document.createElement("caption");
+               captionElement.innerText = `Zeitkonto - Anfangssaldo: ${rootNode.getAttribute("anfangssaldo")}`
+               tableElement.append(captionElement);
+
+               trElement = document.createElement("tr");
+
+               tdElement = document.createElement("th");
+               tdElement.setAttribute("colspan", 2);
+               tdElement.innerText = "Datum";
+               trElement.append(tdElement);
+
+               tdElement = document.createElement("th");
+               tdElement.innerText = "Anfang"
+               trElement.append(tdElement);
+
+               tdElement = document.createElement("th");
+               tdElement.innerText = "Ende";
+               trElement.append(tdElement);
+
+               tdElement = document.createElement("th");
+               tdElement.innerText = "Pause";
+               trElement.append(tdElement);
+
+               tdElement = document.createElement("th");
+               tdElement.innerText = "Soll";
+               trElement.append(tdElement);
+
+               tdElement = document.createElement("th");
+               tdElement.innerText = "Ist";
+               trElement.append(tdElement);
+
+               tdElement = document.createElement("th");
+               tdElement.innerText = "Stunden";
+               trElement.append(tdElement);
+
+               tdElement = document.createElement("th");
+               tdElement.innerText = "Saldo";
+               trElement.append(tdElement);
+
+               tableElement.append(trElement)
+               const count = rootNode.childElementCount;
+               for (let i = 0; i < count; i++) {
+                       timeArray = rootNode.children[i].getAttribute("sollarbeitszeit").split(":");
+                       maxWorktime = timeArray[0] * 3600;
+                       maxWorktime += timeArray[1] * 60;
+                       maxWorktime *= MAX_OVERDAYS;
+                       timeArray = rootNode.children[i].getAttribute("saldo").split(":");
+                       saldo = timeArray[0] * 3600;
+                       saldo += timeArray[1] * 60;
+                       quota = saldo / maxWorktime;
+
+                       trElement = document.createElement("tr");
+
+                       tdElement = document.createElement("td");
+                       tdElement.setAttribute("data-cell", "Wochentag");
+                       tdElement.innerText = rootNode.children[i].getAttribute("wochentag");
+                       addColorClass(tdElement, quota);
+                       trElement.append(tdElement);
+
+                       tdElement = document.createElement("td");
+                       tdElement.setAttribute("data-cell", "Datum");
+                       tdElement.innerText = rootNode.children[i].getAttribute("datum");
+                       addColorClass(tdElement, quota);
+                       trElement.append(tdElement);
+
+                       tdElement = document.createElement("td");
+                       tdElement.setAttribute("data-cell", "Anfang");
+                       tdElement.innerText = rootNode.children[i].getAttribute("begin");
+                       addColorClass(tdElement, quota);
+                       trElement.append(tdElement);
+
+                       tdElement = document.createElement("td");
+                       tdElement.setAttribute("data-cell", "Ende");
+                       tdElement.innerText = rootNode.children[i].getAttribute("ende");
+                       addColorClass(tdElement, quota);
+                       trElement.append(tdElement);
+
+                       tdElement = document.createElement("td");
+                       tdElement.setAttribute("data-cell", "Pause");
+                       tdElement.innerText = rootNode.children[i].getAttribute("pause");
+                       addColorClass(tdElement, quota);
+                       trElement.append(tdElement);
+
+                       tdElement = document.createElement("td");
+                       tdElement.setAttribute("data-cell", "Soll");
+                       tdElement.innerText = rootNode.children[i].getAttribute("sollarbeitszeit");
+                       addColorClass(tdElement, quota);
+                       trElement.append(tdElement);
+
+                       tdElement = document.createElement("td");
+                       tdElement.setAttribute("data-cell", "Ist");
+                       tdElement.innerText = rootNode.children[i].getAttribute("arbeitszeit");
+                       addColorClass(tdElement, quota);
+                       trElement.append(tdElement);
+
+                       tdElement = document.createElement("td");
+                       tdElement.setAttribute("data-cell", "Stunden");
+                       tdElement.innerText = rootNode.children[i].getAttribute("stunden");
+                       addColorClass(tdElement, quota);
+                       trElement.append(tdElement);
+
+                       tdElement = document.createElement("td");
+                       tdElement.setAttribute("data-cell", "Saldo");
+                       tdElement.innerText = rootNode.children[i].getAttribute("saldo");
+                       addColorClass(tdElement, quota);
+                       trElement.append(tdElement);
+
+                       tableElement.append(trElement)
+               }
+
+               element.append(tableElement);
+       };
+       filereader.readAsText(fileinput.files[0]);
+}
\ No newline at end of file