Saving success messages betteR

This commit is contained in:
Simon Martens
2026-01-23 20:00:55 +01:00
parent 7ef2611537
commit 0beb5a2c79
20 changed files with 1209 additions and 811 deletions

47
controllers/flash.go Normal file
View File

@@ -0,0 +1,47 @@
package controllers
import (
"net/http"
"net/url"
"github.com/pocketbase/pocketbase/core"
)
const flashSuccessCookieName = "flash_success"
func setFlashSuccess(e *core.RequestEvent, message string) {
if e == nil || message == "" {
return
}
e.SetCookie(&http.Cookie{
Name: flashSuccessCookieName,
Value: url.QueryEscape(message),
Path: "/",
MaxAge: 60,
HttpOnly: true,
SameSite: http.SameSiteLaxMode,
})
}
func popFlashSuccess(e *core.RequestEvent) string {
if e == nil || e.Request == nil {
return ""
}
cookie, err := e.Request.Cookie(flashSuccessCookieName)
if err != nil || cookie == nil || cookie.Value == "" {
return ""
}
e.SetCookie(&http.Cookie{
Name: flashSuccessCookieName,
Value: "",
Path: "/",
MaxAge: -1,
HttpOnly: true,
SameSite: http.SameSiteLaxMode,
})
value, err := url.QueryUnescape(cookie.Value)
if err != nil {
return ""
}
return value
}