aboutsummaryrefslogtreecommitdiff
path: root/index.html
diff options
context:
space:
mode:
Diffstat (limited to 'index.html')
-rw-r--r--index.html112
1 files changed, 112 insertions, 0 deletions
diff --git a/index.html b/index.html
new file mode 100644
index 0000000..51b8a13
--- /dev/null
+++ b/index.html
@@ -0,0 +1,112 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset="UTF-8" />
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+ <title>Tickets</title>
+
+ <style>
+@media (prefers-color-scheme: dark) {
+ body {
+ background-color: #333333;
+ color: white;
+ }
+}
+
+body {
+ font-size: x-large;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ flex-direction: column;
+}
+
+@media (min-width: 600px) {
+ body {
+ max-width: 1600px;
+ }
+}
+
+button {
+ margin-top: 1em;
+}
+ </style>
+
+ <script>
+ /*
+ @licstart The following is the entire license notice for the
+ JavaScript code in this page.
+
+ Copyright (C) 2026 Florian Fischer
+
+ The JavaScript code in this page is free software: you can
+ redistribute it and/or modify it under the terms of the GNU
+ General Public License (GNU GPL) as published by the Free Software
+ Foundation, either version 3 of the License, or (at your option)
+ any later version. The code is distributed WITHOUT ANY WARRANTY;
+ without even the implied warranty of MERCHANTABILITY or FITNESS
+ FOR A PARTICULAR PURPOSE. See the GNU GPL for more details.
+
+ As additional permission under GNU GPL version 3 section 7, you
+ may distribute non-source (e.g., minimized or compacted) forms of
+ that code without the copy of the GNU GPL normally required by
+ section 4, provided you include this license notice and a URL
+ through which recipients can access the Corresponding Source.
+
+
+ @licend The above is the entire license notice
+ for the JavaScript code in this page.
+ */
+ </script>
+
+ <script>
+ let HttpClient = function() {
+ function newRequest(callback) {
+ let request = new XMLHttpRequest();
+ request.onreadystatechange = function() {
+ if (request.readyState == 4 && request.status == 200)
+ callback(request.responseText);
+ }
+ return request;
+ }
+
+ this.get = function(url, callback) {
+ let request = newRequest(callback);
+ request.open("GET", url, true);
+ request.send(null);
+ }
+ }
+
+ function requestHelp() {
+ new HttpClient().get("new", (myNumber) => {
+ let helpDiv = document.getElementById("help");
+ while(helpDiv.firstChild) { helpDiv.removeChild(helpDiv.firstChild); }
+ let ticketText = document.createElement("text");
+ ticketText.innerHTML = "Deine Nummer: ";
+ let ticketSpan = document.createElement("span");
+ ticketSpan.innerHTML = myNumber;
+ helpDiv.appendChild(ticketText);
+ helpDiv.appendChild(ticketSpan);
+ });
+ }
+
+ function finishHelp() {
+ new HttpClient().get("done", () => { location.reload(); } );
+ }
+ </script>
+ </head>
+ <body>
+ <div id="next">
+ Nächstes Hilfe Ticket
+ <span id="done">{{.Done}}</span>
+ </div>
+
+ {{if .IsAdmin}}
+ <button id="doneButton" onclick="finishHelp()">Done</button>
+ {{else}}
+ <div id="help">
+ <button id="hilfeButton" onclick="requestHelp()">Ich brauche Hilfe!</button>
+ </div>
+ {{end}}
+ </body>
+</html>