mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2024-12-22 17:23:56 +01:00
Implementation of Folder Jumping
This commit is contained in:
parent
331316894e
commit
c22f9114c7
6 changed files with 54 additions and 5 deletions
|
@ -117,6 +117,17 @@ func NewFuncMap() []template.FuncMap {
|
||||||
}
|
}
|
||||||
return "tab-size-8"
|
return "tab-size-8"
|
||||||
},
|
},
|
||||||
|
"SubJumpablePath": func(str string) []string {
|
||||||
|
var path []string
|
||||||
|
index := strings.LastIndex(str, "/")
|
||||||
|
if index != -1 && index != len(str) {
|
||||||
|
path = append(path, string(str[0:index+1]))
|
||||||
|
path = append(path, string(str[index+1:]))
|
||||||
|
} else {
|
||||||
|
path = append(path, str)
|
||||||
|
}
|
||||||
|
return path
|
||||||
|
},
|
||||||
}}
|
}}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1272,6 +1272,9 @@ footer .ui.language .menu {
|
||||||
.repository.file.list #repo-files-table tr:hover {
|
.repository.file.list #repo-files-table tr:hover {
|
||||||
background-color: #ffffEE;
|
background-color: #ffffEE;
|
||||||
}
|
}
|
||||||
|
.repository.file.list #repo-files-table .jumpable-path {
|
||||||
|
color: #888;
|
||||||
|
}
|
||||||
.repository.file.list #file-content .header .icon {
|
.repository.file.list #file-content .header .icon {
|
||||||
font-size: 1em;
|
font-size: 1em;
|
||||||
margin-top: -2px;
|
margin-top: -2px;
|
||||||
|
|
|
@ -205,6 +205,9 @@
|
||||||
tr:hover {
|
tr:hover {
|
||||||
background-color: #ffffEE;
|
background-color: #ffffEE;
|
||||||
}
|
}
|
||||||
|
.jumpable-path {
|
||||||
|
color: #888;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#file-content {
|
#file-content {
|
||||||
|
|
|
@ -43,8 +43,21 @@
|
||||||
</td>
|
</td>
|
||||||
{{else}}
|
{{else}}
|
||||||
<td class="name">
|
<td class="name">
|
||||||
<span class="octicon octicon-file-{{if or $entry.IsDir}}directory{{else}}text{{end}}"></span>
|
{{if $entry.IsDir}}
|
||||||
|
{{$subJumpablePathName := $entry.GetSubJumpablePathName}}
|
||||||
|
{{$subJumpablePath := SubJumpablePath $subJumpablePathName}}
|
||||||
|
<span class="octicon octicon-file-directory"></span>
|
||||||
|
<a href="{{EscapePound $.TreeLink}}/{{EscapePound $subJumpablePathName}}">
|
||||||
|
{{if eq (len $subJumpablePath) 2}}
|
||||||
|
<span class="jumpable-path">{{index $subJumpablePath 0}}</span>{{index $subJumpablePath 1}}
|
||||||
|
{{else}}
|
||||||
|
{{index $subJumpablePath 0}}
|
||||||
|
{{end}}
|
||||||
|
</a>
|
||||||
|
{{else}}
|
||||||
|
<span class="octicon octicon-file-text"></span>
|
||||||
<a href="{{EscapePound $.TreeLink}}/{{EscapePound $entry.Name}}">{{$entry.Name}}</a>
|
<a href="{{EscapePound $.TreeLink}}/{{EscapePound $entry.Name}}">{{$entry.Name}}</a>
|
||||||
|
{{end}}
|
||||||
</td>
|
</td>
|
||||||
{{end}}
|
{{end}}
|
||||||
<td class="message collapsing has-emoji">
|
<td class="message collapsing has-emoji">
|
||||||
|
|
19
vendor/code.gitea.io/git/tree_entry.go
generated
vendored
19
vendor/code.gitea.io/git/tree_entry.go
generated
vendored
|
@ -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
|
// Entries a list of entry
|
||||||
type Entries []*TreeEntry
|
type Entries []*TreeEntry
|
||||||
|
|
||||||
|
|
6
vendor/vendor.json
vendored
6
vendor/vendor.json
vendored
|
@ -3,10 +3,10 @@
|
||||||
"ignore": "test",
|
"ignore": "test",
|
||||||
"package": [
|
"package": [
|
||||||
{
|
{
|
||||||
"checksumSHA1": "OWuUWQ8sWC8n+eTQttx+3vfES8g=",
|
"checksumSHA1": "mIaKLz6373W+jDLjgE/Yzt/exeo=",
|
||||||
"path": "code.gitea.io/git",
|
"path": "code.gitea.io/git",
|
||||||
"revision": "634abd6a61c350a95f6b146c3a5fc323282608ae",
|
"revision": "3d0fa331865619d2f3a7a0fcf23670a389310954",
|
||||||
"revisionTime": "2016-12-22T08:49:21Z"
|
"revisionTime": "2016-12-28T14:57:51Z"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"checksumSHA1": "dnGaLR7sd9D5YpQZP4QUGZiEq+c=",
|
"checksumSHA1": "dnGaLR7sd9D5YpQZP4QUGZiEq+c=",
|
||||||
|
|
Loading…
Reference in a new issue