Remember diff view style (#163)
This commit is contained in:
parent
bd76e156bb
commit
739f07c98e
7 changed files with 47 additions and 7 deletions
|
@ -584,7 +584,7 @@ func runWeb(ctx *cli.Context) error {
|
||||||
|
|
||||||
m.Group("/pulls/:index", func() {
|
m.Group("/pulls/:index", func() {
|
||||||
m.Get("/commits", context.RepoRef(), repo.ViewPullCommits)
|
m.Get("/commits", context.RepoRef(), repo.ViewPullCommits)
|
||||||
m.Get("/files", context.RepoRef(), repo.SetEditorconfigIfExists, repo.ViewPullFiles)
|
m.Get("/files", context.RepoRef(), repo.SetEditorconfigIfExists, repo.SetDiffViewStyle, repo.ViewPullFiles)
|
||||||
m.Post("/merge", reqRepoWriter, repo.MergePullRequest)
|
m.Post("/merge", reqRepoWriter, repo.MergePullRequest)
|
||||||
}, repo.MustAllowPulls)
|
}, repo.MustAllowPulls)
|
||||||
|
|
||||||
|
@ -592,12 +592,12 @@ func runWeb(ctx *cli.Context) error {
|
||||||
m.Get("/src/*", repo.SetEditorconfigIfExists, repo.Home)
|
m.Get("/src/*", repo.SetEditorconfigIfExists, repo.Home)
|
||||||
m.Get("/raw/*", repo.SingleDownload)
|
m.Get("/raw/*", repo.SingleDownload)
|
||||||
m.Get("/commits/*", repo.RefCommits)
|
m.Get("/commits/*", repo.RefCommits)
|
||||||
m.Get("/commit/:sha([a-f0-9]{7,40})$", repo.SetEditorconfigIfExists, repo.Diff)
|
m.Get("/commit/:sha([a-f0-9]{7,40})$", repo.SetEditorconfigIfExists, repo.SetDiffViewStyle, repo.Diff)
|
||||||
m.Get("/forks", repo.Forks)
|
m.Get("/forks", repo.Forks)
|
||||||
}, context.RepoRef())
|
}, context.RepoRef())
|
||||||
m.Get("/commit/:sha([a-f0-9]{7,40})\\.:ext(patch|diff)", repo.RawDiff)
|
m.Get("/commit/:sha([a-f0-9]{7,40})\\.:ext(patch|diff)", repo.RawDiff)
|
||||||
|
|
||||||
m.Get("/compare/:before([a-z0-9]{40})\\.\\.\\.:after([a-z0-9]{40})", repo.CompareDiff)
|
m.Get("/compare/:before([a-z0-9]{40})\\.\\.\\.:after([a-z0-9]{40})", repo.SetEditorconfigIfExists, repo.SetDiffViewStyle, repo.CompareDiff)
|
||||||
}, ignSignIn, context.RepoAssignment(), repo.MustBeNotBare)
|
}, ignSignIn, context.RepoAssignment(), repo.MustBeNotBare)
|
||||||
m.Group("/:username/:reponame", func() {
|
m.Group("/:username/:reponame", func() {
|
||||||
m.Get("/stars", repo.Stars)
|
m.Get("/stars", repo.Stars)
|
||||||
|
|
|
@ -72,6 +72,8 @@ var migrations = []Migration{
|
||||||
|
|
||||||
// v13 -> v14:v0.9.87
|
// v13 -> v14:v0.9.87
|
||||||
NewMigration("set comment updated with created", setCommentUpdatedWithCreated),
|
NewMigration("set comment updated with created", setCommentUpdatedWithCreated),
|
||||||
|
|
||||||
|
NewMigration("create user column diff view style", createUserColumnDiffViewStyle),
|
||||||
}
|
}
|
||||||
|
|
||||||
// Migrate database to current version
|
// Migrate database to current version
|
||||||
|
@ -96,7 +98,7 @@ func Migrate(x *xorm.Engine) error {
|
||||||
|
|
||||||
v := currentVersion.Version
|
v := currentVersion.Version
|
||||||
if _MIN_DB_VER > v {
|
if _MIN_DB_VER > v {
|
||||||
log.Fatal(4, `Gogs no longer supports auto-migration from your previously installed version.
|
log.Fatal(4, `Gogs no longer supports auto-migration from your previously installed version.
|
||||||
Please try to upgrade to a lower version (>= v0.6.0) first, then upgrade to current version.`)
|
Please try to upgrade to a lower version (>= v0.6.0) first, then upgrade to current version.`)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,3 +22,15 @@ func setCommentUpdatedWithCreated(x *xorm.Engine) (err error) {
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type UserV14 struct {
|
||||||
|
DiffViewStyle string `xorm:"NOT NULL DEFAULT ''"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func (*UserV14) TableName() string {
|
||||||
|
return "user"
|
||||||
|
}
|
||||||
|
|
||||||
|
func createUserColumnDiffViewStyle(x *xorm.Engine) error {
|
||||||
|
return x.Sync2(new(UserV14))
|
||||||
|
}
|
||||||
|
|
|
@ -107,6 +107,9 @@ type User struct {
|
||||||
NumMembers int
|
NumMembers int
|
||||||
Teams []*Team `xorm:"-"`
|
Teams []*Team `xorm:"-"`
|
||||||
Members []*User `xorm:"-"`
|
Members []*User `xorm:"-"`
|
||||||
|
|
||||||
|
// Preferences
|
||||||
|
DiffViewStyle string `xorm:"NOT NULL DEFAULT ''"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (u *User) BeforeInsert() {
|
func (u *User) BeforeInsert() {
|
||||||
|
@ -126,6 +129,11 @@ func (u *User) SetLastLogin() {
|
||||||
u.LastLoginUnix = time.Now().Unix()
|
u.LastLoginUnix = time.Now().Unix()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (u *User) UpdateDiffViewStyle(style string) error {
|
||||||
|
u.DiffViewStyle = style
|
||||||
|
return UpdateUser(u)
|
||||||
|
}
|
||||||
|
|
||||||
func (u *User) AfterSet(colName string, _ xorm.Cell) {
|
func (u *User) AfterSet(colName string, _ xorm.Cell) {
|
||||||
switch colName {
|
switch colName {
|
||||||
case "full_name":
|
case "full_name":
|
||||||
|
|
|
@ -180,7 +180,6 @@ func Diff(ctx *context.Context) {
|
||||||
}
|
}
|
||||||
|
|
||||||
ctx.Data["CommitID"] = commitID
|
ctx.Data["CommitID"] = commitID
|
||||||
ctx.Data["IsSplitStyle"] = ctx.Query("style") == "split"
|
|
||||||
ctx.Data["Username"] = userName
|
ctx.Data["Username"] = userName
|
||||||
ctx.Data["Reponame"] = repoName
|
ctx.Data["Reponame"] = repoName
|
||||||
ctx.Data["IsImageFile"] = commit.IsImageFile
|
ctx.Data["IsImageFile"] = commit.IsImageFile
|
||||||
|
@ -239,7 +238,6 @@ func CompareDiff(ctx *context.Context) {
|
||||||
}
|
}
|
||||||
commits = models.ValidateCommitsWithEmails(commits)
|
commits = models.ValidateCommitsWithEmails(commits)
|
||||||
|
|
||||||
ctx.Data["IsSplitStyle"] = ctx.Query("style") == "split"
|
|
||||||
ctx.Data["CommitRepoLink"] = ctx.Repo.RepoLink
|
ctx.Data["CommitRepoLink"] = ctx.Repo.RepoLink
|
||||||
ctx.Data["Commits"] = commits
|
ctx.Data["Commits"] = commits
|
||||||
ctx.Data["CommitCount"] = commits.Len()
|
ctx.Data["CommitCount"] = commits.Len()
|
||||||
|
|
|
@ -21,3 +21,24 @@ func SetEditorconfigIfExists(ctx *context.Context) {
|
||||||
|
|
||||||
ctx.Data["Editorconfig"] = ec
|
ctx.Data["Editorconfig"] = ec
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func SetDiffViewStyle(ctx *context.Context) {
|
||||||
|
var (
|
||||||
|
userStyle = ctx.User.DiffViewStyle
|
||||||
|
queryStyle = ctx.Query("style")
|
||||||
|
style string
|
||||||
|
)
|
||||||
|
|
||||||
|
if queryStyle == "unified" || queryStyle == "split" {
|
||||||
|
style = queryStyle
|
||||||
|
} else if userStyle == "unified" || userStyle == "split" {
|
||||||
|
style = userStyle
|
||||||
|
} else {
|
||||||
|
style = "unified"
|
||||||
|
}
|
||||||
|
|
||||||
|
ctx.Data["IsSplitStyle"] = style == "split"
|
||||||
|
if err := ctx.User.UpdateDiffViewStyle(style); err != nil {
|
||||||
|
ctx.Handle(500, "ErrUpdateDiffViewStyle", err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -367,7 +367,6 @@ func ViewPullFiles(ctx *context.Context) {
|
||||||
}
|
}
|
||||||
|
|
||||||
headTarget := path.Join(pull.HeadUserName, pull.HeadRepo.Name)
|
headTarget := path.Join(pull.HeadUserName, pull.HeadRepo.Name)
|
||||||
ctx.Data["IsSplitStyle"] = ctx.Query("style") == "split"
|
|
||||||
ctx.Data["Username"] = pull.HeadUserName
|
ctx.Data["Username"] = pull.HeadUserName
|
||||||
ctx.Data["Reponame"] = pull.HeadRepo.Name
|
ctx.Data["Reponame"] = pull.HeadRepo.Name
|
||||||
ctx.Data["IsImageFile"] = commit.IsImageFile
|
ctx.Data["IsImageFile"] = commit.IsImageFile
|
||||||
|
|
Reference in a new issue