diff options
author | Gabriel A. Giovanini <mail@gabrielgio.me> | 2024-08-04 15:00:13 +0200 |
---|---|---|
committer | Gabriel A. Giovanini <mail@gabrielgio.me> | 2024-08-04 15:00:13 +0200 |
commit | e775b5356ea3adaeeca2d4be5ef874b36fa183d0 (patch) | |
tree | 2fa12d9da673aac7f57f3bcfe86f53ce17074af4 | |
parent | 60004cfb97fe0eb64d1c8310e7c9caae96b8adbe (diff) | |
download | cerrado-0.0.14.tar.gz cerrado-0.0.14.tar.bz2 cerrado-0.0.14.zip |
feat: Handle submodulev0.0.14
Submodules tree entries won't have a broken link and will be labeled
properly.
-rw-r--r-- | README.md | 1 | ||||
-rw-r--r-- | templates/gititemtree.qtpl | 7 | ||||
-rw-r--r-- | templates/gititemtree.qtpl.go | 179 |
3 files changed, 103 insertions, 84 deletions
@@ -25,7 +25,6 @@ To run the project you just need to do a make run. - Impove diff display - Add log pagination -- Fix submodule link on tree view ### Milestone - Mail patch / mailing list diff --git a/templates/gititemtree.qtpl b/templates/gititemtree.qtpl index 5898506..2753e24 100644 --- a/templates/gititemtree.qtpl +++ b/templates/gititemtree.qtpl @@ -1,5 +1,6 @@ {% import "git.gabrielgio.me/cerrado/pkg/u" %} {% import "github.com/go-git/go-git/v5/plumbing/object" %} +{% import "github.com/go-git/go-git/v5/plumbing/filemode" %} {% code type GitItemTreePage struct { Path []string @@ -52,10 +53,14 @@ <div class="size"></div> {% endif %} {% for _, e := range g.Tree.Entries %} - <div class="mode">{%s Ignore(e.Mode.ToOSFileMode()).String() %}</div> {% if e.Mode.IsFile() %} + <div class="mode">{%s Ignore(e.Mode.ToOSFileMode()).String() %}</div> <div class="name blob"><a href="{%s url(name, Blob, ref, e.Name, g.Path) %}">{%s e.Name %}</a></div> + {% elseif e.Mode == filemode.Submodule %} + <div class="mode">m---------</div> + <div class="name tree">{%s e.Name %} (submodule)</div> {% else %} + <div class="mode">d---------</div> <div class="name tree"><a href="{%s url(name, Folder, ref, e.Name, g.Path) %}">{%s e.Name %}</a></div> {% endif %} <div class="commit"></div> diff --git a/templates/gititemtree.qtpl.go b/templates/gititemtree.qtpl.go index f8d1fd2..f26b5ca 100644 --- a/templates/gititemtree.qtpl.go +++ b/templates/gititemtree.qtpl.go @@ -10,33 +10,36 @@ import "git.gabrielgio.me/cerrado/pkg/u" //line gititemtree.qtpl:2 import "github.com/go-git/go-git/v5/plumbing/object" -//line gititemtree.qtpl:4 +//line gititemtree.qtpl:3 +import "github.com/go-git/go-git/v5/plumbing/filemode" + +//line gititemtree.qtpl:5 import ( qtio422016 "io" qt422016 "github.com/valyala/quicktemplate" ) -//line gititemtree.qtpl:4 +//line gititemtree.qtpl:5 var ( _ = qtio422016.Copy _ = qt422016.AcquireByteBuffer ) -//line gititemtree.qtpl:4 +//line gititemtree.qtpl:5 type GitItemTreePage struct { Path []string Tree *object.Tree } -//line gititemtree.qtpl:10 +//line gititemtree.qtpl:11 const ( Folder = "tree" Blob = "blob" Root = "" ) -//line gititemtree.qtpl:17 +//line gititemtree.qtpl:18 func url(name, mode, ref, filename string, path []string) string { return u.NewPathing(). AddPath(name). @@ -47,188 +50,200 @@ func url(name, mode, ref, filename string, path []string) string { Done() } -//line gititemtree.qtpl:28 +//line gititemtree.qtpl:29 func (g *GitItemTreePage) StreamNav(qw422016 *qt422016.Writer, name, ref string) { -//line gititemtree.qtpl:28 +//line gititemtree.qtpl:29 StreamGitItemNav(qw422016, name, ref, Tree) -//line gititemtree.qtpl:28 +//line gititemtree.qtpl:29 } -//line gititemtree.qtpl:28 +//line gititemtree.qtpl:29 func (g *GitItemTreePage) WriteNav(qq422016 qtio422016.Writer, name, ref string) { -//line gititemtree.qtpl:28 +//line gititemtree.qtpl:29 qw422016 := qt422016.AcquireWriter(qq422016) -//line gititemtree.qtpl:28 +//line gititemtree.qtpl:29 g.StreamNav(qw422016, name, ref) -//line gititemtree.qtpl:28 +//line gititemtree.qtpl:29 qt422016.ReleaseWriter(qw422016) -//line gititemtree.qtpl:28 +//line gititemtree.qtpl:29 } -//line gititemtree.qtpl:28 +//line gititemtree.qtpl:29 func (g *GitItemTreePage) Nav(name, ref string) string { -//line gititemtree.qtpl:28 +//line gititemtree.qtpl:29 qb422016 := qt422016.AcquireByteBuffer() -//line gititemtree.qtpl:28 +//line gititemtree.qtpl:29 g.WriteNav(qb422016, name, ref) -//line gititemtree.qtpl:28 +//line gititemtree.qtpl:29 qs422016 := string(qb422016.B) -//line gititemtree.qtpl:28 +//line gititemtree.qtpl:29 qt422016.ReleaseByteBuffer(qb422016) -//line gititemtree.qtpl:28 +//line gititemtree.qtpl:29 return qs422016 -//line gititemtree.qtpl:28 +//line gititemtree.qtpl:29 } -//line gititemtree.qtpl:30 +//line gititemtree.qtpl:31 func (g *GitItemTreePage) StreamGitContent(qw422016 *qt422016.Writer, name, ref string) { -//line gititemtree.qtpl:30 +//line gititemtree.qtpl:31 qw422016.N().S(` <div class="pathing"> `) -//line gititemtree.qtpl:33 +//line gititemtree.qtpl:34 if len(g.Path) != 0 { -//line gititemtree.qtpl:33 - qw422016.N().S(`<a href="`) //line gititemtree.qtpl:34 + qw422016.N().S(`<a href="`) +//line gititemtree.qtpl:35 qw422016.E().S(url(name, Folder, ref, Root, []string{})) -//line gititemtree.qtpl:34 - qw422016.N().S(`">root/</a>`) //line gititemtree.qtpl:35 + qw422016.N().S(`">root/</a>`) +//line gititemtree.qtpl:36 for i, e := range g.Path[:len(g.Path)-1] { -//line gititemtree.qtpl:35 - qw422016.N().S(`<a href="`) //line gititemtree.qtpl:36 + qw422016.N().S(`<a href="`) +//line gititemtree.qtpl:37 qw422016.E().S(url(name, Folder, ref, Root, g.Path[:1+i])) -//line gititemtree.qtpl:36 +//line gititemtree.qtpl:37 qw422016.N().S(`">`) -//line gititemtree.qtpl:36 +//line gititemtree.qtpl:37 qw422016.E().S(e) -//line gititemtree.qtpl:36 - qw422016.N().S(`/</a>`) //line gititemtree.qtpl:37 + qw422016.N().S(`/</a>`) +//line gititemtree.qtpl:38 } -//line gititemtree.qtpl:37 - qw422016.N().S(`<a>`) //line gititemtree.qtpl:38 + qw422016.N().S(`<a>`) +//line gititemtree.qtpl:39 qw422016.E().S(u.LastOrZero(g.Path)) -//line gititemtree.qtpl:38 - qw422016.N().S(`</a>`) //line gititemtree.qtpl:39 + qw422016.N().S(`</a>`) +//line gititemtree.qtpl:40 } else { -//line gititemtree.qtpl:39 +//line gititemtree.qtpl:40 qw422016.N().S(`<a>root/</a>`) -//line gititemtree.qtpl:41 - } //line gititemtree.qtpl:42 + } +//line gititemtree.qtpl:43 qw422016.N().S(` </div> <div class="row"> <div class="col-md-12"> <div class="tree-list"> `) -//line gititemtree.qtpl:47 +//line gititemtree.qtpl:48 if len(g.Path) != 0 { -//line gititemtree.qtpl:47 +//line gititemtree.qtpl:48 qw422016.N().S(` <div class="mode"><a href="`) -//line gititemtree.qtpl:48 +//line gititemtree.qtpl:49 qw422016.E().S(url(name, Folder, ref, g.Path[len(g.Path)-1], g.Path[:len(g.Path)-1])) -//line gititemtree.qtpl:48 +//line gititemtree.qtpl:49 qw422016.N().S(`">..</a></div> <div class="name tree"></div> <div class="commit"></div> <div class="date"></div> <div class="size"></div> `) -//line gititemtree.qtpl:53 +//line gititemtree.qtpl:54 } -//line gititemtree.qtpl:53 +//line gititemtree.qtpl:54 qw422016.N().S(` `) -//line gititemtree.qtpl:54 - for _, e := range g.Tree.Entries { -//line gititemtree.qtpl:54 - qw422016.N().S(` - <div class="mode">`) //line gititemtree.qtpl:55 - qw422016.E().S(Ignore(e.Mode.ToOSFileMode()).String()) + for _, e := range g.Tree.Entries { //line gititemtree.qtpl:55 - qw422016.N().S(`</div> + qw422016.N().S(` `) //line gititemtree.qtpl:56 if e.Mode.IsFile() { //line gititemtree.qtpl:56 qw422016.N().S(` - <div class="name blob"><a href="`) + <div class="mode">`) //line gititemtree.qtpl:57 - qw422016.E().S(url(name, Blob, ref, e.Name, g.Path)) + qw422016.E().S(Ignore(e.Mode.ToOSFileMode()).String()) //line gititemtree.qtpl:57 + qw422016.N().S(`</div> + <div class="name blob"><a href="`) +//line gititemtree.qtpl:58 + qw422016.E().S(url(name, Blob, ref, e.Name, g.Path)) +//line gititemtree.qtpl:58 qw422016.N().S(`">`) -//line gititemtree.qtpl:57 +//line gititemtree.qtpl:58 qw422016.E().S(e.Name) -//line gititemtree.qtpl:57 +//line gititemtree.qtpl:58 qw422016.N().S(`</a></div> `) -//line gititemtree.qtpl:58 +//line gititemtree.qtpl:59 + } else if e.Mode == filemode.Submodule { +//line gititemtree.qtpl:59 + qw422016.N().S(` + <div class="mode">m---------</div> + <div class="name tree">`) +//line gititemtree.qtpl:61 + qw422016.E().S(e.Name) +//line gititemtree.qtpl:61 + qw422016.N().S(` (submodule)</div> + `) +//line gititemtree.qtpl:62 } else { -//line gititemtree.qtpl:58 +//line gititemtree.qtpl:62 qw422016.N().S(` + <div class="mode">d---------</div> <div class="name tree"><a href="`) -//line gititemtree.qtpl:59 +//line gititemtree.qtpl:64 qw422016.E().S(url(name, Folder, ref, e.Name, g.Path)) -//line gititemtree.qtpl:59 +//line gititemtree.qtpl:64 qw422016.N().S(`">`) -//line gititemtree.qtpl:59 +//line gititemtree.qtpl:64 qw422016.E().S(e.Name) -//line gititemtree.qtpl:59 +//line gititemtree.qtpl:64 qw422016.N().S(`</a></div> `) -//line gititemtree.qtpl:60 +//line gititemtree.qtpl:65 } -//line gititemtree.qtpl:60 +//line gititemtree.qtpl:65 qw422016.N().S(` <div class="commit"></div> <div class="date"></div> <div class="size">`) -//line gititemtree.qtpl:63 +//line gititemtree.qtpl:68 qw422016.N().DL(Ignore(g.Tree.Size(e.Name))) -//line gititemtree.qtpl:63 +//line gititemtree.qtpl:68 qw422016.N().S(` KiB</div> `) -//line gititemtree.qtpl:64 +//line gititemtree.qtpl:69 } -//line gititemtree.qtpl:64 +//line gititemtree.qtpl:69 qw422016.N().S(` </div> </div> </div> `) -//line gititemtree.qtpl:68 +//line gititemtree.qtpl:73 } -//line gititemtree.qtpl:68 +//line gititemtree.qtpl:73 func (g *GitItemTreePage) WriteGitContent(qq422016 qtio422016.Writer, name, ref string) { -//line gititemtree.qtpl:68 +//line gititemtree.qtpl:73 qw422016 := qt422016.AcquireWriter(qq422016) -//line gititemtree.qtpl:68 +//line gititemtree.qtpl:73 g.StreamGitContent(qw422016, name, ref) -//line gititemtree.qtpl:68 +//line gititemtree.qtpl:73 qt422016.ReleaseWriter(qw422016) -//line gititemtree.qtpl:68 +//line gititemtree.qtpl:73 } -//line gititemtree.qtpl:68 +//line gititemtree.qtpl:73 func (g *GitItemTreePage) GitContent(name, ref string) string { -//line gititemtree.qtpl:68 +//line gititemtree.qtpl:73 qb422016 := qt422016.AcquireByteBuffer() -//line gititemtree.qtpl:68 +//line gititemtree.qtpl:73 g.WriteGitContent(qb422016, name, ref) -//line gititemtree.qtpl:68 +//line gititemtree.qtpl:73 qs422016 := string(qb422016.B) -//line gititemtree.qtpl:68 +//line gititemtree.qtpl:73 qt422016.ReleaseByteBuffer(qb422016) -//line gititemtree.qtpl:68 +//line gititemtree.qtpl:73 return qs422016 -//line gititemtree.qtpl:68 +//line gititemtree.qtpl:73 } |