From 2bf9ce74de03a2d75e7c19a380119deef77d8fba Mon Sep 17 00:00:00 2001 From: AKP Date: Sat, 2 Apr 2022 21:56:50 +0100 Subject: Add loading things and success toast Signed-off-by: AKP --- walrss/internal/http/edit.go | 21 ++- walrss/internal/http/http.go | 4 + walrss/internal/http/views/main.qtpl.html | 201 ++++++++++++-------- walrss/internal/http/views/main.qtpl.html.go | 267 +++++++++++++++++---------- walrss/internal/http/views/page.qtpl.html | 17 +- walrss/internal/http/views/page.qtpl.html.go | 17 +- 6 files changed, 335 insertions(+), 192 deletions(-) diff --git a/walrss/internal/http/edit.go b/walrss/internal/http/edit.go index 8599f07..0c5bd95 100644 --- a/walrss/internal/http/edit.go +++ b/walrss/internal/http/edit.go @@ -3,6 +3,7 @@ package http import ( "github.com/codemicro/walrss/walrss/internal/core" "github.com/codemicro/walrss/walrss/internal/db" + "github.com/codemicro/walrss/walrss/internal/http/views" "github.com/codemicro/walrss/walrss/internal/urls" "github.com/gofiber/fiber/v2" "strconv" @@ -12,7 +13,7 @@ import ( func (s *Server) editEnabledState(ctx *fiber.Ctx) error { currentUserID := getCurrentUserID(ctx) if currentUserID == "" { - return requestStandardSignIn(ctx) + return requestFragmentSignIn(ctx, urls.Index) } user, err := core.GetUserByID(s.state, currentUserID) @@ -30,14 +31,18 @@ func (s *Server) editEnabledState(ctx *fiber.Ctx) error { return err } - ctx.Set("HX-Redirect", urls.Index) - return nil + fragmentEmitSuccess(ctx) + return ctx.SendString((&views.MainPage{ + EnableDigests: user.Schedule.Active, + SelectedDay: user.Schedule.Day, + SelectedTime: user.Schedule.Hour, + }).RenderScheduleCard()) } func (s *Server) editTimings(ctx *fiber.Ctx) error { currentUserID := getCurrentUserID(ctx) if currentUserID == "" { - return requestStandardSignIn(ctx) + return requestFragmentSignIn(ctx, urls.Index) } user, err := core.GetUserByID(s.state, currentUserID) @@ -69,6 +74,10 @@ func (s *Server) editTimings(ctx *fiber.Ctx) error { return err } - ctx.Set("HX-Redirect", urls.Index) - return nil + fragmentEmitSuccess(ctx) + return ctx.SendString((&views.MainPage{ + EnableDigests: user.Schedule.Active, + SelectedDay: user.Schedule.Day, + SelectedTime: user.Schedule.Hour, + }).RenderScheduleCard()) } diff --git a/walrss/internal/http/http.go b/walrss/internal/http/http.go index cf0589e..603002b 100644 --- a/walrss/internal/http/http.go +++ b/walrss/internal/http/http.go @@ -130,3 +130,7 @@ func requestFragmentSignIn(ctx *fiber.Ctx, nextURL string) error { ctx.Set("HX-Redirect", urls.AuthSignIn+"?"+queryParams.Encode()) return nil } + +func fragmentEmitSuccess(ctx *fiber.Ctx) { + ctx.Set("HX-Trigger", "successResponse") +} diff --git a/walrss/internal/http/views/main.qtpl.html b/walrss/internal/http/views/main.qtpl.html index 65272ab..60a19eb 100644 --- a/walrss/internal/http/views/main.qtpl.html +++ b/walrss/internal/http/views/main.qtpl.html @@ -10,89 +10,49 @@ {% func (p *MainPage) Title() %}{% endfunc %} {% func (p *MainPage) Body() %} -{%= navbar() %} - -
-

My settings

- -
-
- Schedule +
+ -
- - - -
+{%= navbar() %} -
-
- Deliver my digests -
+ -
- - -
-
+
+

My settings

-
-
+ {%= p.RenderScheduleCard() %}
@@ -134,4 +94,97 @@
+{% endfunc %} + +{% func (p *MainPage) RenderScheduleCard() %} +
+
+ Schedule +
+
+ +
+
+ + +
+ +
+
+ Loading... +
+
+
+ +
+
+ Deliver my digests +
+ +
+ + +
+ +
at
+ +
+ + +
+ +
UTC
+ +
+ +
+ +
+
+ Loading... +
+
+
+ +
+
{% endfunc %} \ No newline at end of file diff --git a/walrss/internal/http/views/main.qtpl.html.go b/walrss/internal/http/views/main.qtpl.html.go index a6c7b1b..d18a5ac 100644 --- a/walrss/internal/http/views/main.qtpl.html.go +++ b/walrss/internal/http/views/main.qtpl.html.go @@ -44,20 +44,121 @@ func (p *MainPage) Title() string { func (p *MainPage) StreamBody(qw422016 *qt422016.Writer) { qw422016.N().S(` +
+ +
+ `) streamnavbar(qw422016) qw422016.N().S(` + +

My settings

+ `) + p.StreamRenderScheduleCard(qw422016) + qw422016.N().S(` +
- Schedule + Feeds
-
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
#FirstLastHandle
1MarkOtto@mdo
2JacobThornton@fat
3Larry the Bird@twitter
+ +
+
+ +
+`) +} + +func (p *MainPage) WriteBody(qq422016 qtio422016.Writer) { + qw422016 := qt422016.AcquireWriter(qq422016) + p.StreamBody(qw422016) + qt422016.ReleaseWriter(qw422016) +} + +func (p *MainPage) Body() string { + qb422016 := qt422016.AcquireByteBuffer() + p.WriteBody(qb422016) + qs422016 := string(qb422016.B) + qt422016.ReleaseByteBuffer(qb422016) + return qs422016 +} + +func (p *MainPage) StreamRenderScheduleCard(qw422016 *qt422016.Writer) { + qw422016.N().S(` +
+
+ Schedule +
+
+ +
+
-
-
+
+ Loading... +
+
+
+ + -
- Deliver my digests -
+ hx-indicator="#submitScheduleIndicator" + > +
+ Deliver my digests +
-
- - - `) + > + `) for i := db.SendDaily; i <= db.SendOnSunday; i += 1 { qw422016.N().S(` - - `) + + `) } qw422016.N().S(` - -
+ +
-
at
+
at
-
- - - `) + > + `) for i := 0; i <= 23; i += 1 { qw422016.N().S(` - - `) + + `) } qw422016.N().S(` - -
+ +
-
UTC
+
UTC
-
- - -
- - -
-
- -
-
- Feeds -
-
+
- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
#FirstLastHandle
1MarkOtto@mdo
2JacobThornton@fat
3Larry the Bird@twitter
+
+
+ Loading... +
+
+ -
- `) } -func (p *MainPage) WriteBody(qq422016 qtio422016.Writer) { +func (p *MainPage) WriteRenderScheduleCard(qq422016 qtio422016.Writer) { qw422016 := qt422016.AcquireWriter(qq422016) - p.StreamBody(qw422016) + p.StreamRenderScheduleCard(qw422016) qt422016.ReleaseWriter(qw422016) } -func (p *MainPage) Body() string { +func (p *MainPage) RenderScheduleCard() string { qb422016 := qt422016.AcquireByteBuffer() - p.WriteBody(qb422016) + p.WriteRenderScheduleCard(qb422016) qs422016 := string(qb422016.B) qt422016.ReleaseByteBuffer(qb422016) return qs422016 diff --git a/walrss/internal/http/views/page.qtpl.html b/walrss/internal/http/views/page.qtpl.html index f885de9..9e9c0c2 100644 --- a/walrss/internal/http/views/page.qtpl.html +++ b/walrss/internal/http/views/page.qtpl.html @@ -15,19 +15,22 @@ Page prints a page implementing Page interface. + {%= p.HeadContent() %} diff --git a/walrss/internal/http/views/page.qtpl.html.go b/walrss/internal/http/views/page.qtpl.html.go index 4d53006..b0900f9 100644 --- a/walrss/internal/http/views/page.qtpl.html.go +++ b/walrss/internal/http/views/page.qtpl.html.go @@ -39,19 +39,22 @@ func StreamRenderPage(qw422016 *qt422016.Writer, p Page) { + `) p.StreamHeadContent(qw422016) -- cgit v1.2.3-70-g09d2