diff options
author | Derek Stevens <nilix@nilfm.cc> | 2023-02-01 23:01:36 -0700 |
---|---|---|
committer | Anirudh Oppiliappan <x@icyphox.sh> | 2023-02-08 00:30:57 +0530 |
commit | b78354aee2f0fef8552896d75e106c915365d3ef (patch) | |
tree | 5e772c82807d226dd4bc69c72f170849402941ae | |
parent | ee800624f58b26204c1f846a524ccef5a1b4e386 (diff) | |
download | legit-b78354aee2f0fef8552896d75e106c915365d3ef.tar.gz legit-b78354aee2f0fef8552896d75e106c915365d3ef.tar.bz2 legit-b78354aee2f0fef8552896d75e106c915365d3ef.zip |
tree: directories first, add size column, fix ..
Signed-off-by: Derek Stevens <nilix@nilfm.cc>
Diffstat (limited to '')
-rw-r--r-- | git/tree.go | 10 | ||||
-rw-r--r-- | routes/routes.go | 1 | ||||
-rw-r--r-- | static/style.css | 7 | ||||
-rw-r--r-- | templates/tree.html | 25 |
4 files changed, 29 insertions, 14 deletions
diff --git a/git/tree.go b/git/tree.go index 0ef1f2f..88ad1c1 100644 --- a/git/tree.go +++ b/git/tree.go @@ -19,7 +19,7 @@ func (g *GitRepo) FileTree(path string) ([]NiceTree, error) { } if path == "" { - files = makeNiceTree(tree.Entries) + files = makeNiceTree(tree) } else { o, err := tree.FindEntry(path) if err != nil { @@ -32,7 +32,7 @@ func (g *GitRepo) FileTree(path string) ([]NiceTree, error) { return nil, err } - files = makeNiceTree(subtree.Entries) + files = makeNiceTree(subtree) } } @@ -48,15 +48,17 @@ type NiceTree struct { IsSubtree bool } -func makeNiceTree(es []object.TreeEntry) []NiceTree { +func makeNiceTree(t *object.Tree) []NiceTree { nts := []NiceTree{} - for _, e := range es { + for _, e := range t.Entries { mode, _ := e.Mode.ToOSFileMode() + sz, _ := t.Size(e.Name) nts = append(nts, NiceTree{ Name: e.Name, Mode: mode.String(), IsFile: e.Mode.IsFile(), + Size: sz, }) } diff --git a/routes/routes.go b/routes/routes.go index 4d99ab0..143bb2b 100644 --- a/routes/routes.go +++ b/routes/routes.go @@ -254,6 +254,7 @@ func (d *deps) Log(w http.ResponseWriter, r *http.Request) { data["name"] = name data["ref"] = ref data["desc"] = getDescription(path) + data["dotdot"] = filepath.Dir(path) if err := t.ExecuteTemplate(w, "log", data); err != nil { log.Println(err) diff --git a/static/style.css b/static/style.css index 23e2f75..e012306 100644 --- a/static/style.css +++ b/static/style.css @@ -125,7 +125,7 @@ a:hover { .tree { display: grid; - grid-template-columns: 8em minmax(0, 1fr); + grid-template-columns: 10ch auto 1fr; grid-row-gap: 0.5em; grid-column-gap: 1em; min-width: 0; @@ -145,9 +145,12 @@ a:hover { white-space: pre-wrap; } -.mode { +.mode, .size { font-family: var(--mono-font); } +.size { + text-align: right; +} .readme pre { white-space: pre-wrap; diff --git a/templates/tree.html b/templates/tree.html index 2880714..496dceb 100644 --- a/templates/tree.html +++ b/templates/tree.html @@ -18,26 +18,35 @@ <div class="tree"> {{ if $parent }} <div></div> - <div><a href="../">..</a></div> + <div></div> + <div><a href="/{{ $repo }}/tree/{{ $ref }}/{{ .dotdot }}">..</a></div> {{ end }} {{ range .files }} + {{ if not .IsFile }} <div class="mode">{{ .Mode }}</div> + <div class="size">{{ .Size }}</div> <div> - {{ if .IsFile }} - {{ if $parent }} - <a href="/{{ $repo }}/blob/{{ $ref }}/{{ $parent }}/{{ .Name }}">{{ .Name }}</a> - {{ else }} - <a href="/{{ $repo }}/blob/{{ $ref }}/{{ .Name }}">{{ .Name }}</a> - {{ end }} - {{ else }} {{ if $parent }} <a href="/{{ $repo }}/tree/{{ $ref }}/{{ $parent }}/{{ .Name }}">{{ .Name }}/</a> {{ else }} <a href="/{{ $repo }}/tree/{{ $ref }}/{{ .Name }}">{{ .Name }}/</a> {{ end }} + </div> {{ end }} + {{ end }} + {{ range .files }} + {{ if .IsFile }} + <div class="mode">{{ .Mode }}</div> + <div class="size">{{ .Size }}</div> + <div> + {{ if $parent }} + <a href="/{{ $repo }}/blob/{{ $ref }}/{{ $parent }}/{{ .Name }}">{{ .Name }}</a> + {{ else }} + <a href="/{{ $repo }}/blob/{{ $ref }}/{{ .Name }}">{{ .Name }}</a> + {{ end }} </div> {{ end }} + {{ end }} </div> <article> <pre> |