aboutsummaryrefslogtreecommitdiff
path: root/routers/repo/editor.go
diff options
context:
space:
mode:
authorUnknwon <u@gogs.io>2017-02-16 08:34:49 -0500
committerUnknwon <u@gogs.io>2017-02-16 08:34:49 -0500
commitf129e0ecb57634bc02972b7ff5a3175a829c0534 (patch)
tree431b039af0aea15f9e9719355587278a5f679a7d /routers/repo/editor.go
parent88143f1934af6e2d1e2e4f260a9dc08f836437ca (diff)
repo/editor: fix breadcrumb path cuts parent dirs (#3859)
Diffstat (limited to 'routers/repo/editor.go')
-rw-r--r--routers/repo/editor.go47
1 files changed, 29 insertions, 18 deletions
diff --git a/routers/repo/editor.go b/routers/repo/editor.go
index 82a2cb8c..22e36d96 100644
--- a/routers/repo/editor.go
+++ b/routers/repo/editor.go
@@ -29,16 +29,28 @@ const (
UPLOAD_FILE base.TplName = "repo/editor/upload"
)
+// getParentTreeFields returns list of parent tree names and corresponding tree paths
+// based on given tree path.
+func getParentTreeFields(treePath string) (treeNames []string, treePaths []string) {
+ if len(treePath) == 0 {
+ return treeNames, treePaths
+ }
+
+ treeNames = strings.Split(treePath, "/")
+ treePaths = make([]string, len(treeNames))
+ for i := range treeNames {
+ treePaths[i] = strings.Join(treeNames[:i+1], "/")
+ }
+ return treeNames, treePaths
+}
+
func editFile(ctx *context.Context, isNewFile bool) {
ctx.Data["PageIsEdit"] = true
ctx.Data["IsNewFile"] = isNewFile
ctx.Data["RequireHighlightJS"] = true
ctx.Data["RequireSimpleMDE"] = true
- var treeNames []string
- if len(ctx.Repo.TreePath) > 0 {
- treeNames = strings.Split(ctx.Repo.TreePath, "/")
- }
+ treeNames, treePaths := getParentTreeFields(ctx.Repo.TreePath)
if !isNewFile {
entry, err := ctx.Repo.Commit.GetTreeEntryByPath(ctx.Repo.TreePath)
@@ -88,6 +100,7 @@ func editFile(ctx *context.Context, isNewFile bool) {
}
ctx.Data["TreeNames"] = treeNames
+ ctx.Data["TreePaths"] = treePaths
ctx.Data["BranchLink"] = ctx.Repo.RepoLink + "/src/" + ctx.Repo.BranchName
ctx.Data["commit_summary"] = ""
ctx.Data["commit_message"] = ""
@@ -127,14 +140,11 @@ func editFilePost(ctx *context.Context, form auth.EditRepoFileForm, isNewFile bo
}
form.TreePath = strings.Trim(form.TreePath, " /")
-
- var treeNames []string
- if len(form.TreePath) > 0 {
- treeNames = strings.Split(form.TreePath, "/")
- }
+ treeNames, treePaths := getParentTreeFields(form.TreePath)
ctx.Data["TreePath"] = form.TreePath
ctx.Data["TreeNames"] = treeNames
+ ctx.Data["TreePaths"] = treePaths
ctx.Data["BranchLink"] = ctx.Repo.RepoLink + "/src/" + branchName
ctx.Data["FileContent"] = form.Content
ctx.Data["commit_summary"] = form.CommitSummary
@@ -383,13 +393,14 @@ func UploadFile(ctx *context.Context) {
ctx.Data["PageIsUpload"] = true
renderUploadSettings(ctx)
- // We must at least have one element for user to input.
- treeNames := []string{""}
- if len(ctx.Repo.TreePath) > 0 {
- treeNames = strings.Split(ctx.Repo.TreePath, "/")
+ treeNames, treePaths := getParentTreeFields(ctx.Repo.TreePath)
+ if len(treeNames) == 0 {
+ // We must at least have one element for user to input.
+ treeNames = []string{""}
}
ctx.Data["TreeNames"] = treeNames
+ ctx.Data["TreePaths"] = treePaths
ctx.Data["BranchLink"] = ctx.Repo.RepoLink + "/src/" + ctx.Repo.BranchName
ctx.Data["commit_summary"] = ""
ctx.Data["commit_message"] = ""
@@ -411,15 +422,15 @@ func UploadFilePost(ctx *context.Context, form auth.UploadRepoFileForm) {
}
form.TreePath = strings.Trim(form.TreePath, " /")
-
- // We must at least have one element for user to input.
- treeNames := []string{""}
- if len(form.TreePath) > 0 {
- treeNames = strings.Split(form.TreePath, "/")
+ treeNames, treePaths := getParentTreeFields(form.TreePath)
+ if len(treeNames) == 0 {
+ // We must at least have one element for user to input.
+ treeNames = []string{""}
}
ctx.Data["TreePath"] = form.TreePath
ctx.Data["TreeNames"] = treeNames
+ ctx.Data["TreePaths"] = treePaths
ctx.Data["BranchLink"] = ctx.Repo.RepoLink + "/src/" + branchName
ctx.Data["commit_summary"] = form.CommitSummary
ctx.Data["commit_message"] = form.CommitMessage