diff options
| -rw-r--r-- | main.go | 10 | ||||
| -rw-r--r-- | static/style.scss | 11 | ||||
| -rw-r--r-- | templates/admin/users.html | 4 | ||||
| -rw-r--r-- | templates/createuser.html | 4 | ||||
| -rw-r--r-- | templates/imgs.html | 20 | ||||
| -rw-r--r-- | templates/imgs_page.html | 10 | ||||
| -rw-r--r-- | templates/login.html | 4 | ||||
| -rw-r--r-- | templates/nav_logged.html | 13 | ||||
| -rw-r--r-- | templates/user.html | 16 |
9 files changed, 58 insertions, 34 deletions
@@ -96,7 +96,15 @@ func decrypt(b []byte) ([]byte, error) { func serveTemplate(w http.ResponseWriter, r *http.Request, data interface{}, view ...string) { var nav string = "templates/nav.html" + d := struct { + Data interface{} + User *User + } { + data, + nil, + } if u, err := checkSession(w, r); u != nil && err == nil { + d.User = u nav = "templates/nav_logged.html" } views := []string {"templates/base.html", nav} @@ -105,7 +113,7 @@ func serveTemplate(w http.ResponseWriter, r *http.Request, data interface{}, vie if err != nil { log.Fatal(err) } - if err := t.Execute(w, data); err != nil { + if err := t.Execute(w, d); err != nil { log.Fatal(err) } } diff --git a/static/style.scss b/static/style.scss index ca1fdfb..8ca7110 100644 --- a/static/style.scss +++ b/static/style.scss @@ -34,6 +34,10 @@ ul.navlogged { @extend %navlist; } +ul.navloggedadmin { + @extend %navlist; +} + %navitem { display: inline-block; /*padding: 5px; @@ -62,7 +66,12 @@ ul.nav li { ul.navlogged li { @extend %navitem; - width: calc(100% - 33%); + width: calc(100% / 3); +} + +ul.navloggedadmin li { + @extend %navitem; + width: calc(100% / 4); } div.docs { diff --git a/templates/admin/users.html b/templates/admin/users.html index 74ca976..9aedf44 100644 --- a/templates/admin/users.html +++ b/templates/admin/users.html @@ -3,9 +3,9 @@ <h1>User list</h1> <div> <ul> - {{range .Users}} + {{range .Data.Users}} <li> - id: {{.Id}}, user: {{.User}}, email: <a href="mailto:{{.Email}}">{{.Email}}</a> pass: {{.Pass}} + id: {{.Id}}, user: <a href="/?user={{.Username}}">{{.Username}}</a>, email: <a href="mailto:{{.Email}}">{{.Email}}</a> pass: {{.Pass}} </li> {{end}} </ul> diff --git a/templates/createuser.html b/templates/createuser.html index 92a1b22..aa00ee3 100644 --- a/templates/createuser.html +++ b/templates/createuser.html @@ -1,8 +1,8 @@ {{define "title"}}Créer un compte utilisateur{{end}} {{define "content"}} <h1>Créer un compte utilisateur</h1> -{{if .Error}} -<p class="error">{{.Error}}</p> +{{if .Data.Error}} +<p class="error">{{.Data.Error}}</p> {{end}} <form action="/createuser" method="POST"> <span>Pour des raisons de sécurité, le mot de passe doit avoir une longeur supérieure ou égale à 10 caractères.<br/><br/> diff --git a/templates/imgs.html b/templates/imgs.html index 51b489d..edbb0fd 100644 --- a/templates/imgs.html +++ b/templates/imgs.html @@ -3,23 +3,23 @@ <h1>Images</h1> {{template "imgspage" .}} <noscript> - {{if ne .Page 0}} - {{if ne .UserImpersonation ""}} - <a href="/imgs?page={{add .Page -1}}&user={{.UserImpersonation}}">Previous page</a> + {{if ne .Data.Page 0}} + {{if ne .Data.UserImpersonation ""}} + <a href="/imgs?page={{add .Data.Page -1}}&user={{.UserImpersonation}}">Previous page</a> {{else}} - <a href="/imgs?page={{add .Page -1}}">Previous page</a> + <a href="/imgs?page={{add .Data.Page -1}}">Previous page</a> {{end}} - {{if lt .End .NbFiles}} + {{if lt .Data.End .Data.NbFiles}} | {{end}} {{end}} - {{if lt .End .NbFiles}} - {{if ne .UserImpersonation ""}} - <a href="/imgs?page={{add .Page 1}}&user={{.UserImpersonation}}">Next page</a> + {{if lt .Data.End .Data.NbFiles}} + {{if ne .Data.UserImpersonation ""}} + <a href="/imgs?page={{add .Data.Page 1}}&user={{.Data.UserImpersonation}}">Next page</a> {{else}} - <a href="/imgs?page={{add .Page 1}}">Next page</a> + <a href="/imgs?page={{add .Data.Page 1}}">Next page</a> {{end}} {{end}} </noscript> - <br/><span>{{.NbFiles}} images</span> + <br/><span>{{.Data.NbFiles}} images</span> {{end}} diff --git a/templates/imgs_page.html b/templates/imgs_page.html index 3f1ce58..3aa6bfa 100644 --- a/templates/imgs_page.html +++ b/templates/imgs_page.html @@ -1,12 +1,12 @@ {{define "imgspage"}} -{{range $i, $img := .Imgs}} - {{if eq (add $i $.Start) $.End}} - {{if ne $.UserImpersonation ""}} - <div hx-get="/imgs?page={{add $.Page 1}}&fragment&user={{$.UserImpersonation}}" +{{range $i, $img := .Data.Imgs}} + {{if eq (add $i $.Data.Start) $.Data.End}} + {{if ne $.Data.UserImpersonation ""}} + <div hx-get="/imgs?page={{add $.Data.Page 1}}&fragment&user={{$.Data.UserImpersonation}}" hx-trigger="revealed" hx-swap="afterend"> {{else}} - <div hx-get="/imgs?page={{add $.Page 1}}&fragment" + <div hx-get="/imgs?page={{add $.Data.Page 1}}&fragment" hx-trigger="revealed" hx-swap="afterend"> {{end}} diff --git a/templates/login.html b/templates/login.html index 5e717c3..037879d 100644 --- a/templates/login.html +++ b/templates/login.html @@ -1,8 +1,8 @@ {{define "title"}}Connexion{{end}} {{define "content"}} <h1>Connexion</h1> -{{if .Error}} -<p class="error">{{.Error}}</p> +{{if .Data.Error}} +<p class="error">{{.Data.Error}}</p> {{end}} <form action="/login" method="POST"> <input required type="text" name="user" id="user" placeholder="Nom d'utilisateur"><br/><br/> diff --git a/templates/nav_logged.html b/templates/nav_logged.html index 06c7a21..d57df79 100644 --- a/templates/nav_logged.html +++ b/templates/nav_logged.html @@ -1,14 +1,21 @@ {{define "nav"}} <nav> + {{if .User.IsAdmin}} + <ul class="navloggedadmin"> + {{else}} <ul class="navlogged"> + {{end}} <!--<li><a href="/admin">Admin</a></li>--> - {{if .UserImpersonation}} - <li><a href="/?user={{.UserImpersonation}}">Accueil</a></li> - <li><a href="/imgs?user={{.UserImpersonation}}">Images</a></li> + {{if and .Data .Data.UserImpersonation}} + <li><a href="/?user={{.Data.UserImpersonation}}">Accueil</a></li> + <li><a href="/imgs?user={{.Data.UserImpersonation}}">Images</a></li> {{else}} <li><a href="/">Accueil</a></li> <li><a href="/imgs">Images</a></li> {{end}} + {{if .User.IsAdmin}} + <li><a href="/admin">Admin</a></li> + {{end}} <li><a href="/logout">Se déconnecter</a></li> </ul> </nav> diff --git a/templates/user.html b/templates/user.html index 4180407..42ebb3d 100644 --- a/templates/user.html +++ b/templates/user.html @@ -2,19 +2,19 @@ {{define "content"}} <h1>Espace utilisateur</h1> <h2>Documents</h2> - {{if .Error}} - <p class="error">{{.Error}}</p> + {{if .Data.Error}} + <p class="error">{{.Data.Error}}</p> {{end}} - {{if ne .UserImpersonation ""}} - <form action="/upload?user={{.UserImpersonation}}" method="POST" enctype="multipart/form-data"> + {{if ne .Data.UserImpersonation ""}} + <form action="/upload?user={{.Data.UserImpersonation}}" method="POST" enctype="multipart/form-data"> {{else}} <form action="/upload" method="POST" enctype="multipart/form-data"> {{end}} <input type="file" name="files" multiple /> <input type="submit" value="Upload" /> </form> - {{if ne .UserImpersonation ""}} - <form action="/download?user={{.UserImpersonation}}" method="POST" class="inline"> + {{if ne .Data.UserImpersonation ""}} + <form action="/download?user={{.Data.UserImpersonation}}" method="POST" class="inline"> {{else}} <form action="/download" method="POST" class="inline"> {{end}} @@ -26,7 +26,7 @@ <th>Date de modification</th> <th>Taille</th> </tr> - {{range .Docs}} + {{range .Data.Docs}} <tr> <td> <input type="checkbox" name="selection" value="{{.Link}}"> @@ -48,7 +48,7 @@ <input type="submit" value="Télécharger les fichiers sélectionnés"> </form> <form action="/download" method="GET" class="inlineblk"> - <input type="hidden" name="user" id="userAll" value="{{.UserImpersonation}}"> + <input type="hidden" name="user" id="userAll" value="{{.Data.UserImpersonation}}"> <input type="submit" value="Télécharger tous les fichiers"> </form> {{end}} |
