From 35977cd34cd635bca7f07ed2eb1fba0df9944e1d Mon Sep 17 00:00:00 2001 From: Unknwon <joe2010xtmf@163.com> Date: Fri, 7 Nov 2014 16:44:25 -0500 Subject: [PATCH] continue work on #255 --- modules/base/template.go | 3 ++ modules/middleware/repo.go | 68 ----------------------------------- templates/repo/header.tmpl | 4 +-- templates/repo/home.tmpl | 10 +++--- templates/repo/sidebar.tmpl | 2 +- templates/repo/view_file.tmpl | 8 ++--- templates/repo/view_list.tmpl | 4 +-- 7 files changed, 17 insertions(+), 82 deletions(-) diff --git a/modules/base/template.go b/modules/base/template.go index 58572e24e4..446d01dd09 100644 --- a/modules/base/template.go +++ b/modules/base/template.go @@ -141,6 +141,9 @@ var TemplateFuncs template.FuncMap = map[string]interface{}{ "Oauth2Icon": Oauth2Icon, "Oauth2Name": Oauth2Name, "ToUtf8": ToUtf8, + "EscapePound": func(str string) string { + return strings.Replace(str, "#", "%23", -1) + }, } type Actioner interface { diff --git a/modules/middleware/repo.go b/modules/middleware/repo.go index 3d435a0540..8608ca8fa0 100644 --- a/modules/middleware/repo.go +++ b/modules/middleware/repo.go @@ -44,7 +44,6 @@ func RepoRef() macaron.Handler { } ctx.Repo.CommitId = ctx.Repo.Commit.Id.String() ctx.Repo.IsBranch = true - ctx.Repo.BranchName = refName } else { hasMatched := false @@ -293,73 +292,6 @@ func RepoAssignment(redirect bool, args ...bool) macaron.Handler { ctx.Data["GoGetImport"] = fmt.Sprintf("%s/%s/%s", setting.Domain, u.LowerName, repo.LowerName) } - // when repo is bare, not valid branch - // if !ctx.Repo.Repository.IsBare && validBranch { - // detect: - // if len(refName) > 0 { - // if gitRepo.IsBranchExist(refName) { - // ctx.Repo.IsBranch = true - // ctx.Repo.BranchName = refName - - // ctx.Repo.Commit, err = gitRepo.GetCommitOfBranch(refName) - // if err != nil { - // ctx.Handle(500, "RepoAssignment invalid branch", err) - // return - // } - // ctx.Repo.CommitId = ctx.Repo.Commit.Id.String() - - // } else if gitRepo.IsTagExist(refName) { - // ctx.Repo.IsTag = true - // ctx.Repo.BranchName = refName - // ctx.Repo.Commit, err = ctx.Repo.GitRepo.GetCommitOfTag(refName) - // if err != nil { - // ctx.Handle(500, "Fail to get tag commit", err) - // return - // } - // ctx.Repo.CommitId = ctx.Repo.Commit.Id.String() - // } else if len(refName) == 40 { - // ctx.Repo.IsCommit = true - // ctx.Repo.CommitId = refName - // ctx.Repo.BranchName = refName - - // ctx.Repo.Commit, err = gitRepo.GetCommit(refName) - // if err != nil { - // ctx.Handle(404, "RepoAssignment invalid commit", nil) - // return - // } - // } else { - // ctx.Handle(404, "RepoAssignment invalid repo", fmt.Errorf("branch or tag not exist: %s", refName)) - // return - // } - - // } else { - // if len(refName) == 0 { - // if gitRepo.IsBranchExist(ctx.Repo.Repository.DefaultBranch) { - // refName = ctx.Repo.Repository.DefaultBranch - // } else { - // brs, err := gitRepo.GetBranches() - // if err != nil { - // ctx.Handle(500, "GetBranches", err) - // return - // } - // refName = brs[0] - // } - // } - // goto detect - // } - - // ctx.Data["IsBranch"] = ctx.Repo.IsBranch - // ctx.Data["IsTag"] = ctx.Repo.IsTag - // ctx.Data["IsCommit"] = ctx.Repo.IsCommit - - // ctx.Repo.CommitsCount, err = ctx.Repo.Commit.CommitsCount() - // if err != nil { - // ctx.Handle(500, "CommitsCount", err) - // return - // } - // ctx.Data["CommitsCount"] = ctx.Repo.CommitsCount - // } - // repo is bare and display enable if ctx.Repo.Repository.IsBare { log.Debug("Bare repository: %s", ctx.Repo.RepoLink) diff --git a/templates/repo/header.tmpl b/templates/repo/header.tmpl index 976c8e0c00..2344311d61 100644 --- a/templates/repo/header.tmpl +++ b/templates/repo/header.tmpl @@ -25,8 +25,8 @@ <p class="text-center" id="repo-clone-help">{{$.i18n.Tr "repo.clone_helper" | Str2html}}</p> <hr/> <div class="text-center" id="repo-clone-zip"> - <a class="btn btn-green btn-radius" href="{{$.RepoLink}}/archive/{{$.BranchName}}.zip"><i class="octicon octicon-file-zip"></i>ZIP</a> - <a class="btn btn-green btn-radius" href="{{$.RepoLink}}/archive/{{$.BranchName}}.tar.gz"><i class="octicon octicon-file-zip"></i>TAR.GZ</a> + <a class="btn btn-green btn-radius" href="{{$.RepoLink}}/archive/{{EscapePound $.BranchName}}.zip"><i class="octicon octicon-file-zip"></i>ZIP</a> + <a class="btn btn-green btn-radius" href="{{$.RepoLink}}/archive/{{EscapePound $.BranchName}}.tar.gz"><i class="octicon octicon-file-zip"></i>TAR.GZ</a> </div> </div> </div> diff --git a/templates/repo/home.tmpl b/templates/repo/home.tmpl index 4928033fc2..acfdc38bd6 100644 --- a/templates/repo/home.tmpl +++ b/templates/repo/home.tmpl @@ -31,26 +31,26 @@ </ul> <ul class="menu menu-vertical switching-list {{if .IsTag}}hide{{end}}" id="repo-branch-list"> {{range .Branches}} - <li {{if eq . $.BranchName}}class="checked"{{end}}><a href="{{$.RepoLink}}/src/{{.}}"><i class="octicon octicon-check"></i>{{.}}</a></li> + <li {{if eq . $.BranchName}}class="checked"{{end}}><a href="{{$.RepoLink}}/src/{{EscapePound .}}"><i class="octicon octicon-check"></i>{{.}}</a></li> {{end}} </ul> <ul class="menu menu-vertical switching-list {{if not .IsTag}}hide{{end}}" id="repo-tag-list"> {{range .Tags}} - <li {{if eq . $.BranchName}}class="checked"{{end}}><a href="{{$.RepoLink}}/src/{{.}}"><i class="octicon octicon-check"></i>{{.}}</a></li> + <li {{if eq . $.BranchName}}class="checked"{{end}}><a href="{{$.RepoLink}}/src/{{EscapePound .}}"><i class="octicon octicon-check"></i>{{.}}</a></li> {{end}} </ul> </div> </div> </li> <li id="repo-bread" class="breads"> - <a class="title bread" href="{{.RepoLink}}">{{.Repository.Name}}</a> + <a class="title bread" href="{{.RepoLink}}/src/{{EscapePound .BranchName}}">{{.Repository.Name}}</a> {{ $n := len .Treenames}} {{ $l := Subtract $n 1}} {{range $i, $v := .Treenames}} {{if eq $i $l}} - <span class="bread">{{$v}}</span> + <span class="bread">{{EscapePound $v}}</span> {{else}} - <span class="bread"><a href="{{$.BranchLink}}/{{index $.Paths $i}}">{{$v}}</a></span> + <span class="bread"><a href="{{EscapePound $.BranchLink}}/{{index $.Paths $i}}">{{$v}}</a></span> {{end}} {{end}} </li> diff --git a/templates/repo/sidebar.tmpl b/templates/repo/sidebar.tmpl index 7a00dbb8c3..9d6abb47bc 100644 --- a/templates/repo/sidebar.tmpl +++ b/templates/repo/sidebar.tmpl @@ -9,7 +9,7 @@ <li class="border-bottom"></li> <li class="head">{{if .IsViewBranch}}{{.BranchName}}{{else}}{{ShortSha .BranchName}}{{end}}</li> <li> - <a class="radius" href="{{.RepoLink}}/commits/{{.BranchName}}"><i class="octicon octicon-history"></i>{{.i18n.Tr "repo.commits"}} <span class="num right label label-gray label-radius">{{.CommitsCount}}</span></a> + <a class="radius" href="{{.RepoLink}}/commits/{{EscapePound .BranchName}}"><i class="octicon octicon-history"></i>{{.i18n.Tr "repo.commits"}} <span class="num right label label-gray label-radius">{{.CommitsCount}}</span></a> </li> <!-- <li> <a class="radius" href="{{.RepoLink}}/branches"><i class="octicon octicon-git-branch"></i>Branches<span class="num right label label-gray label-radius">{{.BrancheCount}}</span></a> diff --git a/templates/repo/view_file.tmpl b/templates/repo/view_file.tmpl index 4e2d4fc64c..d33cc95023 100644 --- a/templates/repo/view_file.tmpl +++ b/templates/repo/view_file.tmpl @@ -12,10 +12,10 @@ <strong class="file-name">{{.FileName}}</strong><span class="file-size">{{FileSize .FileSize}}</span> {{end}} {{if not .ReadmeInList}} - <a class="right" href="{{.RepoLink}}/commits/{{.BranchName}}/{{.TreeName}}"> + <a class="right" href="{{.RepoLink}}/commits/{{EscapePound .BranchName}}/{{.TreeName}}"> <button class="btn btn-medium btn-gray btn-right-radius btn-comb">{{.i18n.Tr "repo.file_history"}}</button> </a> - <a class="right" href="{{.FileLink}}"> + <a class="right" href="{{EscapePound .FileLink}}"> <button class="btn btn-medium btn-gray btn-left-radius btn-comb">{{.i18n.Tr "repo.file_raw"}}</button> </a> {{end}} @@ -26,9 +26,9 @@ {{else if not .IsFileText}} <div class="view-raw"> {{if .IsImageFile}} - <img src="{{.FileLink}}"> + <img src="{{EscapePound .FileLink}}"> {{else}} - <a href="{{.FileLink}}" rel="nofollow" class="btn btn-gray btn-radius">{{.i18n.Tr "repo.file_view_raw"}}</a> + <a href="{{EscapePound .FileLink}}" rel="nofollow" class="btn btn-gray btn-radius">{{.i18n.Tr "repo.file_view_raw"}}</a> {{end}} </div> {{else if .FileSize}} diff --git a/templates/repo/view_list.tmpl b/templates/repo/view_list.tmpl index 032b9e0f1b..e65d7c1134 100644 --- a/templates/repo/view_list.tmpl +++ b/templates/repo/view_list.tmpl @@ -18,7 +18,7 @@ {{if .HasParentPath}} <tr class="has-parent"> <td class="icon"></td> - <td class="name"><a href="{{.BranchLink}}{{.ParentPath}}">..</a></td> + <td class="name"><a href="{{EscapePound .BranchLink}}{{.ParentPath}}">..</a></td> <td class="msg"></td> <td class="age"></td> </tr> @@ -39,7 +39,7 @@ <span class="octicon octicon-file-{{if or $entry.IsDir}}directory{{else}}text{{end}}"></span> </td> <td class="name"> - <a href="{{$.BranchLink}}/{{$.TreePath}}{{$entry.Name}}" class="text-truncate">{{$entry.Name}}</a> + <a href="{{EscapePound $.BranchLink}}/{{$.TreePath}}{{$entry.Name}}" class="text-truncate">{{$entry.Name}}</a> </td> {{end}} <td class="msg">