1
0
Fork 0
forked from forgejo/forgejo

Implementation of Folder Jumping

This commit is contained in:
Sl@ny 2016-12-28 17:35:52 +01:00 committed by Kim "BKC" Carlbäcker
parent 331316894e
commit c22f9114c7
6 changed files with 54 additions and 5 deletions

View file

@ -94,6 +94,25 @@ func (te *TreeEntry) Blob() *Blob {
}
}
// GetSubJumpablePathName return the full path of subdirectory jumpable ( contains only one directory )
func (te *TreeEntry) GetSubJumpablePathName() string {
if te.IsSubModule() || !te.IsDir() {
return ""
}
tree, err := te.ptree.SubTree(te.name)
if err != nil {
return te.name
}
entries, _ := tree.ListEntries()
if len(entries) == 1 && entries[0].IsDir() {
name := entries[0].GetSubJumpablePathName()
if name != "" {
return te.name + "/" + name
}
}
return te.name
}
// Entries a list of entry
type Entries []*TreeEntry