aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorÖzgür Kesim <oec@codeblau.de>2023-12-27 03:16:48 +0100
committerÖzgür Kesim <oec@codeblau.de>2023-12-27 03:16:48 +0100
commitc8df59722c75f298eaebe64288146482e607594d (patch)
tree4f5127d920db9b4ace8c2e7cdbead67e344c543a
parent1b14856bba10bb16fa34cab02b4ddebf7ea886f0 (diff)
update README et al.
-rw-r--r--README.md47
-rw-r--r--main.go2
-rw-r--r--table.tmpl97
3 files changed, 145 insertions, 1 deletions
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..a8cf50f
--- /dev/null
+++ b/README.md
@@ -0,0 +1,47 @@
+# taler-dashboard
+
+A dashboard for the GNU Taler project, giving an overview about the state of the
+development.
+
+This is **alpha** software.
+
+It is written in go and compiles into a standalone program with all templates as embedded
+components.
+
+## Compilation
+
+To compile, you need the latest version of [https://go.dev](the go programming language)
+
+Then, simple download the code from this repository and compile it:
+
+```
+git clone https://git.kesim.org/taler/taler-dashboard
+cd taler-dashboard
+go build
+```
+
+## Mantis API-Token
+
+You need an API-token to be able to access the REST-API of https://bugs.taler.net.
+The token can be provided via the environment variable `MANTIS_API_TOKEN` or at
+the commandline.
+
+## Execution
+
+
+```
+Usage of ./taler-dashboard:
+ -min string
+ minimum version we care for (default "0.9.3")
+ -num int
+ number of issues to retrieve at once (default 100)
+ -port string
+ [ip]:port to serve (default ":8080")
+ -token string
+ API-Token (default "")
+ -url string
+ URL to the issues (default "https://bugs.gnunet.org/api/rest/issues")
+```
+
+**Note**: We assume that this service runs behind a reverse-proxy which deals
+and terminates TLS.
diff --git a/main.go b/main.go
index f93cbda..9c4030f 100644
--- a/main.go
+++ b/main.go
@@ -15,7 +15,7 @@ var (
fl_token = flag.String("token", os.Getenv("MANTIS_API_TOKEN"), "API-Token")
fl_port = flag.String("port", ":8080", "[ip]:port to serve")
fl_num = flag.Int("num", 100, "number of issues to retrieve at once")
- fl_min = flag.String("min", "0.9.3", "minimum version for data")
+ fl_min = flag.String("min", "0.9.3", "minimum version we care for")
)
func main() {
diff --git a/table.tmpl b/table.tmpl
new file mode 100644
index 0000000..cc715fb
--- /dev/null
+++ b/table.tmpl
@@ -0,0 +1,97 @@
+
+<html>
+ <head><title>GNU Taler Dashboard</title></head>
+<style>
+body {
+ margin-left:1%;
+ margin-right:1%;
+ font-family:sans-serif;
+}
+table {
+ background: white;
+ border-collapse: collapse;
+}
+th, td {
+ padding: 8px;
+ border-bottom: 1px solid #ddd;
+ border-right: 1px solid #ddd;
+}
+td {
+ min-width: 10em;
+}
+th.side {
+ color: brown;
+ text-align: right;
+}
+tr:hover {
+ background: #efe;
+}
+.normal {
+ font-weight: normal;
+}
+.data {
+ background: #cde;
+ border-radius: 5px;
+ padding: 8px;
+}
+details {
+ max-width: 30em;
+ overflow-x: auto;
+ white-space: nowrap;
+ text-overflow: ellipsis;
+}
+.over {
+ white-space: nowrap;
+ text-overflow: ellipsis;
+}
+</style>
+ <body>
+ <h1>GNU Taler Dashboard</h1>
+ <a href="/list">List view</a>
+ <h2>Table View</h2>
+ Data from {{ .Timestamp.Format "02 Jan 06 15:04 MST"}}
+ {{ with .Lasterror }}, Last error: {{ . }} {{end}}
+
+ {{ $issues := .Issues }}
+ <p>
+ {{ range $issues.Tags }}
+ <button>{{ . }}</button>
+ {{ end }}
+ </p>
+
+ <table>
+ <tr>
+ <th class="side"></th>
+ {{ range $issues.TargetVersions }}
+ <th>
+ <details>
+ <summary>{{ . }}</summary>
+ <div class="normal">
+ TODO: more
+ </div>
+ </details>
+ </th>
+ {{ end }}
+ </tr>
+ {{ range $cat := $issues.Categories }}
+ <tr>
+ <th class="side">{{ . }}</th>
+ {{ range $tar := $issues.TargetVersions }}
+ <td>
+ {{ with $issues.ByCategoryAndTarget $cat $tar }}
+ <details class="data">
+ <summary>{{ $l := len .}} {{ if lt 1 $l }} {{ $l }} issues {{ else }} 1 issue {{ end }} </summary>
+ {{ range . }}
+ <a href="https://bugs.gnunet.org/view.php?id={{.Id}}" target="_blank">{{.Id}}</a> {{.Summary}}<br>
+ {{ end }}
+ </details>
+ {{ end }}
+ </td>
+ {{ end }}
+ </tr>
+ {{ end }}
+ </table>
+
+ <i>end of dashboard</i>
+ </body>
+</html>