| 1 | {{define "admin_files.html"}}{{template "admin_base.html" .}}{{end}} |
| 2 | {{define "title"}}Admin — Files{{end}} |
| 3 | {{define "content"}} |
| 4 | <div class="admin-toolbar"> |
| 5 | <h2>Files</h2> |
| 6 | </div> |
| 7 | {{if .Error}}<p class="error">{{.Error}}</p>{{end}} |
| 8 | {{if .Success}}<p class="success">File uploaded.</p>{{end}} |
| 9 | <form method="POST" action="/admin/files/upload" enctype="multipart/form-data" class="form"> |
| 10 | <label for="file">upload file (max 10MB)</label> |
| 11 | <input type="file" id="file" name="file" required> |
| 12 | <button type="submit">upload</button> |
| 13 | </form> |
| 14 | {{if not .Files}} |
| 15 | <p class="empty">no files yet</p> |
| 16 | {{else}} |
| 17 | {{$site := .SiteURL}} |
| 18 | <div class="admin-list"> |
| 19 | {{range .Files}} |
| 20 | <div class="admin-list-item"> |
| 21 | {{if .IsImage}} |
| 22 | <img src="/files/{{.Filename}}" class="file-thumbnail" alt="{{.OriginalName}}"> |
| 23 | {{end}} |
| 24 | <div class="admin-list-info"> |
| 25 | <span class="admin-list-title">{{.OriginalName}}</span> |
| 26 | <div class="admin-list-meta"> |
| 27 | <span class="admin-list-date">{{.ContentType}}</span> |
| 28 | <span class="admin-list-date">{{.SizeHuman}}</span> |
| 29 | <span class="admin-list-date">{{.CreatedAt}}</span> |
| 30 | </div> |
| 31 | </div> |
| 32 | <div class="admin-list-actions"> |
| 33 | <button type="button" class="link-button" |
| 34 | onclick="navigator.clipboard.writeText('{{$site}}/files/{{.Filename}}');this.textContent='copied!'"> |
| 35 | copy url |
| 36 | </button> |
| 37 | <button type="button" class="link-button" |
| 38 | onclick="navigator.clipboard.writeText('');this.textContent='copied!'"> |
| 39 | copy md |
| 40 | </button> |
| 41 | <form method="POST" action="/admin/files/{{.ShortID}}/delete" class="inline-form"> |
| 42 | <button type="submit" class="link-button danger" onclick="return confirm('Delete this file?')">delete</button> |
| 43 | </form> |
| 44 | </div> |
| 45 | </div> |
| 46 | {{end}} |
| 47 | </div> |
| 48 | {{end}} |
| 49 | {{end}} |