diff options
| author | ivar <i@oiee.no> | 2026-04-04 16:34:46 +0200 |
|---|---|---|
| committer | ivar <i@oiee.no> | 2026-04-04 16:34:46 +0200 |
| commit | a6355e7a6530af3335c4cd8af05f1e9c8b978169 (patch) | |
| tree | c9d920d1e996ef1c42d3455825731598df6b56c2 /internal/admin | |
| parent | 8a093aacd162d3fd9f142b53aab9edfa061fd66a (diff) | |
| download | nebbet.no-a6355e7a6530af3335c4cd8af05f1e9c8b978169.tar.xz nebbet.no-a6355e7a6530af3335c4cd8af05f1e9c8b978169.zip | |
.
Diffstat (limited to 'internal/admin')
| -rw-r--r-- | internal/admin/auth/auth.go | 3 | ||||
| -rw-r--r-- | internal/admin/templates/base.html | 5 | ||||
| -rw-r--r-- | internal/admin/templates/list.html | 21 |
3 files changed, 21 insertions, 8 deletions
diff --git a/internal/admin/auth/auth.go b/internal/admin/auth/auth.go index b0de7d9..33f13bc 100644 --- a/internal/admin/auth/auth.go +++ b/internal/admin/auth/auth.go @@ -25,6 +25,9 @@ func (a *Auth) AddUser(username string) error { if err != nil && !os.IsNotExist(err) { return err } + if users == nil { + users = make(map[string]string) + } if _, exists := users[username]; exists { return fmt.Errorf("user %q already exists", username) } diff --git a/internal/admin/templates/base.html b/internal/admin/templates/base.html index f88bba6..083d04b 100644 --- a/internal/admin/templates/base.html +++ b/internal/admin/templates/base.html @@ -6,12 +6,11 @@ <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Admin — {{.Title}}</title> - <link rel="stylesheet" href="/styles/admin.css"> - <link rel="stylesheet" href="/lib/milkdown-crepe/style.css"> + <link rel="stylesheet" href="/assets/styles/admin.css"> <script type="importmap"> { "imports": { - "@milkdown/crepe": "/lib/node_modules/@milkdown/crepe" + "editorjs-bundle": "/assets/admin/lib/dist/build.js" } } </script> diff --git a/internal/admin/templates/list.html b/internal/admin/templates/list.html index 561e317..b8a3a74 100644 --- a/internal/admin/templates/list.html +++ b/internal/admin/templates/list.html @@ -7,6 +7,7 @@ <th>Title</th> <th>Date</th> <th>Tags</th> + <th>Status</th> <th></th> </tr> </thead> @@ -18,16 +19,17 @@ <td> {{if .Tags}} <div class="tags"> - {{range (splitTags .Tags)}}<span class="tag">{{.}}</span>{{end}} + {{range .Tags}}<span class="tag">{{.}}</span>{{end}} </div> {{end}} </td> <td> + {{if .Draft}}<span class="badge badge-draft">Draft</span>{{else}}<span class="badge badge-published">Published</span>{{end}} + </td> + <td> <div class="actions"> - <a href="/admin/{{.Slug}}/edit" class="btn btn-secondary">Edit</a> - <form method="POST" action="/admin/{{.Slug}}/delete" onsubmit="return confirm('Delete {{.Title}}?')"> - <button type="submit" class="btn btn-danger">Delete</button> - </form> + <a href="/admin/{{.Slug}}" class="btn btn-secondary">Edit</a> + <button class="btn btn-danger" onclick="deletePost('{{.Slug}}', '{{.Title}}')">Delete</button> </div> </td> </tr> @@ -37,4 +39,13 @@ {{else}} <div class="empty">No posts yet. <a href="/admin/new">Create one.</a></div> {{end}} + + <script> + function deletePost(slug, title) { + if (!confirm('Delete "' + title + '"?')) return; + fetch('/admin/' + slug, { method: 'DELETE' }) + .then(() => window.location.href = '/admin/') + .catch(err => alert('Delete failed: ' + err)); + } + </script> {{end}} |
