Skip to content

Commit 8039365

Browse files
committed
make SniffedType accessible in diff
1 parent b4217d4 commit 8039365

File tree

2 files changed

+20
-11
lines changed

2 files changed

+20
-11
lines changed

routers/web/repo/compare.go

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ import (
3434
api "code.gitea.io/gitea/modules/structs"
3535
"code.gitea.io/gitea/modules/upload"
3636
"code.gitea.io/gitea/modules/util"
37+
"code.gitea.io/gitea/modules/typesniffer"
3738
"code.gitea.io/gitea/services/gitdiff"
3839
)
3940

@@ -60,6 +61,21 @@ func setCompareContext(ctx *context.Context, before, head *git.Commit, headOwner
6061
return blob
6162
}
6263

64+
ctx.Data["GetSniffedTypeForBlob"] = func(blob *git.Blob) typesniffer.SniffedType {
65+
st := typesniffer.SniffedType{}
66+
67+
if blob == nil {
68+
return st
69+
}
70+
71+
st, err := blob.GuessContentType()
72+
if err != nil {
73+
log.Error("GuessContentType failed: %v", err)
74+
return st
75+
}
76+
return st
77+
}
78+
6379
setPathsCompareContext(ctx, before, head, headOwner, headName)
6480
setImageCompareContext(ctx)
6581
setCsvCompareContext(ctx)
@@ -87,16 +103,7 @@ func setPathsCompareContext(ctx *context.Context, base, head *git.Commit, headOw
87103

88104
// setImageCompareContext sets context data that is required by image compare template
89105
func setImageCompareContext(ctx *context.Context) {
90-
ctx.Data["IsBlobAnImage"] = func(blob *git.Blob) bool {
91-
if blob == nil {
92-
return false
93-
}
94-
95-
st, err := blob.GuessContentType()
96-
if err != nil {
97-
log.Error("GuessContentType failed: %v", err)
98-
return false
99-
}
106+
ctx.Data["IsSniffedTypeImage"] = func(st typesniffer.SniffedType) bool {
100107
return st.IsImage() && (setting.UI.SVG.Enabled || !st.IsSvgImage())
101108
}
102109
}

templates/repo/diff/box.tmpl

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,9 @@
9797
{{/*notice: the index of Diff.Files should not be used for element ID, because the index will be restarted from 0 when doing load-more for PRs with a lot of files*/}}
9898
{{$blobBase := call $.GetBlobByPathForCommit $.BeforeCommit $file.OldName}}
9999
{{$blobHead := call $.GetBlobByPathForCommit $.HeadCommit $file.Name}}
100-
{{$isImage := or (call $.IsBlobAnImage $blobBase) (call $.IsBlobAnImage $blobHead)}}
100+
{{$stBase := call $.GetSniffedTypeForBlob $blobBase}}
101+
{{$stHead := call $.GetSniffedTypeForBlob $blobHead}}
102+
{{$isImage:= or (call $.IsSniffedTypeImage $stBase) (call $.IsSniffedTypeImage $stHead)}}
101103
{{$isCsv := (call $.IsCsvFile $file)}}
102104
{{$showFileViewToggle := or $isImage (and (not $file.IsIncomplete) $isCsv)}}
103105
{{$isExpandable := or (gt $file.Addition 0) (gt $file.Deletion 0) $file.IsBin}}

0 commit comments

Comments
 (0)