From e66d62fd67fffb34c60047db98354eb98c75bc21 Mon Sep 17 00:00:00 2001 From: Bastian Dehn Date: Sun, 23 Jun 2024 16:53:18 +0200 Subject: [PATCH] add viewer with color --- src/xmlviewer/viewer.html | 38 ++++++++++++++++++++++++++++++++++---- 1 file changed, 34 insertions(+), 4 deletions(-) diff --git a/src/xmlviewer/viewer.html b/src/xmlviewer/viewer.html index 020d972..97cb679 100644 --- a/src/xmlviewer/viewer.html +++ b/src/xmlviewer/viewer.html @@ -18,6 +18,15 @@ padding: 1rem; text-align: left; } + .red { + background-color: darksalmon; + } + .yellow { + background-color: lemonchiffon; + } + .green { + background-color: lightgreen; + } @@ -37,10 +46,14 @@ divElement.innerText = `Anfangssaldo: ${rootNode.getAttribute("anfangssaldo")}` element.append(divElement); - const count = rootNode.childElementCount; const tableElement = document.createElement("table"); + const MAX_OVERDAYS = 7.5; let trElement; let tdElement; + let saldo; + let timeArray; + let maxWorktime; + let quota; trElement = document.createElement("tr"); @@ -78,11 +91,28 @@ 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"); + if (quota >= 1) + trElement.classList.add("red"); + else if (quota >= 0.66) + trElement.classList.add("yellow"); + else if (quota >= -0.66) + trElement.classList.add("green"); + else if (quota <= -0.66) + trElement.classList.add("yellow"); + else if (quota <= -1) + trElement.classList.add("red"); tdElement = document.createElement("td"); tdElement.innerText = rootNode.children[i].getAttribute("wochentag"); -- 2.39.5