aboutsummaryrefslogtreecommitdiff
path: root/src/gnunet/service/zonemaster/gui.htpl
blob: ffa9720683c8073cccacb28bc1d3ed5bc440f7f1 (plain) (blame)
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
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
{{define "main"}}
<!doctype html>
<html lang="en">
    <head>
        <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
        {{template "css"}}
    </head>
    <body>
        <h1>GNUnet Zone Master</h1>
        <hr/>
        {{.}}
        <script>
            function notify(msg) {
                if ('Notification' in window) {
                    if (Notification.permission !== 'denied') {
                        Notification.requestPermission(function (permission) {
                            if (permission === 'granted') {
                                var note = new Notification('GNUnet Zone Master', {
                                    body: msg,
                                    actions: []
                                });
                            }
                        });
                    }
                }
            }
        </script>
    </body>
</html>
{{end}}

{{define "dashboard"}}
<div>
    <ul id="dashboard">
    {{if .}}
        {{range $zi, $zone := .}}
        <li>
            {{$z := $zone.Zone}}
            <span class="caret"><b>{{$z.Name}}</b></span> [{{keytype $z.Key.Type}}: {{$zone.PubID}}]
            <a href="/edit/zone/{{$z.ID}}" title="Edit zone"><button class="icon blue">&#9998;</button></a>
            <a href="/del/zone/{{$z.ID}}" title="Remove zone"><button class="icon red">&#10006;</button></a>
            (Created: {{date $z.Created}}, Modified: {{date $z.Modified}})
            <ul class="nested">
            {{if $zone.Labels}}
                {{range $li, $label := $zone.Labels}}
                <li>
                    {{$l := $label.Label}}
                    <span class="caret"><b>{{$l.Name}}</b></span>
                    <a href="/edit/label/{{$l.ID}}" title="Edit label"><button class="icon blue">&#9998;</button></a>
                    <a href="/del/label/{{$l.ID}}" title="Remove label"><button class="icon red">&#10006;</button></a>
                    (Created: {{date $l.Created}}, Modified: {{date $l.Modified}})
                    <ul class="nested">
                    {{if $label.Records}}
                        <li>
                            <table class="rowed">
                                <tr class="header">
                                    <th>Type</th>
                                    <th>Value</th>
                                    <th>Flags</th>
                                    <th>Expires</th>
                                    <th>Created</th>
                                    <th>Modified</th>
                                    <th>Actions</th>
                                </tr>
                                {{range $ri, $rec := $label.Records}}
                                <tr class="row">
                                    <td>{{rrtype $rec.RType}}</td>
                                    <td>{{rrdata $rec.RType $rec.Data}}</td>
                                    <td>{{rrflags $rec.Flags}}</td>
                                    <td>{{date $rec.Expire}}</td>
                                    <td>{{date $rec.Created}}</td>
                                    <td>{{date $rec.Modified}}</td>
                                    <td>
                                        <a href="/edit/rr/{{$rec.ID}}" title="Edit record"><button class="icon blue">&#9998;</button></a>
                                        <a href="/del/rr/{{$rec.ID}}" title="Remove record"><button class="icon red">&#10006;</button></a>
                                    </td>
                                </tr>
                                {{end}}
                            </table>
                        </li>
                    {{else}}
                        <li><h3>No resource records for label defined yet.</h3></li>
                    {{end}}
                        <li>
                            <a href="/new/rr/{{$l.ID}}" title="Add new record..."><button class="icon blue">&#10010;</button></a>
                        </li>
                    </ul>
                </li>
                {{end}}
            {{else}}
                <li><h3>No labels for zone defined yet.</h3></li>
            {{end}}
                <li>
                    <a href="/new/label/{{$z.ID}}" title="Add new label..."><button class="icon blue">&#10010;</button></a>
                </li>
            </ul>
        </li>
        {{end}}
    {{else}}
        <li>
            <h3>No zones defined yet.</h3>
        </li>
    {{end}}
        <li>
            <a href="/new/zone/0" title="Add new zone..."><button class="icon blue">&#10010;</button></a>
        </li>
    </ul>
</div>
<script>
    var toggler = document.getElementsByClassName("caret");
    for (var i = 0; i < toggler.length; i++) {
        toggler[i].addEventListener("click", function() {
            this.parentElement.querySelector(".nested").classList.toggle("active");
            this.classList.toggle("caret-down");
        });
    }

    for (var i = 0; i < toggler.length; i++) {
        if (localStorage.getItem("t"+i) == "true") {
            toggler[i].parentElement.querySelector(".nested").classList.toggle("active");
            toggler[i].classList.toggle("caret-down");
        }
    }
    document.documentElement.scrollTop = document.body.scrollTop = localStorage.getItem("top");

    window.addEventListener('beforeunload', function (e) {
        for (var i = 0; i < toggler.length; i++) {
            localStorage.setItem("t"+i, toggler[i].classList.contains("caret-down"));
        }
        localStorage.setItem("top", window.pageYOffset || document.documentElement.scrollTop);
    });
</script>
{{end}}