Skip to content

Commit

Permalink
Added auto-save whitespace behavior if it changed manually
Browse files Browse the repository at this point in the history
  • Loading branch information
POPSuL committed Jan 25, 2022
1 parent 8053b60 commit 86dbbf9
Show file tree
Hide file tree
Showing 2 changed files with 36 additions and 6 deletions.
40 changes: 35 additions & 5 deletions routers/web/repo/middlewares.go
Original file line number Diff line number Diff line change
Expand Up @@ -63,11 +63,41 @@ func SetDiffViewStyle(ctx *context.Context) {

// SetWhitespaceBehavior set whitespace behavior as render variable
func SetWhitespaceBehavior(ctx *context.Context) {
whitespaceBehavior := ctx.FormString("whitespace")
switch whitespaceBehavior {
case "ignore-all", "ignore-eol", "ignore-change":
ctx.Data["WhitespaceBehavior"] = whitespaceBehavior
default:
queryWhitespaceBehavior := ctx.FormString("whitespace")
if !ctx.IsSigned {
switch queryWhitespaceBehavior {
case "ignore-all", "ignore-eol", "ignore-change":
ctx.Data["WhitespaceBehavior"] = queryWhitespaceBehavior
default:
ctx.Data["WhitespaceBehavior"] = ""
}
return
}

userWhitespaceBehaviour, err := user_model.GetUserSetting(ctx.User.ID, "diff.whitespace_behaviour", "all")
if err != nil {
ctx.ServerError("ErrFetchWhitespaceBehavior", err)
}

var whitespaceBehavior string

if queryWhitespaceBehavior == "ignore-all" || queryWhitespaceBehavior == "ignore-eol" || queryWhitespaceBehavior == "ignore-change" || queryWhitespaceBehavior == "all" {
whitespaceBehavior = queryWhitespaceBehavior
} else if userWhitespaceBehaviour == "ignore-all" || userWhitespaceBehaviour == "ignore-eol" || userWhitespaceBehaviour == "ignore-change" || userWhitespaceBehaviour == "all" {
whitespaceBehavior = userWhitespaceBehaviour
} else {
whitespaceBehavior = "all"
}

if whitespaceBehavior == "all" {
ctx.Data["WhitespaceBehavior"] = ""
} else {
ctx.Data["WhitespaceBehavior"] = whitespaceBehavior
}

if userWhitespaceBehaviour != whitespaceBehavior {
if err := user_model.SetUserSetting(ctx.User.ID, "diff.whitespace_behaviour", whitespaceBehavior); err != nil {
ctx.ServerError("ErrUpdateWhitespaceBehavior", err)
}
}
}
2 changes: 1 addition & 1 deletion templates/repo/diff/whitespace_dropdown.tmpl
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
{{.i18n.Tr "repo.diff.whitespace_button"}}
{{svg "octicon-triangle-down" 14 "dropdown icon"}}
<div class="menu">
<a class="item" href="?style={{if .IsSplitStyle}}split{{else}}unified{{end}}&whitespace=">
<a class="item" href="?style={{if .IsSplitStyle}}split{{else}}unified{{end}}&whitespace=all">
<i class="circle {{ if eq .WhitespaceBehavior "" }}dot{{else}}outline{{end}} icon"></i>
{{.i18n.Tr "repo.diff.whitespace_show_everything"}}
</a>
Expand Down

0 comments on commit 86dbbf9

Please sign in to comment.