From 1b1460c8d4fa358433c51fd5293fd1c79f32aeff Mon Sep 17 00:00:00 2001 From: "Gabriel A. Giovanini" Date: Mon, 1 Jul 2024 23:32:54 +0200 Subject: feat: Add pathing to the tree tab --- templates/gititemtree.qtpl.go | 213 +++++++++++++++++++++++++++--------------- 1 file changed, 138 insertions(+), 75 deletions(-) (limited to 'templates/gititemtree.qtpl.go') diff --git a/templates/gititemtree.qtpl.go b/templates/gititemtree.qtpl.go index 0e9b09e..c0fc3a7 100644 --- a/templates/gititemtree.qtpl.go +++ b/templates/gititemtree.qtpl.go @@ -5,16 +5,19 @@ package templates //line gititemtree.qtpl:1 +import "git.gabrielgio.me/cerrado/pkg/u" + +//line gititemtree.qtpl:2 import "github.com/go-git/go-git/v5/plumbing/object" -//line gititemtree.qtpl:3 +//line gititemtree.qtpl:4 import ( qtio422016 "io" qt422016 "github.com/valyala/quicktemplate" ) -//line gititemtree.qtpl:3 +//line gititemtree.qtpl:4 var ( _ = qtio422016.Copy _ = qt422016.AcquireByteBuffer @@ -22,150 +25,210 @@ var ( //line gititemtree.qtpl:4 type GitItemTreePage struct { - CurrentPath string - Tree *object.Tree + Path []string + Tree *object.Tree } //line gititemtree.qtpl:10 +const ( + Folder = "tree" + Blob = "blob" + Root = "" +) + +//line gititemtree.qtpl:17 +func url(name, mode, ref, filename string, path []string) string { + return u.Root(). + AddPath(name). + AddPath(mode). + AddPath(ref). + AddPaths(path). + AddPath(filename). + Done() +} + +//line gititemtree.qtpl:28 func (g *GitItemTreePage) StreamNav(qw422016 *qt422016.Writer, name, ref string) { -//line gititemtree.qtpl:10 +//line gititemtree.qtpl:28 StreamGitItemNav(qw422016, name, ref, Tree) -//line gititemtree.qtpl:10 +//line gititemtree.qtpl:28 } -//line gititemtree.qtpl:10 +//line gititemtree.qtpl:28 func (g *GitItemTreePage) WriteNav(qq422016 qtio422016.Writer, name, ref string) { -//line gititemtree.qtpl:10 +//line gititemtree.qtpl:28 qw422016 := qt422016.AcquireWriter(qq422016) -//line gititemtree.qtpl:10 +//line gititemtree.qtpl:28 g.StreamNav(qw422016, name, ref) -//line gititemtree.qtpl:10 +//line gititemtree.qtpl:28 qt422016.ReleaseWriter(qw422016) -//line gititemtree.qtpl:10 +//line gititemtree.qtpl:28 } -//line gititemtree.qtpl:10 +//line gititemtree.qtpl:28 func (g *GitItemTreePage) Nav(name, ref string) string { -//line gititemtree.qtpl:10 +//line gititemtree.qtpl:28 qb422016 := qt422016.AcquireByteBuffer() -//line gititemtree.qtpl:10 +//line gititemtree.qtpl:28 g.WriteNav(qb422016, name, ref) -//line gititemtree.qtpl:10 +//line gititemtree.qtpl:28 qs422016 := string(qb422016.B) -//line gititemtree.qtpl:10 +//line gititemtree.qtpl:28 qt422016.ReleaseByteBuffer(qb422016) -//line gititemtree.qtpl:10 +//line gititemtree.qtpl:28 return qs422016 -//line gititemtree.qtpl:10 +//line gititemtree.qtpl:28 } -//line gititemtree.qtpl:12 +//line gititemtree.qtpl:30 func (g *GitItemTreePage) StreamGitContent(qw422016 *qt422016.Writer, name, ref string) { -//line gititemtree.qtpl:12 +//line gititemtree.qtpl:30 qw422016.N().S(` +
+ `) +//line gititemtree.qtpl:33 + if len(g.Path) != 0 { +//line gititemtree.qtpl:33 + qw422016.N().S(`root/`) +//line gititemtree.qtpl:35 + for i, e := range g.Path[:len(g.Path)-1] { +//line gititemtree.qtpl:35 + qw422016.N().S(``) +//line gititemtree.qtpl:36 + qw422016.E().S(e) +//line gititemtree.qtpl:36 + qw422016.N().S(`/`) +//line gititemtree.qtpl:37 + } +//line gititemtree.qtpl:37 + qw422016.N().S(``) +//line gititemtree.qtpl:38 + qw422016.E().S(u.LastOrZero(g.Path)) +//line gititemtree.qtpl:38 + qw422016.N().S(``) +//line gititemtree.qtpl:39 + } else { +//line gititemtree.qtpl:39 + qw422016.N().S(`root/`) +//line gititemtree.qtpl:41 + } +//line gititemtree.qtpl:42 + qw422016.N().S(` +
`) -//line gititemtree.qtpl:16 +//line gititemtree.qtpl:47 + if len(g.Path) != 0 { +//line gititemtree.qtpl:47 + qw422016.N().S(` + +
+
+
+
+ `) +//line gititemtree.qtpl:53 + } +//line gititemtree.qtpl:53 + qw422016.N().S(` + `) +//line gititemtree.qtpl:54 for _, e := range g.Tree.Entries { -//line gititemtree.qtpl:16 +//line gititemtree.qtpl:54 qw422016.N().S(`
`) -//line gititemtree.qtpl:17 +//line gititemtree.qtpl:55 qw422016.E().S(Ignore(e.Mode.ToOSFileMode()).String()) -//line gititemtree.qtpl:17 +//line gititemtree.qtpl:55 qw422016.N().S(`
`) -//line gititemtree.qtpl:18 +//line gititemtree.qtpl:56 if e.Mode.IsFile() { -//line gititemtree.qtpl:18 +//line gititemtree.qtpl:56 qw422016.N().S(` - `) -//line gititemtree.qtpl:20 +//line gititemtree.qtpl:58 } else { -//line gititemtree.qtpl:20 +//line gititemtree.qtpl:58 qw422016.N().S(` - `) -//line gititemtree.qtpl:22 +//line gititemtree.qtpl:60 } -//line gititemtree.qtpl:22 +//line gititemtree.qtpl:60 qw422016.N().S(`
`) -//line gititemtree.qtpl:25 +//line gititemtree.qtpl:63 qw422016.N().DL(Ignore(g.Tree.Size(e.Name))) -//line gititemtree.qtpl:25 +//line gititemtree.qtpl:63 qw422016.N().S(` KiB
`) -//line gititemtree.qtpl:26 +//line gititemtree.qtpl:64 } -//line gititemtree.qtpl:26 +//line gititemtree.qtpl:64 qw422016.N().S(`
`) -//line gititemtree.qtpl:30 +//line gititemtree.qtpl:68 } -//line gititemtree.qtpl:30 +//line gititemtree.qtpl:68 func (g *GitItemTreePage) WriteGitContent(qq422016 qtio422016.Writer, name, ref string) { -//line gititemtree.qtpl:30 +//line gititemtree.qtpl:68 qw422016 := qt422016.AcquireWriter(qq422016) -//line gititemtree.qtpl:30 +//line gititemtree.qtpl:68 g.StreamGitContent(qw422016, name, ref) -//line gititemtree.qtpl:30 +//line gititemtree.qtpl:68 qt422016.ReleaseWriter(qw422016) -//line gititemtree.qtpl:30 +//line gititemtree.qtpl:68 } -//line gititemtree.qtpl:30 +//line gititemtree.qtpl:68 func (g *GitItemTreePage) GitContent(name, ref string) string { -//line gititemtree.qtpl:30 +//line gititemtree.qtpl:68 qb422016 := qt422016.AcquireByteBuffer() -//line gititemtree.qtpl:30 +//line gititemtree.qtpl:68 g.WriteGitContent(qb422016, name, ref) -//line gititemtree.qtpl:30 +//line gititemtree.qtpl:68 qs422016 := string(qb422016.B) -//line gititemtree.qtpl:30 +//line gititemtree.qtpl:68 qt422016.ReleaseByteBuffer(qb422016) -//line gititemtree.qtpl:30 +//line gititemtree.qtpl:68 return qs422016 -//line gititemtree.qtpl:30 +//line gititemtree.qtpl:68 } -- cgit v1.2.3