Add button to delete all notifications

This commit is contained in:
Jan-Lukas Else 2022-06-21 19:08:26 +02:00
parent fae5614838
commit a576e364bd
4 changed files with 30 additions and 9 deletions

View File

@ -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,7 +170,9 @@ 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 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
@ -175,5 +182,13 @@ func (a *goBlog) notificationsAdminDelete(w http.ResponseWriter, r *http.Request
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)
}

View File

@ -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"

View File

@ -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
View File

@ -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 {