web frontend for git (tangled's grandpa)
7
fork

Configure Feed

Select the types of activity you want to include in your feed.

tree: directories first, add size column, fix ..

Signed-off-by: Derek Stevens <nilix@nilfm.cc>

authored by

Derek Stevens and committed by
Anirudh Oppiliappan
b78354ae ee800624

+29 -14
+6 -4
git/tree.go
··· 19 19 } 20 20 21 21 if path == "" { 22 - files = makeNiceTree(tree.Entries) 22 + files = makeNiceTree(tree) 23 23 } else { 24 24 o, err := tree.FindEntry(path) 25 25 if err != nil { ··· 32 32 return nil, err 33 33 } 34 34 35 - files = makeNiceTree(subtree.Entries) 35 + files = makeNiceTree(subtree) 36 36 } 37 37 } 38 38 ··· 48 48 IsSubtree bool 49 49 } 50 50 51 - func makeNiceTree(es []object.TreeEntry) []NiceTree { 51 + func makeNiceTree(t *object.Tree) []NiceTree { 52 52 nts := []NiceTree{} 53 53 54 - for _, e := range es { 54 + for _, e := range t.Entries { 55 55 mode, _ := e.Mode.ToOSFileMode() 56 + sz, _ := t.Size(e.Name) 56 57 nts = append(nts, NiceTree{ 57 58 Name: e.Name, 58 59 Mode: mode.String(), 59 60 IsFile: e.Mode.IsFile(), 61 + Size: sz, 60 62 }) 61 63 } 62 64
+1
routes/routes.go
··· 254 254 data["name"] = name 255 255 data["ref"] = ref 256 256 data["desc"] = getDescription(path) 257 + data["dotdot"] = filepath.Dir(path) 257 258 258 259 if err := t.ExecuteTemplate(w, "log", data); err != nil { 259 260 log.Println(err)
+5 -2
static/style.css
··· 125 125 126 126 .tree { 127 127 display: grid; 128 - grid-template-columns: 8em minmax(0, 1fr); 128 + grid-template-columns: 10ch auto 1fr; 129 129 grid-row-gap: 0.5em; 130 130 grid-column-gap: 1em; 131 131 min-width: 0; ··· 145 145 white-space: pre-wrap; 146 146 } 147 147 148 - .mode { 148 + .mode, .size { 149 149 font-family: var(--mono-font); 150 + } 151 + .size { 152 + text-align: right; 150 153 } 151 154 152 155 .readme pre {
+17 -8
templates/tree.html
··· 18 18 <div class="tree"> 19 19 {{ if $parent }} 20 20 <div></div> 21 - <div><a href="../">..</a></div> 21 + <div></div> 22 + <div><a href="/{{ $repo }}/tree/{{ $ref }}/{{ .dotdot }}">..</a></div> 22 23 {{ end }} 23 24 {{ range .files }} 25 + {{ if not .IsFile }} 24 26 <div class="mode">{{ .Mode }}</div> 27 + <div class="size">{{ .Size }}</div> 25 28 <div> 29 + {{ if $parent }} 30 + <a href="/{{ $repo }}/tree/{{ $ref }}/{{ $parent }}/{{ .Name }}">{{ .Name }}/</a> 31 + {{ else }} 32 + <a href="/{{ $repo }}/tree/{{ $ref }}/{{ .Name }}">{{ .Name }}/</a> 33 + {{ end }} 34 + </div> 35 + {{ end }} 36 + {{ end }} 37 + {{ range .files }} 26 38 {{ if .IsFile }} 39 + <div class="mode">{{ .Mode }}</div> 40 + <div class="size">{{ .Size }}</div> 41 + <div> 27 42 {{ if $parent }} 28 43 <a href="/{{ $repo }}/blob/{{ $ref }}/{{ $parent }}/{{ .Name }}">{{ .Name }}</a> 29 44 {{ else }} 30 45 <a href="/{{ $repo }}/blob/{{ $ref }}/{{ .Name }}">{{ .Name }}</a> 31 46 {{ end }} 32 - {{ else }} 33 - {{ if $parent }} 34 - <a href="/{{ $repo }}/tree/{{ $ref }}/{{ $parent }}/{{ .Name }}">{{ .Name }}/</a> 35 - {{ else }} 36 - <a href="/{{ $repo }}/tree/{{ $ref }}/{{ .Name }}">{{ .Name }}/</a> 37 - {{ end }} 47 + </div> 38 48 {{ end }} 39 - </div> 40 49 {{ end }} 41 50 </div> 42 51 <article>