lens @ 52276ba99540d6c61195772ccdd50944e96f4959

feat: Move settings from `html/template` to qtpl
  1diff --git a/pkg/view/settings.go b/pkg/view/settings.go
  2index 14f4e49fbaa75c5258c946507e6163b8ff1b02f8..bee3dc201b1f21d24ceb66ed7ae59df7cb95b491 100644
  3--- a/pkg/view/settings.go
  4+++ b/pkg/view/settings.go
  5@@ -3,9 +3,9 @@
  6 import (
  7 	"github.com/valyala/fasthttp"
  8 
  9-	"git.sr.ht/~gabrielgio/img"
 10 	"git.sr.ht/~gabrielgio/img/pkg/database/repository"
 11 	"git.sr.ht/~gabrielgio/img/pkg/ext"
 12+	"git.sr.ht/~gabrielgio/img/templates"
 13 )
 14 
 15 type (
 16@@ -13,11 +13,6 @@ 	SettingsView struct {
 17 		// there is not need to create a controller for this
 18 		settingsRepository repository.SettingsRepository
 19 		userRepository     repository.UserRepository
 20-	}
 21-
 22-	SettingsPage struct {
 23-		Settings *repository.Settings
 24-		Users    []*repository.User
 25 	}
 26 )
 27 
 28@@ -42,13 +37,12 @@ 	if err != nil {
 29 		return err
 30 	}
 31 
 32-	return img.Render(ctx, "settings.html", &img.HTMLView[*SettingsPage]{
 33-		Title: "Settings",
 34-		Data: &SettingsPage{
 35-			Settings: s,
 36-			Users:    users,
 37-		},
 38+	templates.WritePageTemplate(ctx, &templates.SettingsPage{
 39+		Settings: s,
 40+		Users:    users,
 41 	})
 42+
 43+	return nil
 44 }
 45 
 46 func (self *SettingsView) Save(ctx *fasthttp.RequestCtx) error {
 47diff --git a/templates/settings.html b/templates/settings.qtpl
 48rename from templates/settings.html
 49rename to templates/settings.qtpl
 50index 8c08773338919637ec0c3cb18e2b050f22945a66..509cddd76e1a34dadd953a7d84a2f838cd3ade31 100644
 51--- a/templates/settings.html
 52+++ b/templates/settings.qtpl
 53@@ -1,13 +1,22 @@
 54-{{template "layout.html" .}}
 55-{{define "title"}} {{.Title}} {{end}}
 56-{{define "content"}}
 57+{% import "git.sr.ht/~gabrielgio/img/pkg/database/repository" %}
 58+
 59+{% code
 60+type SettingsPage struct {
 61+    Settings *repository.Settings
 62+    Users    []*repository.User
 63+}
 64+%}
 65+
 66+{% func (p *SettingsPage) Title() %}Settings{% endfunc %}
 67+
 68+{% func (p *SettingsPage) Content() %}
 69 <div class="columns">
 70     <div class="column is-one-third">
 71         <form action="/settings/", method="post">
 72             <div class="field">
 73                 <div class="control">
 74                     <label class="checkbox">
 75-                        <input type="checkbox" id="showMode" name="showMode" {{if .Data.Settings.ShowMode}}checked{{end}}>
 76+                        <input type="checkbox" id="showMode" name="showMode" {% if p.Settings.ShowMode %}checked{% endif %}>
 77                         Show File Modes
 78                     </label>
 79                 </div>
 80@@ -15,7 +24,7 @@             </div>
 81             <div class="field">
 82                 <div class="control">
 83                     <label class="checkbox">
 84-                        <input type="checkbox" id="showOwner" name="showOwner" {{if .Data.Settings.ShowOwner}}checked{{end}}>
 85+                        <input type="checkbox" id="showOwner" name="showOwner" {% if p.Settings.ShowOwner %}checked{% endif %}>
 86                         Show File Owner
 87                     </label>
 88                 </div>
 89@@ -26,19 +35,22 @@             </div>
 90         </form>
 91     </div>
 92     <div class="column">
 93-        {{range .Data.Users}}
 94+    {% for _, user := range p.Users %}
 95         <div class="panel-block">
 96             <div class="columns wide-column is-gapless is-mobile">
 97                 <div class="column">
 98-                    {{.Username}}
 99+                    {%s user.Username %}
100                 </div>
101                 <div class="column">
102-                    {{.Path}}
103+                    {%s user.Path %}
104                 </div>
105                 <div class="column  has-text-right"><a href="#">Edit</a> / <a href="#" class="is-danger">Delete</a></div>
106             </div>
107         </div>
108-        {{end}}
109+    {% endfor %}
110     </div>
111 </div>
112-{{end}}
113+{% endfunc %}
114+
115+{% func (p *SettingsPage) Script() %}
116+{% endfunc %}