aboutsummaryrefslogtreecommitdiff
path: root/index.html
blob: 51b8a13aa9645f9ca4550d5090d0193f583ffa01 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
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>