Skip to content

Commit bf15e18

Browse files
committed
Fix bug
1 parent 1a1fe32 commit bf15e18

File tree

3 files changed

+23
-12
lines changed

3 files changed

+23
-12
lines changed

routers/web/repo/tree.go

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -68,19 +68,14 @@ func Tree(ctx *context.Context) {
6868
defer closer.Close()
6969

7070
refName := gitRepo.UnstableGuessRefByShortName(ref)
71+
var results []*files_service.TreeEntry
7172
if !recursive {
72-
results, err := files_service.GetTreeList(ctx, ctx.Repo.Repository, dir, refName, false)
73-
if err != nil {
74-
ctx.ServerError("GetTreeList", err)
75-
return
76-
}
77-
ctx.JSON(http.StatusOK, results)
78-
return
73+
results, err = files_service.GetTreeList(ctx, ctx.Repo.Repository, dir, refName, false)
74+
} else {
75+
results, err = files_service.GetTreeInformation(ctx, ctx.Repo.Repository, dir, refName)
7976
}
80-
81-
results, err := files_service.GetTreeInformation(ctx, ctx.Repo.Repository, dir, refName)
8277
if err != nil {
83-
ctx.ServerError("GetTreeList", err)
78+
ctx.ServerError("GetTreeInformation", err)
8479
return
8580
}
8681
ctx.JSON(http.StatusOK, results)

services/repository/files/tree.go

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import (
88
"fmt"
99
"net/url"
1010
"path"
11+
"sort"
1112
"strings"
1213

1314
repo_model "code.gitea.io/gitea/models/repo"
@@ -126,7 +127,7 @@ type TreeEntry struct {
126127
Name string `json:"name"`
127128
IsFile bool `json:"isFile"`
128129
Path string `json:"path"`
129-
Children []*TreeEntry `json:"children"`
130+
Children []*TreeEntry `json:"children, omitempty"`
130131
}
131132

132133
/*
@@ -253,9 +254,12 @@ func GetTreeList(ctx context.Context, repo *repo_model.Repository, treePath stri
253254
for _, tree := range treeList {
254255
if !tree.IsFile {
255256
tree.Children = mapTree[tree.Path]
257+
sortTreeEntries(tree.Children)
256258
}
257259
}
258260

261+
sortTreeEntries(treeList)
262+
259263
return treeList, nil
260264
}
261265

@@ -471,5 +475,17 @@ func GetTreeInformation(ctx context.Context, repo *repo_model.Repository, treePa
471475
Path: path.Join(dir, entry.Name()),
472476
})
473477
}
478+
sortTreeEntries(treeList)
479+
sortTreeEntries(parentEntry.Children)
474480
return treeList, nil
475481
}
482+
483+
// sortTreeEntries list directory first and with alpha sequence
484+
func sortTreeEntries(entries []*TreeEntry) {
485+
sort.Slice(entries, func(i, j int) bool {
486+
if entries[i].IsFile != entries[j].IsFile {
487+
return !entries[i].IsFile
488+
}
489+
return entries[i].Name < entries[j].Name
490+
})
491+
}

web_src/js/features/repo-view-file-tree-sidebar.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ async function loadChildren(item, recursive?: boolean) {
3636
if (json instanceof Array) {
3737
return json.map((i) => ({
3838
name: i.name,
39-
isFile: i.type === 'file',
39+
isFile: i.isFile,
4040
htmlUrl: i.html_url,
4141
path: i.path,
4242
}));

0 commit comments

Comments
 (0)