aboutsummaryrefslogtreecommitdiffstats
path: root/services/repository
diff options
context:
space:
mode:
Diffstat (limited to 'services/repository')
-rw-r--r--services/repository/files/tree.go18
-rw-r--r--services/repository/files/tree_test.go21
2 files changed, 18 insertions, 21 deletions
diff --git a/services/repository/files/tree.go b/services/repository/files/tree.go
index faeb85a046..8427fcbacc 100644
--- a/services/repository/files/tree.go
+++ b/services/repository/files/tree.go
@@ -165,19 +165,11 @@ func newTreeViewNodeFromEntry(ctx context.Context, renderedIconPool *fileicon.Re
FullPath: path.Join(parentDir, entry.Name()),
}
- if entry.IsLink() {
- // TODO: symlink to a folder or a file, the icon differs
- target, err := entry.FollowLink()
- if err == nil {
- _ = target.IsDir()
- // if target.IsDir() { } else { }
- }
- }
-
- if node.EntryIcon == "" {
- node.EntryIcon = fileicon.RenderEntryIcon(renderedIconPool, entry)
- // TODO: no open icon support yet
- // node.EntryIconOpen = fileicon.RenderEntryIconOpen(renderedIconPool, entry)
+ entryInfo := fileicon.EntryInfoFromGitTreeEntry(entry)
+ node.EntryIcon = fileicon.RenderEntryIconHTML(renderedIconPool, entryInfo)
+ if entryInfo.EntryMode.IsDir() {
+ entryInfo.IsOpen = true
+ node.EntryIconOpen = fileicon.RenderEntryIconHTML(renderedIconPool, entryInfo)
}
if node.EntryMode == "commit" {
diff --git a/services/repository/files/tree_test.go b/services/repository/files/tree_test.go
index 2657c49977..a53f342d40 100644
--- a/services/repository/files/tree_test.go
+++ b/services/repository/files/tree_test.go
@@ -71,14 +71,18 @@ func TestGetTreeViewNodes(t *testing.T) {
mockIconForFolder := func(id string) template.HTML {
return template.HTML(`<svg class="svg git-entry-icon octicon-file-directory-fill" width="16" height="16" aria-hidden="true"><use xlink:href="#` + id + `"></use></svg>`)
}
+ mockOpenIconForFolder := func(id string) template.HTML {
+ return template.HTML(`<svg class="svg git-entry-icon octicon-file-directory-open-fill" width="16" height="16" aria-hidden="true"><use xlink:href="#` + id + `"></use></svg>`)
+ }
treeNodes, err := GetTreeViewNodes(ctx, renderedIconPool, ctx.Repo.Commit, "", "")
assert.NoError(t, err)
assert.Equal(t, []*TreeViewNode{
{
- EntryName: "docs",
- EntryMode: "tree",
- FullPath: "docs",
- EntryIcon: mockIconForFolder(`svg-mfi-folder-docs`),
+ EntryName: "docs",
+ EntryMode: "tree",
+ FullPath: "docs",
+ EntryIcon: mockIconForFolder(`svg-mfi-folder-docs`),
+ EntryIconOpen: mockOpenIconForFolder(`svg-mfi-folder-docs`),
},
}, treeNodes)
@@ -86,10 +90,11 @@ func TestGetTreeViewNodes(t *testing.T) {
assert.NoError(t, err)
assert.Equal(t, []*TreeViewNode{
{
- EntryName: "docs",
- EntryMode: "tree",
- FullPath: "docs",
- EntryIcon: mockIconForFolder(`svg-mfi-folder-docs`),
+ EntryName: "docs",
+ EntryMode: "tree",
+ FullPath: "docs",
+ EntryIcon: mockIconForFolder(`svg-mfi-folder-docs`),
+ EntryIconOpen: mockOpenIconForFolder(`svg-mfi-folder-docs`),
Children: []*TreeViewNode{
{
EntryName: "README.md",