mirror of
https://github.com/go-gitea/gitea.git
synced 2025-07-17 06:42:52 +02:00
Fix bug
This commit is contained in:
parent
1a1fe32256
commit
bf15e1878c
@ -68,19 +68,14 @@ func Tree(ctx *context.Context) {
|
||||
defer closer.Close()
|
||||
|
||||
refName := gitRepo.UnstableGuessRefByShortName(ref)
|
||||
var results []*files_service.TreeEntry
|
||||
if !recursive {
|
||||
results, err := files_service.GetTreeList(ctx, ctx.Repo.Repository, dir, refName, false)
|
||||
if err != nil {
|
||||
ctx.ServerError("GetTreeList", err)
|
||||
return
|
||||
}
|
||||
ctx.JSON(http.StatusOK, results)
|
||||
return
|
||||
results, err = files_service.GetTreeList(ctx, ctx.Repo.Repository, dir, refName, false)
|
||||
} else {
|
||||
results, err = files_service.GetTreeInformation(ctx, ctx.Repo.Repository, dir, refName)
|
||||
}
|
||||
|
||||
results, err := files_service.GetTreeInformation(ctx, ctx.Repo.Repository, dir, refName)
|
||||
if err != nil {
|
||||
ctx.ServerError("GetTreeList", err)
|
||||
ctx.ServerError("GetTreeInformation", err)
|
||||
return
|
||||
}
|
||||
ctx.JSON(http.StatusOK, results)
|
||||
|
@ -8,6 +8,7 @@ import (
|
||||
"fmt"
|
||||
"net/url"
|
||||
"path"
|
||||
"sort"
|
||||
"strings"
|
||||
|
||||
repo_model "code.gitea.io/gitea/models/repo"
|
||||
@ -126,7 +127,7 @@ type TreeEntry struct {
|
||||
Name string `json:"name"`
|
||||
IsFile bool `json:"isFile"`
|
||||
Path string `json:"path"`
|
||||
Children []*TreeEntry `json:"children"`
|
||||
Children []*TreeEntry `json:"children, omitempty"`
|
||||
}
|
||||
|
||||
/*
|
||||
@ -253,9 +254,12 @@ func GetTreeList(ctx context.Context, repo *repo_model.Repository, treePath stri
|
||||
for _, tree := range treeList {
|
||||
if !tree.IsFile {
|
||||
tree.Children = mapTree[tree.Path]
|
||||
sortTreeEntries(tree.Children)
|
||||
}
|
||||
}
|
||||
|
||||
sortTreeEntries(treeList)
|
||||
|
||||
return treeList, nil
|
||||
}
|
||||
|
||||
@ -471,5 +475,17 @@ func GetTreeInformation(ctx context.Context, repo *repo_model.Repository, treePa
|
||||
Path: path.Join(dir, entry.Name()),
|
||||
})
|
||||
}
|
||||
sortTreeEntries(treeList)
|
||||
sortTreeEntries(parentEntry.Children)
|
||||
return treeList, nil
|
||||
}
|
||||
|
||||
// sortTreeEntries list directory first and with alpha sequence
|
||||
func sortTreeEntries(entries []*TreeEntry) {
|
||||
sort.Slice(entries, func(i, j int) bool {
|
||||
if entries[i].IsFile != entries[j].IsFile {
|
||||
return !entries[i].IsFile
|
||||
}
|
||||
return entries[i].Name < entries[j].Name
|
||||
})
|
||||
}
|
||||
|
@ -36,7 +36,7 @@ async function loadChildren(item, recursive?: boolean) {
|
||||
if (json instanceof Array) {
|
||||
return json.map((i) => ({
|
||||
name: i.name,
|
||||
isFile: i.type === 'file',
|
||||
isFile: i.isFile,
|
||||
htmlUrl: i.html_url,
|
||||
path: i.path,
|
||||
}));
|
||||
|
Loading…
x
Reference in New Issue
Block a user