diff --git a/kernel/api/router.go b/kernel/api/router.go index 2efffb9e2..a697b9325 100644 --- a/kernel/api/router.go +++ b/kernel/api/router.go @@ -525,6 +525,7 @@ func ServeAPI(ginServer *gin.Engine) { ginServer.Handle("POST", "/api/ui/reloadUI", model.CheckAuth, model.CheckAdminRole, model.CheckReadonly, reloadUI) ginServer.Handle("POST", "/api/ui/reloadIcon", model.CheckAuth, model.CheckAdminRole, model.CheckReadonly, reloadIcon) + ginServer.Handle("POST", "/api/ui/reloadTheme", model.CheckAuth, model.CheckAdminRole, model.CheckReadonly, reloadTheme) ginServer.Handle("POST", "/api/ui/reloadAttributeView", model.CheckAuth, model.CheckAdminRole, model.CheckReadonly, reloadAttributeView) ginServer.Handle("POST", "/api/ui/reloadProtyle", model.CheckAuth, model.CheckAdminRole, model.CheckReadonly, reloadProtyle) ginServer.Handle("POST", "/api/ui/reloadFiletree", model.CheckAuth, model.CheckAdminRole, model.CheckReadonly, reloadFiletree) diff --git a/kernel/api/ui.go b/kernel/api/ui.go index 8a4d6302a..702893c65 100644 --- a/kernel/api/ui.go +++ b/kernel/api/ui.go @@ -77,4 +77,13 @@ func reloadIcon(c *gin.Context) { defer c.JSON(http.StatusOK, ret) model.LoadIcons() + util.BroadcastByType("main", "setAppearance", 0, "", model.Conf.Appearance) +} + +func reloadTheme(c *gin.Context) { + ret := gulu.Ret.NewResult() + defer c.JSON(http.StatusOK, ret) + + model.LoadThemes() + util.BroadcastByType("main", "setAppearance", 0, "", model.Conf.Appearance) } diff --git a/kernel/model/appearance.go b/kernel/model/appearance.go index 6cd1d4680..a7299c6c1 100644 --- a/kernel/model/appearance.go +++ b/kernel/model/appearance.go @@ -46,7 +46,7 @@ func InitAppearance() { return } - loadThemes() + LoadThemes() LoadIcons() Conf.m.Lock() @@ -111,7 +111,7 @@ func containTheme(name string, themes []*conf.AppearanceTheme) bool { return false } -func loadThemes() { +func LoadThemes() { themeDirs, err := os.ReadDir(util.ThemesPath) if err != nil { logging.LogErrorf("read appearance themes folder failed: %s", err)