Browse Source

Remember diff view style (#163)

tags/v1.2.0-rc1
Andrey Nering Lunny Xiao 8 years ago
parent
commit
43e4529fb4
7 changed files with 47 additions and 7 deletions
  1. +3
    -3
      cmd/web.go
  2. +3
    -1
      models/migrations/migrations.go
  3. +12
    -0
      models/migrations/v14.go
  4. +8
    -0
      models/user.go
  5. +0
    -2
      routers/repo/commit.go
  6. +21
    -0
      routers/repo/middlewares.go
  7. +0
    -1
      routers/repo/pull.go

+ 3
- 3
cmd/web.go View File

@@ -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)


+ 3
- 1
models/migrations/migrations.go View File

@@ -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
} }


+ 12
- 0
models/migrations/v14.go View File

@@ -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))
}

+ 8
- 0
models/user.go View File

@@ -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":


+ 0
- 2
routers/repo/commit.go View File

@@ -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
- 0
routers/repo/middlewares.go View File

@@ -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)
}
}

+ 0
- 1
routers/repo/pull.go View File

@@ -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


Loading…
Cancel
Save