mirror of
https://github.com/go-gitea/gitea.git
synced 2025-07-19 15:00: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()
|
defer closer.Close()
|
||||||
|
|
||||||
refName := gitRepo.UnstableGuessRefByShortName(ref)
|
refName := gitRepo.UnstableGuessRefByShortName(ref)
|
||||||
|
var results []*files_service.TreeEntry
|
||||||
if !recursive {
|
if !recursive {
|
||||||
results, err := files_service.GetTreeList(ctx, ctx.Repo.Repository, dir, refName, false)
|
results, err = files_service.GetTreeList(ctx, ctx.Repo.Repository, dir, refName, false)
|
||||||
if err != nil {
|
} else {
|
||||||
ctx.ServerError("GetTreeList", err)
|
results, err = files_service.GetTreeInformation(ctx, ctx.Repo.Repository, dir, refName)
|
||||||
return
|
|
||||||
}
|
}
|
||||||
ctx.JSON(http.StatusOK, results)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
results, err := files_service.GetTreeInformation(ctx, ctx.Repo.Repository, dir, refName)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
ctx.ServerError("GetTreeList", err)
|
ctx.ServerError("GetTreeInformation", err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
ctx.JSON(http.StatusOK, results)
|
ctx.JSON(http.StatusOK, results)
|
||||||
|
@ -8,6 +8,7 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"net/url"
|
"net/url"
|
||||||
"path"
|
"path"
|
||||||
|
"sort"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
repo_model "code.gitea.io/gitea/models/repo"
|
repo_model "code.gitea.io/gitea/models/repo"
|
||||||
@ -126,7 +127,7 @@ type TreeEntry struct {
|
|||||||
Name string `json:"name"`
|
Name string `json:"name"`
|
||||||
IsFile bool `json:"isFile"`
|
IsFile bool `json:"isFile"`
|
||||||
Path string `json:"path"`
|
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 {
|
for _, tree := range treeList {
|
||||||
if !tree.IsFile {
|
if !tree.IsFile {
|
||||||
tree.Children = mapTree[tree.Path]
|
tree.Children = mapTree[tree.Path]
|
||||||
|
sortTreeEntries(tree.Children)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sortTreeEntries(treeList)
|
||||||
|
|
||||||
return treeList, nil
|
return treeList, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -471,5 +475,17 @@ func GetTreeInformation(ctx context.Context, repo *repo_model.Repository, treePa
|
|||||||
Path: path.Join(dir, entry.Name()),
|
Path: path.Join(dir, entry.Name()),
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
sortTreeEntries(treeList)
|
||||||
|
sortTreeEntries(parentEntry.Children)
|
||||||
return treeList, nil
|
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) {
|
if (json instanceof Array) {
|
||||||
return json.map((i) => ({
|
return json.map((i) => ({
|
||||||
name: i.name,
|
name: i.name,
|
||||||
isFile: i.type === 'file',
|
isFile: i.isFile,
|
||||||
htmlUrl: i.html_url,
|
htmlUrl: i.html_url,
|
||||||
path: i.path,
|
path: i.path,
|
||||||
}));
|
}));
|
||||||
|
Loading…
x
Reference in New Issue
Block a user