From b8b6d3037c524575f140650ac243c16df6a98a92 Mon Sep 17 00:00:00 2001 From: Gabriel Arakaki Giovanini Date: Wed, 19 Jul 2023 21:01:49 +0200 Subject: feat: Move last page to qtpl --- pkg/service/filesystem.go | 15 +++++++++++++++ pkg/view/filesystem.go | 17 ++++++----------- static.go | 24 ------------------------ templates/base.qtpl | 6 +++--- templates/fs.html | 29 ----------------------------- templates/fs.qtpl | 41 +++++++++++++++++++++++++++++++++++++++++ templates/layout.html | 29 ----------------------------- 7 files changed, 65 insertions(+), 96 deletions(-) delete mode 100644 templates/fs.html create mode 100644 templates/fs.qtpl delete mode 100644 templates/layout.html diff --git a/pkg/service/filesystem.go b/pkg/service/filesystem.go index 2e4b510..b4479ea 100644 --- a/pkg/service/filesystem.go +++ b/pkg/service/filesystem.go @@ -6,6 +6,7 @@ import ( "net/url" "path" "strings" + "syscall" "git.sr.ht/~gabrielgio/img/pkg/database/repository" "git.sr.ht/~gabrielgio/img/pkg/list" @@ -33,6 +34,20 @@ type ( } ) +func (f *FileParam) GetUid() int { + if stat, ok := f.Info.Sys().(*syscall.Stat_t); ok { + return int(stat.Uid) + } + return 0 +} + +func (f *FileParam) GetGid() int { + if stat, ok := f.Info.Sys().(*syscall.Stat_t); ok { + return int(stat.Gid) + } + return 0 +} + func NewFileSystemController( fsRepository repository.FileSystemRepository, userRepository repository.UserRepository, diff --git a/pkg/view/filesystem.go b/pkg/view/filesystem.go index 7fd7331..6a01117 100644 --- a/pkg/view/filesystem.go +++ b/pkg/view/filesystem.go @@ -3,10 +3,10 @@ package view import ( "github.com/valyala/fasthttp" - "git.sr.ht/~gabrielgio/img" "git.sr.ht/~gabrielgio/img/pkg/database/repository" "git.sr.ht/~gabrielgio/img/pkg/ext" "git.sr.ht/~gabrielgio/img/pkg/service" + "git.sr.ht/~gabrielgio/img/templates" ) type ( @@ -45,17 +45,12 @@ func (self *FileSystemView) Index(ctx *fasthttp.RequestCtx) error { return err } - err = img.Render(ctx, "fs.html", &img.HTMLView[*FilePage]{ - Title: pathValue, - Data: &FilePage{ - Page: page, - ShowMode: settings.ShowMode, - ShowOwner: settings.ShowOwner, - }, + templates.WritePageTemplate(ctx, &templates.FilePage{ + Page: page, + ShowMode: settings.ShowMode, + ShowOwner: settings.ShowOwner, }) - if err != nil { - return err - } + return nil } diff --git a/static.go b/static.go index 1c6a086..06f1459 100644 --- a/static.go +++ b/static.go @@ -2,33 +2,9 @@ package img import ( "embed" - "fmt" - "html/template" - "io" ) var ( - //go:embed templates/*.html - TemplateFS embed.FS - //go:embed static/* StaticFS embed.FS - - Template *template.Template ) - -type HTMLView[T any] struct { - Title string - Username string - Data T -} - -func Render[T any](w io.Writer, page string, view *HTMLView[T]) error { - pageFile := fmt.Sprintf("templates/%s", page) - tmpl, err := template.New("").ParseFS(TemplateFS, "templates/layout.html", pageFile) - if err != nil { - return err - } - - return tmpl.ExecuteTemplate(w, page, view) -} diff --git a/templates/base.qtpl b/templates/base.qtpl index cbde355..0c05782 100644 --- a/templates/base.qtpl +++ b/templates/base.qtpl @@ -22,13 +22,13 @@ Page prints a page implementing Page interface.