From 1d072c6cc60b8519f87a96dcca169bd4438d6ea2 Mon Sep 17 00:00:00 2001 From: tijl Date: Sat, 31 Aug 2024 17:42:51 +0200 Subject: [PATCH] general page updates --- internal/handlers/routes.go | 13 +--- internal/handlers/services.go | 66 +++++++++++++++++ internal/queries/app_flags.sql.go | 2 +- internal/queries/app_uploader.sql.go | 2 +- internal/queries/db.go | 2 +- internal/queries/models.go | 2 +- internal/queries/sessions.sql.go | 2 +- internal/queries/users.sql.go | 2 +- internal/queries/util.sql.go | 2 +- internal/service/main.go | 8 +++ tailwind.config.ts | 2 +- web/lib/main.css | 51 ++++++++++++- web/static/assets/element.svg | 7 ++ web/static/assets/gitea.svg | 12 ++++ web/static/assets/immich.svg | 18 +++++ web/static/assets/nextcloud.svg | 1 + web/static/assets/services.js | 1 + web/views/about.html | 2 + web/views/blog.html | 26 +++++-- web/views/donate.html | 0 web/views/layouts/base.html | 2 +- web/views/partials/menu.html | 6 +- web/views/post.html | 8 ++- web/views/services.html | 103 ++++++++++++++++++++------- 24 files changed, 282 insertions(+), 58 deletions(-) create mode 100644 internal/handlers/services.go create mode 100644 web/static/assets/element.svg create mode 100644 web/static/assets/gitea.svg create mode 100644 web/static/assets/immich.svg create mode 100644 web/static/assets/nextcloud.svg create mode 100644 web/static/assets/services.js create mode 100644 web/views/donate.html diff --git a/internal/handlers/routes.go b/internal/handlers/routes.go index 433ce3f..49d6c61 100644 --- a/internal/handlers/routes.go +++ b/internal/handlers/routes.go @@ -6,7 +6,6 @@ import ( "git.tijl.dev/tijl/tijl.dev-core/internal/config" "git.tijl.dev/tijl/tijl.dev-core/internal/oidc" - "git.tijl.dev/tijl/tijl.dev-core/internal/user" "git.tijl.dev/tijl/tijl.dev-core/modules/i18n" "git.tijl.dev/tijl/tijl.dev-core/modules/web" webf "git.tijl.dev/tijl/tijl.dev-core/web" @@ -39,15 +38,9 @@ func routes(app *fiber.App) { data["Title"] = i18n.Translate(c, "about") return c.Render("about", data, "layouts/base") }) - app.Get("/services", func(c *fiber.Ctx) error { - _, err := user.GetSession(c) - if err != nil { - return c.Next() - } - data := *web.Common(c) - data["Title"] = i18n.Translate(c, "services") - return c.Render("services", data, "layouts/base") - }) + app.Get("/services", servicesHandler) + app.Get("/service/:service", serviceHandler) + app.Get("/service/:service/info", serviceInfoHandler) app.Get("/login", loginHandler) app.Get("/loggedin", loggedinHandler) app.Get("/account", accountHandler) diff --git a/internal/handlers/services.go b/internal/handlers/services.go new file mode 100644 index 0000000..c936540 --- /dev/null +++ b/internal/handlers/services.go @@ -0,0 +1,66 @@ +package handlers + +import ( + "git.tijl.dev/tijl/tijl.dev-core/modules/i18n" + "git.tijl.dev/tijl/tijl.dev-core/modules/web" + "github.com/gofiber/fiber/v2" +) + +type Service struct { + Name string + Description string + Url string + InfoUrl string + Color string + Scale float64 +} + +var services = map[string]Service{ + "immich": { + Name: "Immich", + Description: "...", + Url: "https://fotos.tijl.dev/photos", + InfoUrl: "https://immich.app", + Color: "white", + Scale: 0, + }, + "element": { + Name: "Element", + Description: "...", + Url: "https://element.tijl.dev", + InfoUrl: "https://matrix.org", + Color: "#0DBD8B", + Scale: 0.1, + }, + "nextcloud": { + Name: "Nextcloud", + Description: "...", + Url: "https://cloud.tijl.dev", + InfoUrl: "https://nextcloud.com", + Color: "#00679e", + Scale: -0.2, + }, +} + +func servicesHandler(c *fiber.Ctx) error { + data := *web.Common(c) + data["Title"] = i18n.Translate(c, "services") + data["Services"] = services + return c.Render("services", data, "layouts/base") +} + +func serviceHandler(c *fiber.Ctx) error { + + if services[c.Params("service")].Url != "" { + return c.Redirect(services[c.Params("service")].Url) + } + return c.Next() +} + +func serviceInfoHandler(c *fiber.Ctx) error { + + if services[c.Params("service")].Url != "" { + return c.Redirect(services[c.Params("service")].InfoUrl) + } + return c.Next() +} diff --git a/internal/queries/app_flags.sql.go b/internal/queries/app_flags.sql.go index 34323b3..8921dd0 100644 --- a/internal/queries/app_flags.sql.go +++ b/internal/queries/app_flags.sql.go @@ -1,6 +1,6 @@ // Code generated by sqlc. DO NOT EDIT. // versions: -// sqlc v1.25.0 +// sqlc v1.27.0 // source: app_flags.sql package queries diff --git a/internal/queries/app_uploader.sql.go b/internal/queries/app_uploader.sql.go index 81dc7cc..d1d61ec 100644 --- a/internal/queries/app_uploader.sql.go +++ b/internal/queries/app_uploader.sql.go @@ -1,6 +1,6 @@ // Code generated by sqlc. DO NOT EDIT. // versions: -// sqlc v1.25.0 +// sqlc v1.27.0 // source: app_uploader.sql package queries diff --git a/internal/queries/db.go b/internal/queries/db.go index ef8b0c2..1cbab90 100644 --- a/internal/queries/db.go +++ b/internal/queries/db.go @@ -1,6 +1,6 @@ // Code generated by sqlc. DO NOT EDIT. // versions: -// sqlc v1.25.0 +// sqlc v1.27.0 package queries diff --git a/internal/queries/models.go b/internal/queries/models.go index 34aaeb2..2818891 100644 --- a/internal/queries/models.go +++ b/internal/queries/models.go @@ -1,6 +1,6 @@ // Code generated by sqlc. DO NOT EDIT. // versions: -// sqlc v1.25.0 +// sqlc v1.27.0 package queries diff --git a/internal/queries/sessions.sql.go b/internal/queries/sessions.sql.go index c1ec560..4db8d36 100644 --- a/internal/queries/sessions.sql.go +++ b/internal/queries/sessions.sql.go @@ -1,6 +1,6 @@ // Code generated by sqlc. DO NOT EDIT. // versions: -// sqlc v1.25.0 +// sqlc v1.27.0 // source: sessions.sql package queries diff --git a/internal/queries/users.sql.go b/internal/queries/users.sql.go index 3f51e44..0a8a073 100644 --- a/internal/queries/users.sql.go +++ b/internal/queries/users.sql.go @@ -1,6 +1,6 @@ // Code generated by sqlc. DO NOT EDIT. // versions: -// sqlc v1.25.0 +// sqlc v1.27.0 // source: users.sql package queries diff --git a/internal/queries/util.sql.go b/internal/queries/util.sql.go index 936ebeb..a5cf809 100644 --- a/internal/queries/util.sql.go +++ b/internal/queries/util.sql.go @@ -1,6 +1,6 @@ // Code generated by sqlc. DO NOT EDIT. // versions: -// sqlc v1.25.0 +// sqlc v1.27.0 // source: util.sql package queries diff --git a/internal/service/main.go b/internal/service/main.go index 8a342b9..802db46 100644 --- a/internal/service/main.go +++ b/internal/service/main.go @@ -3,7 +3,9 @@ package service import ( "context" "fmt" + "math" "net/http" + "time" "git.tijl.dev/tijl/tijl.dev-core/internal/apps/flags" "git.tijl.dev/tijl/tijl.dev-core/internal/apps/uploader" @@ -55,6 +57,12 @@ func Listen() { engine := html.NewFileSystem(http.FS(webf.ViewsEmbed), ".html") engine.Directory = "views" engine.AddFunc("icon", assets.Svg) + engine.AddFunc("incfloat", func(a, b float64) float64 { + return math.Round((a+b)*1e8) / 1e8 + }) + engine.AddFunc("formatdate", func(t time.Time) string { + return t.Format("2 Jan 2006") + }) // Init fiber app := fiber.New(fiber.Config{ diff --git a/tailwind.config.ts b/tailwind.config.ts index 232f94f..0ffabe5 100644 --- a/tailwind.config.ts +++ b/tailwind.config.ts @@ -1,6 +1,6 @@ /** @type {import('tailwindcss').Config} */ module.exports = { - content: ["./internal/**/*.html", "./web/views/**/*.html", "./web/**/*.{js,ts,css}"], + content: ["./web/views/**/*.html", "./web/**/*.{js,ts,css}"], theme: { extend: {}, }, diff --git a/web/lib/main.css b/web/lib/main.css index f171816..8660fa5 100644 --- a/web/lib/main.css +++ b/web/lib/main.css @@ -3,8 +3,10 @@ @import "tailwindcss/utilities"; @layer base { - html { + *, html { font-family: "Cantarell", "CantarellVF", sans-serif; + scroll-margin-top: 96px; + scroll-behavior: smooth; } .no-scrollbar::-webkit-scrollbar { @@ -24,3 +26,50 @@ font-display: swap; } + +.posts-item { + cursor: pointer; + user-select: none; + transition-property: color, background-color, border-color, + text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, + backdrop-filter; + transition-duration: 200ms; + transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); + animation: button-pop var(--animation-posts-item, 0.25s) ease-out; + --tw-border-opacity: 1; + --tw-bg-opacity: 1; + --tw-text-opacity: 1; +} +.posts-item-group > input[type="radio"].posts-item { + appearance: none; +} +.posts-item-group > input[type="radio"].posts-item:before { + content: attr(data-title); +} +.posts-item:active:hover, +.posts-item:active:focus { + animation: none; +} +.posts-item:active:hover, +.posts-item:active:focus { + animation: none; +} +.posts-item:not(.no-animation):active:hover, +.posts-item:not(.no-animation):active:focus { + transform: scale(var(--posts-item-focus-scale, 0.95)); +} +.posts-item:not(.no-animation):active:hover, +.posts-item:not(.no-animation):active:focus { + transform: scale(var(--posts-item-focus-scale, 0.95)); +} +.posts-item:hover, +.posts-item-active { + --tw-border-opacity: 1; + /*border-color: hsl(var(--nf, var(--n)) / var(--tw-border-opacity));*/ + --tw-bg-opacity: 1; + background-color: hsl(var(--nf, var(--n)) / var(--tw-bg-opacity)); +} +.posts-item:focus-visible { + outline: 2px solid hsl(var(--nf)); + outline-offset: 2px; +} diff --git a/web/static/assets/element.svg b/web/static/assets/element.svg new file mode 100644 index 0000000..76461ec --- /dev/null +++ b/web/static/assets/element.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/web/static/assets/gitea.svg b/web/static/assets/gitea.svg new file mode 100644 index 0000000..797d894 --- /dev/null +++ b/web/static/assets/gitea.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/web/static/assets/immich.svg b/web/static/assets/immich.svg new file mode 100644 index 0000000..9c99381 --- /dev/null +++ b/web/static/assets/immich.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/web/static/assets/nextcloud.svg b/web/static/assets/nextcloud.svg new file mode 100644 index 0000000..d68aca1 --- /dev/null +++ b/web/static/assets/nextcloud.svg @@ -0,0 +1 @@ + diff --git a/web/static/assets/services.js b/web/static/assets/services.js new file mode 100644 index 0000000..1ac74b4 --- /dev/null +++ b/web/static/assets/services.js @@ -0,0 +1 @@ +console.log("hi") diff --git a/web/views/about.html b/web/views/about.html index c2a0e55..e32d589 100644 --- a/web/views/about.html +++ b/web/views/about.html @@ -1,4 +1,6 @@
+ HELLO???
Bitcoin Paynym PM8TJh8YdsX67AWUFoHjEQUJ5amsBbWq1XqcygbVCPkEnwXw8b61z4JDFTLUaPKcnLwdwE9353f1YaAHgQVtXs8ZZ1SS3GqdsRvduYEUwB385BS7KcfD
diff --git a/web/views/blog.html b/web/views/blog.html index afc8300..b4257c5 100644 --- a/web/views/blog.html +++ b/web/views/blog.html @@ -1,7 +1,23 @@ -
Posts
-
- {{range .Posts}} -
{{.Meta.Title}}
- {{end}} +
diff --git a/web/views/donate.html b/web/views/donate.html new file mode 100644 index 0000000..e69de29 diff --git a/web/views/layouts/base.html b/web/views/layouts/base.html index 1c9ce97..78dc983 100644 --- a/web/views/layouts/base.html +++ b/web/views/layouts/base.html @@ -15,7 +15,7 @@
{{template "partials/menu" .}}
-
+
{{embed}}
diff --git a/web/views/partials/menu.html b/web/views/partials/menu.html index 8c64443..10f9302 100644 --- a/web/views/partials/menu.html +++ b/web/views/partials/menu.html @@ -1,4 +1,4 @@ -