mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-11-04 13:34:43 +01:00 
			
		
		
		
	Partially for #24457 Major changes: 1. The old `signedUserNameStringPointerKey` is quite hacky, use `ctx.Data[SignedUser]` instead 2. Move duplicate code from `Contexter` to `CommonTemplateContextData` 3. Remove incorrect copying&pasting code `ctx.Data["Err_Password"] = true` in API handlers 4. Use one unique `RenderPanicErrorPage` for panic error page rendering 5. Move `stripSlashesMiddleware` to be the first middleware 6. Install global panic recovery handler, it works for both `install` and `web` 7. Make `500.tmpl` only depend minimal template functions/variables, avoid triggering new panics Screenshot: <details>  </details>
		
			
				
	
	
		
			66 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			66 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
// Copyright 2020 The Gitea Authors. All rights reserved.
 | 
						|
// SPDX-License-Identifier: MIT
 | 
						|
 | 
						|
package middleware
 | 
						|
 | 
						|
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
 | 
						|
	url.Values
 | 
						|
	ErrorMsg, WarningMsg, InfoMsg, SuccessMsg string
 | 
						|
}
 | 
						|
 | 
						|
func (f *Flash) set(name, msg string, current ...bool) {
 | 
						|
	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 {
 | 
						|
		f.DataStore.GetData()["Flash"] = f
 | 
						|
	} else {
 | 
						|
		f.Set(name, msg)
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
// Error sets error message
 | 
						|
func (f *Flash) Error(msg string, current ...bool) {
 | 
						|
	f.ErrorMsg = msg
 | 
						|
	f.set("error", msg, current...)
 | 
						|
}
 | 
						|
 | 
						|
// Warning sets warning message
 | 
						|
func (f *Flash) Warning(msg string, current ...bool) {
 | 
						|
	f.WarningMsg = msg
 | 
						|
	f.set("warning", msg, current...)
 | 
						|
}
 | 
						|
 | 
						|
// Info sets info message
 | 
						|
func (f *Flash) Info(msg string, current ...bool) {
 | 
						|
	f.InfoMsg = msg
 | 
						|
	f.set("info", msg, current...)
 | 
						|
}
 | 
						|
 | 
						|
// Success sets success message
 | 
						|
func (f *Flash) Success(msg string, current ...bool) {
 | 
						|
	f.SuccessMsg = msg
 | 
						|
	f.set("success", msg, current...)
 | 
						|
}
 |