From ca3da43e53b05bc1265654b338702d4f62e3a600 Mon Sep 17 00:00:00 2001 From: Timur Ismagilov Date: Sat, 2 Apr 2022 00:07:28 +0300 Subject: [PATCH] Categories, views: Refactor the cat page view --- categories/categories.html | 28 --------------- categories/view_page.html | 27 ++++++++++++++ categories/views.go | 72 +++++++++++++++++++------------------- 3 files changed, 63 insertions(+), 64 deletions(-) create mode 100644 categories/view_page.html diff --git a/categories/categories.html b/categories/categories.html index bfae50e..ea099c9 100644 --- a/categories/categories.html +++ b/categories/categories.html @@ -35,32 +35,4 @@ {{end}} -{{end}} - -{{define "category page"}} -{{$catName := .CatName}} -
-

{{block "cat" .}}Category{{end}} {{beautifulName $catName}}

- {{if len .Hyphae | not}} -

{{block "empty cat" .}}This category is empty{{end}}

- {{end}} - -
{{end}} \ No newline at end of file diff --git a/categories/view_page.html b/categories/view_page.html new file mode 100644 index 0000000..6d45d51 --- /dev/null +++ b/categories/view_page.html @@ -0,0 +1,27 @@ +{{define "body"}} + {{$catName := .CatName}} +
+

{{block "cat" .}}Category{{end}} {{beautifulName $catName}}

+ {{if len .Hyphae | not}} +

{{block "empty cat" .}}This category is empty{{end}}

+ {{end}} + +
+{{end}} \ No newline at end of file diff --git a/categories/views.go b/categories/views.go index fd75e6b..5258c8d 100644 --- a/categories/views.go +++ b/categories/views.go @@ -5,7 +5,6 @@ import ( "github.com/bouncepaw/mycorrhiza/cfg" "github.com/bouncepaw/mycorrhiza/util" "github.com/bouncepaw/mycorrhiza/viewutil" - "io" "log" "strings" "text/template" // TODO: Fight @@ -27,13 +26,23 @@ const categoriesRu = ` var ( //go:embed *.html - fs embed.FS - m = template.Must - baseEn, baseRu, listEn, listRu *template.Template - categoryTemplatesEn *template.Template - categoryTemplatesRu *template.Template + fs embed.FS + m = template.Must + baseEn, baseRu, listEn, listRu, pageEn, pageRu *template.Template + categoryTemplatesEn *template.Template + categoryTemplatesRu *template.Template ) +func loctmp(meta viewutil.Meta, en *template.Template, ru *template.Template) *template.Template { + switch meta.Locale() { + case "en": + return en + case "ru": + return ru + } + panic("aaa") +} + func prepareViews() { categoryTemplatesEn = template.Must(template. New("category"). @@ -45,9 +54,11 @@ func prepareViews() { categoryTemplatesRu = template.Must(template.Must(categoryTemplatesEn.Clone()).Parse(categoriesRu)) baseEn = m(viewutil.BaseEn.Clone()) - baseRu = m(viewutil.BaseEn.Clone()) + baseRu = m(viewutil.BaseRu.Clone()) listEn = m(m(baseEn.Clone()).ParseFS(fs, "view_list.html")) listRu = m(m(m(baseRu.Clone()).ParseFS(fs, "view_list.html")).Parse(categoriesRu)) + pageEn = m(m(baseEn.Clone()).ParseFS(fs, "view_page.html")) + pageRu = m(m(m(baseRu.Clone()).ParseFS(fs, "view_page.html")).Parse(categoriesRu)) } func localizedCatTemplates(meta viewutil.Meta) *template.Template { @@ -89,38 +100,27 @@ func CategoryCard(meta viewutil.Meta, hyphaName string) string { return buf.String() } -func categoryPage(meta viewutil.Meta, catName string) { - var buf strings.Builder - err := localizedCatTemplates(meta).ExecuteTemplate(&buf, "category page", struct { - CatName string - Hyphae []string - GivenPermissionToModify bool - }{ - catName, - Contents(catName), - meta.U.CanProceed("add-to-category"), - }) - if err != nil { - log.Println(err) - } - _, err = io.WriteString(meta.W, viewutil.Base( - meta, - localizedCatTemplateAsString(meta, "category x", catName), - buf.String(), - )) - if err != nil { - log.Println(err) - } +type pageData struct { + viewutil.BaseData + CatName string + Hyphae []string + GivenPermissionToModify bool } -func loctmp(meta viewutil.Meta, en *template.Template, ru *template.Template) *template.Template { - switch meta.Locale() { - case "en": - return en - case "ru": - return ru +func categoryPage(meta viewutil.Meta, catName string) { + if err := loctmp(meta, pageEn, pageRu).ExecuteTemplate(meta.W, "page", pageData{ + BaseData: viewutil.BaseData{ + Meta: meta, + Title: localizedCatTemplateAsString(meta, "category x", catName), + HeaderLinks: cfg.HeaderLinks, + CommonScripts: cfg.CommonScripts, + }, + CatName: catName, + Hyphae: Contents(catName), + GivenPermissionToModify: meta.U.CanProceed("add-to-category"), + }); err != nil { + log.Println(err) } - panic("aaa") } type listData struct {