From cd3a9afe8fd042ad0e19f1c42ec9b02bc0eda11e Mon Sep 17 00:00:00 2001 From: Lunny Xiao Date: Sun, 5 Jan 2025 22:19:45 -0800 Subject: [PATCH] implement save user ShowFileViewTreeSidebar --- models/user/setting_keys.go | 3 ++- routers/web/repo/repo.go | 10 ++++++---- routers/web/repo/view_home.go | 14 ++++++++++++-- 3 files changed, 20 insertions(+), 7 deletions(-) diff --git a/models/user/setting_keys.go b/models/user/setting_keys.go index 3149aae18b..ae09086db9 100644 --- a/models/user/setting_keys.go +++ b/models/user/setting_keys.go @@ -17,5 +17,6 @@ const ( // SignupIP is the IP address that the user signed up with SignupIP = "signup.ip" // SignupUserAgent is the user agent that the user signed up with - SignupUserAgent = "signup.user_agent" + SignupUserAgent = "signup.user_agent" + SettingsKeyShowFileViewTreeSidebar = "tree.show_file_view_tree_sidebar" ) diff --git a/routers/web/repo/repo.go b/routers/web/repo/repo.go index e8139a019b..6e9a8ea756 100644 --- a/routers/web/repo/repo.go +++ b/routers/web/repo/repo.go @@ -9,6 +9,7 @@ import ( "fmt" "net/http" "slices" + "strconv" "strings" "code.gitea.io/gitea/models/db" @@ -770,9 +771,10 @@ func UpdatePreferences(ctx *context.Context) { ctx.ServerError("DecodePreferencesForm", err) return } - // if err := ctx.Session.Set("repoPreferences", form); err != nil { - // ctx.ServerError("Session.Set", err) - // return - // } + if err := user_model.SetUserSetting(ctx, ctx.Doer.ID, user_model.SettingsKeyShowFileViewTreeSidebar, + strconv.FormatBool(form.ShowFileViewTreeSidebar)); err != nil { + log.Error("SetUserSetting: %v", err) + } + ctx.JSONOK() } diff --git a/routers/web/repo/view_home.go b/routers/web/repo/view_home.go index a4387996df..6ca70500a7 100644 --- a/routers/web/repo/view_home.go +++ b/routers/web/repo/view_home.go @@ -9,6 +9,7 @@ import ( "html/template" "net/http" "path" + "strconv" "strings" "time" @@ -17,6 +18,7 @@ import ( access_model "code.gitea.io/gitea/models/perm/access" repo_model "code.gitea.io/gitea/models/repo" unit_model "code.gitea.io/gitea/models/unit" + user_model "code.gitea.io/gitea/models/user" "code.gitea.io/gitea/modules/git" "code.gitea.io/gitea/modules/log" repo_module "code.gitea.io/gitea/modules/repository" @@ -305,9 +307,17 @@ func Home(ctx *context.Context) { return } - // ctx.Data["RepoPreferences"] = ctx.Session.Get("repoPreferences") + showFileViewTreeSidebar := true + if ctx.Doer != nil { + v, err := user_model.GetUserSetting(ctx, ctx.Doer.ID, user_model.SettingsKeyShowFileViewTreeSidebar, "true") + if err != nil { + log.Error("GetUserSetting: %v", err) + } else { + showFileViewTreeSidebar, _ = strconv.ParseBool(v) + } + } ctx.Data["RepoPreferences"] = &preferencesForm{ - ShowFileViewTreeSidebar: true, + ShowFileViewTreeSidebar: showFileViewTreeSidebar, } title := ctx.Repo.Repository.Owner.Name + "/" + ctx.Repo.Repository.Name