From d2e5b8806b4ba99bc13c59e5de8755604983570e Mon Sep 17 00:00:00 2001 From: oppiliappan Date: Tue, 26 Aug 2025 20:31:36 +0100 Subject: [PATCH] appview/pages: add base layout for profiles Change-Id: zswupllwxosqnmrzvwsupowuuwonqsxs Signed-off-by: oppiliappan --- appview/pages/pages.go | 18 +++ .../pages/templates/layouts/profilebase.html | 104 ++++++++++++++++++ 2 files changed, 122 insertions(+) create mode 100644 appview/pages/templates/layouts/profilebase.html diff --git a/appview/pages/pages.go b/appview/pages/pages.go index ab16d598..e9abc83f 100644 --- a/appview/pages/pages.go +++ b/appview/pages/pages.go @@ -202,6 +202,15 @@ func (p *Pages) parseRepoBase(top string) (*template.Template, error) { return p.parse(stack...) } +func (p *Pages) parseProfileBase(top string) (*template.Template, error) { + stack := []string{ + "layouts/base", + "layouts/profilebase", + top, + } + return p.parse(stack...) +} + func (p *Pages) executePlain(name string, w io.Writer, params any) error { tpl, err := p.parse(name) if err != nil { @@ -229,6 +238,15 @@ func (p *Pages) executeRepo(name string, w io.Writer, params any) error { return tpl.ExecuteTemplate(w, "layouts/base", params) } +func (p *Pages) executeProfile(name string, w io.Writer, params any) error { + tpl, err := p.parseProfileBase(name) + if err != nil { + return err + } + + return tpl.ExecuteTemplate(w, "layouts/base", params) +} + func (p *Pages) Favicon(w io.Writer) error { return p.executePlain("favicon", w, nil) } diff --git a/appview/pages/templates/layouts/profilebase.html b/appview/pages/templates/layouts/profilebase.html new file mode 100644 index 00000000..9db49f2b --- /dev/null +++ b/appview/pages/templates/layouts/profilebase.html @@ -0,0 +1,104 @@ +{{ define "title" }}{{ or .Card.UserHandle .Card.UserDid }}{{ end }} + +{{ define "extrameta" }} + + + + +{{ end }} + +{{ define "content" }} + {{ template "profileTabs" . }} +
+
+
+
+ {{ template "user/fragments/profileCard" .Card }} + {{ block "punchcard" .Card.Punchcard }} {{ end }} +
+
+ {{ block "profileContent" . }} {{ end }} +
+
+{{ end }} + +{{ define "profileTabs" }} + +{{ end }} + +{{ define "punchcard" }} + {{ $now := now }} +
+

+ PUNCHCARD + + {{ .Total | int64 | commaFmt }} commits + +

+
+ {{ range .Punches }} + {{ $count := .Count }} + {{ $theme := "bg-gray-200 dark:bg-gray-700 size-[4px]" }} + {{ if lt $count 1 }} + {{ $theme = "bg-gray-200 dark:bg-gray-700 size-[4px]" }} + {{ else if lt $count 2 }} + {{ $theme = "bg-green-200 dark:bg-green-900 size-[5px]" }} + {{ else if lt $count 4 }} + {{ $theme = "bg-green-300 dark:bg-green-800 size-[5px]" }} + {{ else if lt $count 8 }} + {{ $theme = "bg-green-400 dark:bg-green-700 size-[6px]" }} + {{ else }} + {{ $theme = "bg-green-500 dark:bg-green-600 size-[7px]" }} + {{ end }} + + {{ if .Date.After $now }} + {{ $theme = "border border-gray-200 dark:border-gray-700 size-[4px]" }} + {{ end }} +
+
+
+
+ {{ end }} +
+
+{{ end }} + +{{ define "layouts/profilebase" }} + {{ template "layouts/base" . }} +{{ end }} + -- 2.43.0