import "net/url"
-// flashes enumerates all the flash types
-const (
- SuccessFlash = "SuccessMsg"
- ErrorFlash = "ErrorMsg"
- WarnFlash = "WarningMsg"
- InfoFlash = "InfoMsg"
-)
-
-// FlashNow FIXME:
-var FlashNow bool
-
// Flash represents a one time data transfer between two requests.
type Flash struct {
DataStore ContextDataStore
if f.Values == nil {
f.Values = make(map[string][]string)
}
- isShow := false
- if (len(current) == 0 && FlashNow) ||
- (len(current) > 0 && current[0]) {
- isShow = true
- }
-
- if isShow {
+ showInCurrentPage := len(current) > 0 && current[0]
+ if showInCurrentPage {
+ // assign it to the context data, then the template can use ".Flash.XxxMsg" to render the message
f.DataStore.GetData()["Flash"] = f
} else {
+ // the message map will be saved into the cookie and be shown in next response (a new page response which decodes the cookie)
f.Set(name, msg)
}
}
} else if len(orgs) > 0 {
ctx.Data["ContextUser"] = orgs[0]
} else {
- msg := ctx.Tr("repo.fork_no_valid_owners")
- ctx.Data["Flash"] = ctx.Flash
- ctx.Flash.Error(msg)
ctx.Data["CanForkRepo"] = false
+ ctx.Flash.Error(ctx.Tr("repo.fork_no_valid_owners"), true)
return nil
}
} else {
maxCreationLimit := ctx.Doer.MaxCreationLimit()
msg := ctx.TrN(maxCreationLimit, "repo.form.reach_limit_of_creation_1", "repo.form.reach_limit_of_creation_n", maxCreationLimit)
- ctx.Data["Flash"] = ctx.Flash
- ctx.Flash.Error(msg)
+ ctx.Flash.Error(msg, true)
}
getForkRepository(ctx)