Browse Source

Add button to delete all notifications

master
Jan-Lukas Else 1 week ago
parent
commit
a576e364bd
  1. 33
      notifications.go
  2. 1
      strings/de.yaml
  3. 1
      strings/default.yaml
  4. 4
      ui.go

33
notifications.go

@ -52,6 +52,11 @@ func (db *database) deleteNotification(id int) error {
return err
}
func (db *database) deleteAllNotifications() error {
_, err := db.exec("delete from notifications")
return err
}
type notificationsRequestConfig struct {
offset, limit int
}
@ -165,15 +170,25 @@ func (a *goBlog) notificationsAdmin(w http.ResponseWriter, r *http.Request) {
}
func (a *goBlog) notificationsAdminDelete(w http.ResponseWriter, r *http.Request) {
id, err := strconv.Atoi(r.FormValue("notificationid"))
if err != nil {
a.serveError(w, r, err.Error(), http.StatusBadRequest)
return
}
err = a.db.deleteNotification(id)
if err != nil {
a.serveError(w, r, err.Error(), http.StatusInternalServerError)
return
if idString := r.FormValue("notificationid"); idString != "" {
// Delete single notification with id
id, err := strconv.Atoi(idString)
if err != nil {
a.serveError(w, r, err.Error(), http.StatusBadRequest)
return
}
err = a.db.deleteNotification(id)
if err != nil {
a.serveError(w, r, err.Error(), http.StatusInternalServerError)
return
}
} else {
// Delete all notifications
err := a.db.deleteAllNotifications()
if err != nil {
a.serveError(w, r, err.Error(), http.StatusInternalServerError)
return
}
}
http.Redirect(w, r, ".", http.StatusFound)
}

1
strings/de.yaml

@ -10,6 +10,7 @@ contactagreesend: "Akzeptieren & Senden"
contactsend: "Senden"
create: "Erstellen"
delete: "Löschen"
deleteall: "Alle löschen"
deletedposts: "Gelöschte Posts"
deletedpostsdesc: "Gelöschte Posts, die nach 7 Tagen endgültig gelöscht werden."
docomment: "Kommentieren"

1
strings/default.yaml

@ -13,6 +13,7 @@ contactagreesend: "Accept & Send"
contactsend: "Send"
create: "Create"
delete: "Delete"
deleteall: "Delete all"
deletedposts: "Deleted posts"
deletedpostsdesc: "Deleted posts that will be permanently deleted after 7 days."
docomment: "Comment"

4
ui.go

@ -1148,6 +1148,10 @@ func (a *goBlog) renderNotificationsAdmin(hb *htmlBuilder, rd *renderData) {
hb.writeElementOpen("h1")
hb.writeEscaped(a.ts.GetTemplateStringVariant(rd.Blog.Lang, "notifications"))
hb.writeElementClose("h1")
// Delete all form
hb.writeElementOpen("form", "class", "actions", "method", "post", "action", "/notifications/delete")
hb.writeElementOpen("input", "type", "submit", "value", a.ts.GetTemplateStringVariant(rd.Blog.Lang, "deleteall"))
hb.writeElementClose("form")
// Notifications
tdLocale := matchTimeDiffLocale(rd.Blog.Lang)
for _, n := range nrd.notifications {

Loading…
Cancel
Save