Dashboard

master
Caj Larsson 3 years ago
parent 6736229185
commit 630f9220f3

@ -123,6 +123,10 @@ func (s SwampFileService) OpenOutFile(ref swampfile.FileReference) (swampfile.Sw
return f, nil return f, nil
} }
func (s SwampFileService) NamespaceStats() ([]namespace.Namespace, error) {
return s.namespace_repo.All()
}
func (s SwampFileService) CleanUpExpiredFiles() error { func (s SwampFileService) CleanUpExpiredFiles() error {
s.logger.Info("Cleaning up expired files") s.logger.Info("Cleaning up expired files")
nss, err := s.namespace_repo.All() nss, err := s.namespace_repo.All()

@ -6,9 +6,9 @@ import (
"caj-larsson/bog/dataswamp/swampfile" "caj-larsson/bog/dataswamp/swampfile"
fs_swampfile "caj-larsson/bog/infrastructure/fs/swampfile" fs_swampfile "caj-larsson/bog/infrastructure/fs/swampfile"
sql_namespace "caj-larsson/bog/infrastructure/sqlite/namespace" sql_namespace "caj-larsson/bog/infrastructure/sqlite/namespace"
"fmt"
"net/http" "net/http"
"strconv" "strconv"
"text/template"
"time" "time"
) )
@ -41,7 +41,18 @@ func buildNamespaceRepository(config DatabaseConfig) namespace.Repository {
func (b *Bog) fileHandler(w http.ResponseWriter, r *http.Request) { func (b *Bog) fileHandler(w http.ResponseWriter, r *http.Request) {
if r.URL.Path == "/" { if r.URL.Path == "/" {
fmt.Fprintf(w, "Hi") templ, err := template.ParseFiles("server/views/dashboard.html")
if err != nil {
panic(err)
}
stats, _ := b.file_service.NamespaceStats()
err = templ.Execute(w, stats)
if err != nil {
panic(err)
}
return return
} }
ref := swampfile.FileReference{r.URL.Path, r.Header["User-Agent"][0]} ref := swampfile.FileReference{r.URL.Path, r.Header["User-Agent"][0]}

@ -0,0 +1,33 @@
<!DOCTYPE html>
<html>
<head>
<title>bog</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous">
</head>
<body>
<table class="table">
<thead>
<tr>
<th scope="col">Name</th>
<th scope="col">Last Seen</th>
<th scope="col">Quota</th>
<th scope="col">Usage</th>
<th scope="col">Download</th>
<th scope="col">Upload</th>
</tr>
</thead>
<tbody>
{{ range . }}
<tr>
<td>{{ .Name }}</td>
<td>{{ .LastSeen }} - {{ .AllowanceDuration }}</td>
<td>{{ .FileQuota.CurrentUsage }}/{{ .FileQuota.AllowanceKB}} B</td>
<td>{{ .Usage.SizeB }}B - {{ .Usage.Num }} </td>
<td>{{ .Download.SizeB }}B - {{ .Download.Num }} </td>
<td>{{ .Upload.SizeB }}B - {{ .Upload.Num }} </td>
</tr>
{{ end }}
</tbody>
</table>
</body>
</html>
Loading…
Cancel
Save