// Copyright 2018 The Macaron Authors // // Licensed under the Apache License, Version 2.0 (the "License"): you may // not use this file except in compliance with the License. You may obtain // a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, WITHOUT // WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the // License for the specific language governing permissions and limitations // under the License. package session import ( "net/url" "gitea.com/macaron/macaron" ) type Flash struct { ctx *macaron.Context url.Values ErrorMsg, WarningMsg, InfoMsg, SuccessMsg string } func (f *Flash) set(name, msg string, current ...bool) { isShow := false if (len(current) == 0 && macaron.FlashNow) || (len(current) > 0 && current[0]) { isShow = true } if isShow { f.ctx.Data["Flash"] = f } else { f.Set(name, msg) } } func (f *Flash) Error(msg string, current ...bool) { f.ErrorMsg = msg f.set("error", msg, current...) } func (f *Flash) Warning(msg string, current ...bool) { f.WarningMsg = msg f.set("warning", msg, current...) } func (f *Flash) Info(msg string, current ...bool) { f.InfoMsg = msg f.set("info", msg, current...) } func (f *Flash) Success(msg string, current ...bool) { f.SuccessMsg = msg f.set("success", msg, current...) }