add multiple flash support

This commit is contained in:
sentriz
2019-11-27 01:44:45 +00:00
parent 8d983d3b42
commit 605c587fd9
4 changed files with 36 additions and 37 deletions

View File

@@ -111,8 +111,8 @@ type Response struct {
data *templateData
// code is 303
redirect string
flashN string // normal
flashW string // warning
flashN []string // normal
flashW []string // warning
// code is >= 400
code int
err string
@@ -177,6 +177,13 @@ func (c *Controller) H(h adminHandler) http.Handler {
// ## begin utilities
// ## begin utilities
type FlashType string
const (
FlashNormal = FlashType("normal")
FlashWarning = FlashType("warning")
)
func firstExisting(or string, strings ...string) string {
for _, s := range strings {
if s != "" {
@@ -194,35 +201,27 @@ func sessLogSave(s *sessions.Session, w http.ResponseWriter, r *http.Request) {
type Flash struct {
Message string
Type string
Type FlashType
}
func sessAddFlashW(s *sessions.Session, message string) {
if message == "" {
func sessAddFlashN(s *sessions.Session, messages []string) {
sessAddFlash(s, messages, FlashNormal)
}
func sessAddFlashW(s *sessions.Session, messages []string) {
sessAddFlash(s, messages, FlashWarning)
}
func sessAddFlash(s *sessions.Session, messages []string, flashT FlashType) {
if len(messages) == 0 {
return
}
s.AddFlash(Flash{
Message: message,
Type: "warning",
})
}
func sessAddFlashWf(s *sessions.Session, message string, a ...interface{}) {
sessAddFlashW(s, fmt.Sprintf(message, a...))
}
func sessAddFlashN(s *sessions.Session, message string) {
if message == "" {
return
for _, message := range messages {
s.AddFlash(Flash{
Message: message,
Type: flashT,
})
}
s.AddFlash(Flash{
Message: message,
Type: "normal",
})
}
func sessAddFlashNf(s *sessions.Session, message string, a ...interface{}) {
sessAddFlashN(s, fmt.Sprintf(message, a...))
}
// ## begin validation