| @@ -160,6 +160,7 @@ type DiffFile struct { | |||||
| IsDeleted bool | IsDeleted bool | ||||
| IsBin bool | IsBin bool | ||||
| IsRenamed bool | IsRenamed bool | ||||
| IsSubmodule bool | |||||
| Sections []*DiffSection | Sections []*DiffSection | ||||
| IsIncomplete bool | IsIncomplete bool | ||||
| } | } | ||||
| @@ -306,7 +307,7 @@ func ParsePatch(maxLines, maxLineCharacteres, maxFiles int, reader io.Reader) (* | |||||
| } | } | ||||
| curFileLinesCount = 0 | curFileLinesCount = 0 | ||||
| // Check file diff type. | |||||
| // Check file diff type and is submodule. | |||||
| for { | for { | ||||
| line, err := input.ReadString('\n') | line, err := input.ReadString('\n') | ||||
| if err != nil { | if err != nil { | ||||
| @@ -333,6 +334,9 @@ func ParsePatch(maxLines, maxLineCharacteres, maxFiles int, reader io.Reader) (* | |||||
| curFile.Name = b | curFile.Name = b | ||||
| } | } | ||||
| if curFile.Type > 0 { | if curFile.Type > 0 { | ||||
| if strings.HasSuffix(line, " 160000\n") { | |||||
| curFile.IsSubmodule = true | |||||
| } | |||||
| break | break | ||||
| } | } | ||||
| } | } | ||||
| @@ -68,13 +68,15 @@ | |||||
| {{end}} | {{end}} | ||||
| </div> | </div> | ||||
| <span class="file">{{if $file.IsRenamed}}{{$file.OldName}} → {{end}}{{$file.Name}}</span> | <span class="file">{{if $file.IsRenamed}}{{$file.OldName}} → {{end}}{{$file.Name}}</span> | ||||
| <div class="ui right"> | |||||
| {{if $file.IsDeleted}} | |||||
| <a class="ui basic tiny button" rel="nofollow" href="{{EscapePound $.BeforeSourcePath}}/{{EscapePound .Name}}">{{$.i18n.Tr "repo.diff.view_file"}}</a> | |||||
| {{else}} | |||||
| <a class="ui basic tiny button" rel="nofollow" href="{{EscapePound $.SourcePath}}/{{EscapePound .Name}}">{{$.i18n.Tr "repo.diff.view_file"}}</a> | |||||
| {{end}} | |||||
| </div> | |||||
| {{if not $file.IsSubmodule}} | |||||
| <div class="ui right"> | |||||
| {{if $file.IsDeleted}} | |||||
| <a class="ui basic tiny button" rel="nofollow" href="{{EscapePound $.BeforeSourcePath}}/{{EscapePound .Name}}">{{$.i18n.Tr "repo.diff.view_file"}}</a> | |||||
| {{else}} | |||||
| <a class="ui basic tiny button" rel="nofollow" href="{{EscapePound $.SourcePath}}/{{EscapePound .Name}}">{{$.i18n.Tr "repo.diff.view_file"}}</a> | |||||
| {{end}} | |||||
| </div> | |||||
| {{end}} | |||||
| </h4> | </h4> | ||||
| <div class="ui attached table segment"> | <div class="ui attached table segment"> | ||||
| {{if not $file.IsRenamed}} | {{if not $file.IsRenamed}} | ||||