From a0c320b9641f93028d66332b119535ce5149f042 Mon Sep 17 00:00:00 2001 From: HFO4 <912394456@qq.com> Date: Wed, 29 Jan 2020 14:25:14 +0800 Subject: [PATCH] Feat: set default view method in file manager --- models/migration.go | 2 ++ pkg/serializer/setting.go | 48 ++++++++++++++++++++----------------- pkg/serializer/share.go | 6 ++++- routers/controllers/site.go | 2 ++ 4 files changed, 35 insertions(+), 23 deletions(-) diff --git a/models/migration.go b/models/migration.go index 5bef34f..a09d2a6 100644 --- a/models/migration.go +++ b/models/migration.go @@ -164,6 +164,8 @@ Neue',Helvetica,Arial,sans-serif; box-sizing: border-box; font-size: 14px; verti {Name: "temp_path", Value: "temp", Type: "path"}, {Name: "score_enabled", Value: "1", Type: "score"}, {Name: "share_score_rate", Value: "80", Type: "score"}, + {Name: "home_view_method", Value: "icon", Type: "view"}, + {Name: "share_view_method", Value: "list", Type: "view"}, } for _, value := range defaultSettings { diff --git a/pkg/serializer/setting.go b/pkg/serializer/setting.go index 46be7f6..6913b26 100644 --- a/pkg/serializer/setting.go +++ b/pkg/serializer/setting.go @@ -4,17 +4,19 @@ import model "github.com/HFO4/cloudreve/models" // SiteConfig 站点全局设置序列 type SiteConfig struct { - SiteName string `json:"title"` - LoginCaptcha bool `json:"loginCaptcha"` - RegCaptcha bool `json:"regCaptcha"` - ForgetCaptcha bool `json:"forgetCaptcha"` - EmailActive bool `json:"emailActive"` - QQLogin bool `json:"QQLogin"` - Themes string `json:"themes"` - DefaultTheme string `json:"defaultTheme"` - ScoreEnabled bool `json:"score_enabled"` - ShareScoreRate string `json:"share_score_rate"` - User User `json:"user"` + SiteName string `json:"title"` + LoginCaptcha bool `json:"loginCaptcha"` + RegCaptcha bool `json:"regCaptcha"` + ForgetCaptcha bool `json:"forgetCaptcha"` + EmailActive bool `json:"emailActive"` + QQLogin bool `json:"QQLogin"` + Themes string `json:"themes"` + DefaultTheme string `json:"defaultTheme"` + ScoreEnabled bool `json:"score_enabled"` + ShareScoreRate string `json:"share_score_rate"` + HomepageViewMethod string `json:"home_view_method"` + ShareViewMethod string `json:"share_view_method"` + User User `json:"user"` } func checkSettingValue(setting map[string]string, key string) string { @@ -32,16 +34,18 @@ func BuildSiteConfig(settings map[string]string, user *model.User) Response { } return Response{ Data: SiteConfig{ - SiteName: checkSettingValue(settings, "siteName"), - LoginCaptcha: model.IsTrueVal(checkSettingValue(settings, "login_captcha")), - RegCaptcha: model.IsTrueVal(checkSettingValue(settings, "reg_captcha")), - ForgetCaptcha: model.IsTrueVal(checkSettingValue(settings, "forget_captcha")), - EmailActive: model.IsTrueVal(checkSettingValue(settings, "email_active")), - QQLogin: model.IsTrueVal(checkSettingValue(settings, "qq_login")), - Themes: checkSettingValue(settings, "themes"), - DefaultTheme: checkSettingValue(settings, "defaultTheme"), - ScoreEnabled: model.IsTrueVal(checkSettingValue(settings, "score_enabled")), - ShareScoreRate: checkSettingValue(settings, "share_score_rate"), - User: userRes, + SiteName: checkSettingValue(settings, "siteName"), + LoginCaptcha: model.IsTrueVal(checkSettingValue(settings, "login_captcha")), + RegCaptcha: model.IsTrueVal(checkSettingValue(settings, "reg_captcha")), + ForgetCaptcha: model.IsTrueVal(checkSettingValue(settings, "forget_captcha")), + EmailActive: model.IsTrueVal(checkSettingValue(settings, "email_active")), + QQLogin: model.IsTrueVal(checkSettingValue(settings, "qq_login")), + Themes: checkSettingValue(settings, "themes"), + DefaultTheme: checkSettingValue(settings, "defaultTheme"), + ScoreEnabled: model.IsTrueVal(checkSettingValue(settings, "score_enabled")), + ShareScoreRate: checkSettingValue(settings, "share_score_rate"), + HomepageViewMethod: checkSettingValue(settings, "home_view_method"), + ShareViewMethod: checkSettingValue(settings, "share_view_method"), + User: userRes, }} } diff --git a/pkg/serializer/share.go b/pkg/serializer/share.go index 9eba5c3..c33e46d 100644 --- a/pkg/serializer/share.go +++ b/pkg/serializer/share.go @@ -61,7 +61,11 @@ func BuildShareResponse(share *model.Share, unlocked bool) Share { } if share.IsDir { - + source := share.GetSourceFolder() + resp.Source = &shareSource{ + Name: source.Name, + Size: 0, + } } else { source := share.GetSourceFile() resp.Source = &shareSource{ diff --git a/routers/controllers/site.go b/routers/controllers/site.go index cecb533..629aa4d 100644 --- a/routers/controllers/site.go +++ b/routers/controllers/site.go @@ -23,6 +23,8 @@ func SiteConfig(c *gin.Context) { "defaultTheme", "score_enabled", "share_score_rate", + "home_view_method", + "share_view_method", }) // 如果已登录,则同时返回用户信息