mirror of
				https://gitee.com/gitea/gitea
				synced 2025-11-04 08:30:25 +08:00 
			
		
		
		
	Allow for user specific themes (#5668)
* add migration and basic UI for changing a user's theme * update user themem * use right text on button * load theme based on users' selection * load theme based on users' selection in pwa too * update sample config * delete older theme loading * implement AfterLoad to set users' theme properly * set up default theme when creating a user. This uses the installation wide theme * use flash messages for error * set default theme when creating a user from the cli * fix @lunny review
This commit is contained in:
		
				
					committed by
					
						
						techknowlogick
					
				
			
			
				
	
			
			
			
						parent
						
							ea518681d9
						
					
				
				
					commit
					8d2c24f7f9
				
			@@ -12,7 +12,7 @@ import (
 | 
			
		||||
	"code.gitea.io/gitea/modules/setting"
 | 
			
		||||
 | 
			
		||||
	"github.com/go-macaron/binding"
 | 
			
		||||
	"gopkg.in/macaron.v1"
 | 
			
		||||
	macaron "gopkg.in/macaron.v1"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// InstallForm form for installation page
 | 
			
		||||
@@ -189,6 +189,30 @@ func (f *AddEmailForm) Validate(ctx *macaron.Context, errs binding.Errors) bindi
 | 
			
		||||
	return validate(errs, ctx.Data, f, ctx.Locale)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// UpdateThemeForm form for updating a users' theme
 | 
			
		||||
type UpdateThemeForm struct {
 | 
			
		||||
	Theme string `binding:"Required;MaxSize(30)"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Validate validates the field
 | 
			
		||||
func (f *UpdateThemeForm) Validate(ctx *macaron.Context, errs binding.Errors) binding.Errors {
 | 
			
		||||
	return validate(errs, ctx.Data, f, ctx.Locale)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// IsThemeExists checks if the theme is a theme available in the config.
 | 
			
		||||
func (f UpdateThemeForm) IsThemeExists() bool {
 | 
			
		||||
	var exists bool
 | 
			
		||||
 | 
			
		||||
	for _, v := range setting.UI.Themes {
 | 
			
		||||
		if strings.ToLower(v) == strings.ToLower(f.Theme) {
 | 
			
		||||
			exists = true
 | 
			
		||||
			break
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return exists
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// ChangePasswordForm form for changing password
 | 
			
		||||
type ChangePasswordForm struct {
 | 
			
		||||
	OldPassword string `form:"old_password" binding:"MaxSize(255)"`
 | 
			
		||||
 
 | 
			
		||||
@@ -8,4 +8,5 @@ var (
 | 
			
		||||
	defaultLangs                             = strings.Split("en-US,zh-CN,zh-HK,zh-TW,de-DE,fr-FR,nl-NL,lv-LV,ru-RU,uk-UA,ja-JP,es-ES,pt-BR,pl-PL,bg-BG,it-IT,fi-FI,tr-TR,cs-CZ,sr-SP,sv-SE,ko-KR", ",")
 | 
			
		||||
	defaultLangNames                         = strings.Split("English,简体中文,繁體中文(香港),繁體中文(台灣),Deutsch,français,Nederlands,latviešu,русский,Українська,日本語,español,português do Brasil,polski,български,italiano,suomi,Türkçe,čeština,српски,svenska,한국어", ",")
 | 
			
		||||
	defaultPullRequestWorkInProgressPrefixes = strings.Split("WIP:,[WIP]", ",")
 | 
			
		||||
	defaultThemes                            = strings.Split("gitea", "arc-green")
 | 
			
		||||
)
 | 
			
		||||
 
 | 
			
		||||
@@ -33,9 +33,9 @@ import (
 | 
			
		||||
	"github.com/go-macaron/session"
 | 
			
		||||
	_ "github.com/go-macaron/session/redis" // redis plugin for store session
 | 
			
		||||
	"github.com/go-xorm/core"
 | 
			
		||||
	"github.com/kballard/go-shellquote"
 | 
			
		||||
	"github.com/mcuadros/go-version"
 | 
			
		||||
	"gopkg.in/ini.v1"
 | 
			
		||||
	shellquote "github.com/kballard/go-shellquote"
 | 
			
		||||
	version "github.com/mcuadros/go-version"
 | 
			
		||||
	ini "gopkg.in/ini.v1"
 | 
			
		||||
	"strk.kbt.io/projects/go/libravatar"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
@@ -303,6 +303,7 @@ var (
 | 
			
		||||
		MaxDisplayFileSize  int64
 | 
			
		||||
		ShowUserEmail       bool
 | 
			
		||||
		DefaultTheme        string
 | 
			
		||||
		Themes              []string
 | 
			
		||||
 | 
			
		||||
		Admin struct {
 | 
			
		||||
			UserPagingNum   int
 | 
			
		||||
@@ -329,6 +330,7 @@ var (
 | 
			
		||||
		ThemeColorMetaTag:   `#6cc644`,
 | 
			
		||||
		MaxDisplayFileSize:  8388608,
 | 
			
		||||
		DefaultTheme:        `gitea`,
 | 
			
		||||
		Themes:              []string{`gitea`, `arc-green`},
 | 
			
		||||
		Admin: struct {
 | 
			
		||||
			UserPagingNum   int
 | 
			
		||||
			RepoPagingNum   int
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user