Skip to content

Commit 86dbbf9

Browse files
committed
Added auto-save whitespace behavior if it changed manually
1 parent 8053b60 commit 86dbbf9

File tree

2 files changed

+36
-6
lines changed

2 files changed

+36
-6
lines changed

routers/web/repo/middlewares.go

Lines changed: 35 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -63,11 +63,41 @@ func SetDiffViewStyle(ctx *context.Context) {
6363

6464
// SetWhitespaceBehavior set whitespace behavior as render variable
6565
func SetWhitespaceBehavior(ctx *context.Context) {
66-
whitespaceBehavior := ctx.FormString("whitespace")
67-
switch whitespaceBehavior {
68-
case "ignore-all", "ignore-eol", "ignore-change":
69-
ctx.Data["WhitespaceBehavior"] = whitespaceBehavior
70-
default:
66+
queryWhitespaceBehavior := ctx.FormString("whitespace")
67+
if !ctx.IsSigned {
68+
switch queryWhitespaceBehavior {
69+
case "ignore-all", "ignore-eol", "ignore-change":
70+
ctx.Data["WhitespaceBehavior"] = queryWhitespaceBehavior
71+
default:
72+
ctx.Data["WhitespaceBehavior"] = ""
73+
}
74+
return
75+
}
76+
77+
userWhitespaceBehaviour, err := user_model.GetUserSetting(ctx.User.ID, "diff.whitespace_behaviour", "all")
78+
if err != nil {
79+
ctx.ServerError("ErrFetchWhitespaceBehavior", err)
80+
}
81+
82+
var whitespaceBehavior string
83+
84+
if queryWhitespaceBehavior == "ignore-all" || queryWhitespaceBehavior == "ignore-eol" || queryWhitespaceBehavior == "ignore-change" || queryWhitespaceBehavior == "all" {
85+
whitespaceBehavior = queryWhitespaceBehavior
86+
} else if userWhitespaceBehaviour == "ignore-all" || userWhitespaceBehaviour == "ignore-eol" || userWhitespaceBehaviour == "ignore-change" || userWhitespaceBehaviour == "all" {
87+
whitespaceBehavior = userWhitespaceBehaviour
88+
} else {
89+
whitespaceBehavior = "all"
90+
}
91+
92+
if whitespaceBehavior == "all" {
7193
ctx.Data["WhitespaceBehavior"] = ""
94+
} else {
95+
ctx.Data["WhitespaceBehavior"] = whitespaceBehavior
96+
}
97+
98+
if userWhitespaceBehaviour != whitespaceBehavior {
99+
if err := user_model.SetUserSetting(ctx.User.ID, "diff.whitespace_behaviour", whitespaceBehavior); err != nil {
100+
ctx.ServerError("ErrUpdateWhitespaceBehavior", err)
101+
}
72102
}
73103
}

templates/repo/diff/whitespace_dropdown.tmpl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
{{.i18n.Tr "repo.diff.whitespace_button"}}
33
{{svg "octicon-triangle-down" 14 "dropdown icon"}}
44
<div class="menu">
5-
<a class="item" href="?style={{if .IsSplitStyle}}split{{else}}unified{{end}}&whitespace=">
5+
<a class="item" href="?style={{if .IsSplitStyle}}split{{else}}unified{{end}}&whitespace=all">
66
<i class="circle {{ if eq .WhitespaceBehavior "" }}dot{{else}}outline{{end}} icon"></i>
77
{{.i18n.Tr "repo.diff.whitespace_show_everything"}}
88
</a>

0 commit comments

Comments
 (0)