diff --git a/modules/base/template.go b/modules/base/template.go index f5f567ade..a93d20ad8 100644 --- a/modules/base/template.go +++ b/modules/base/template.go @@ -141,6 +141,9 @@ var TemplateFuncs template.FuncMap = map[string]interface{}{ "AppName": func() string { return setting.AppName }, + "AppUrl": func() string { + return setting.AppUrl + }, "AppSubUrl": func() string { return setting.AppSubUrl }, diff --git a/modules/git/submodule.go b/modules/git/submodule.go index 0c7c2696c..1291e112b 100644 --- a/modules/git/submodule.go +++ b/modules/git/submodule.go @@ -30,7 +30,7 @@ func NewSubModuleFile(c *Commit, refUrl, refId string) *SubModuleFile { } // RefUrl guesses and returns reference URL. -func (sf *SubModuleFile) RefUrl() string { +func (sf *SubModuleFile) RefUrl(appUrl string) string { if sf.refUrl == "" { return "" } @@ -51,8 +51,14 @@ func (sf *SubModuleFile) RefUrl() string { i := strings.Index(url, "@") j := strings.LastIndex(url, ":") if i > -1 && j > -1 { - return "http://" + url[i+1:j] + "/" + url[j+1:] + // fix problem with reverse proxy works only with local server + if strings.Contains(appUrl,url[i+1:j]) { + return appUrl + url[j+1:] + } else { + return "http://" + url[i+1:j] + "/" + url[j+1:] + } } + return url } diff --git a/templates/repo/view_list.tmpl b/templates/repo/view_list.tmpl index d3303193f..bebac1ea4 100644 --- a/templates/repo/view_list.tmpl +++ b/templates/repo/view_list.tmpl @@ -39,8 +39,8 @@ <span class="octicon octicon-file-submodule"></span> </td> <td class="name"> - {{if $commit.RefUrl}} - <a href="{{$commit.RefUrl}}" class="text-truncate">{{$entry.Name}}</a> @ <a href="{{$commit.RefUrl}}/commit/{{$commit.RefId}}">{{ShortSha $commit.RefId}}</a> + {{if $commit.RefUrl AppUrl}} + <a href="{{$commit.RefUrl AppUrl}}" class="text-truncate">{{$entry.Name}}</a> @ <a href="{{$commit.RefUrl AppUrl}}/commit/{{$commit.RefId}}">{{ShortSha $commit.RefId}}</a> {{else}} {{$entry.Name}} @ {{ShortSha $commit.RefId}} {{end}}