view: added barebone schedule history page
This commit is contained in:
parent
e7473563ac
commit
fb54633390
|
@ -16,6 +16,8 @@ func (routes *Routes) PageHome(rw http.ResponseWriter, r *http.Request) {
|
||||||
ctx, span := tracer.Start(r.Context(), "routes.PageHome")
|
ctx, span := tracer.Start(r.Context(), "routes.PageHome")
|
||||||
defer span.End()
|
defer span.End()
|
||||||
|
|
||||||
|
var data homeview.Data
|
||||||
|
|
||||||
vc := views.NewContext(routes.Config, r)
|
vc := views.NewContext(routes.Config, r)
|
||||||
|
|
||||||
listSubredditParams := parseSubredditListQuery(r)
|
listSubredditParams := parseSubredditListQuery(r)
|
||||||
|
@ -48,12 +50,10 @@ func (routes *Routes) PageHome(rw http.ResponseWriter, r *http.Request) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
data := homeview.Data{
|
data.SubredditsList = list
|
||||||
SubredditsList: list,
|
data.RecentlyAddedImages = homeview.NewRecentlyAddedImages(imageList.Images)
|
||||||
RecentlyAddedImages: homeview.NewRecentlyAddedImages(imageList.Images),
|
data.Now = time.Now()
|
||||||
Now: time.Now(),
|
data.TotalImages = imageList.Total
|
||||||
TotalImages: imageList.Total,
|
|
||||||
}
|
|
||||||
|
|
||||||
if err := homeview.Home(vc, data).Render(ctx, rw); err != nil {
|
if err := homeview.Home(vc, data).Render(ctx, rw); err != nil {
|
||||||
log.New(ctx).Err(err).Error("failed to render home view")
|
log.New(ctx).Err(err).Error("failed to render home view")
|
||||||
|
|
22
server/routes/page_schedule_history.go
Normal file
22
server/routes/page_schedule_history.go
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
package routes
|
||||||
|
|
||||||
|
import (
|
||||||
|
"net/http"
|
||||||
|
|
||||||
|
"github.com/tigorlazuardi/redmage/pkg/log"
|
||||||
|
"github.com/tigorlazuardi/redmage/views"
|
||||||
|
scheduleshistoryview "github.com/tigorlazuardi/redmage/views/schedulehistoriesview"
|
||||||
|
)
|
||||||
|
|
||||||
|
func (routes *Routes) PageScheduleHistory(rw http.ResponseWriter, req *http.Request) {
|
||||||
|
ctx, span := tracer.Start(req.Context(), "*Routes.PageScheduleHistory")
|
||||||
|
defer span.End()
|
||||||
|
|
||||||
|
c := views.NewContext(routes.Config, req)
|
||||||
|
|
||||||
|
var data scheduleshistoryview.Data
|
||||||
|
|
||||||
|
if err := scheduleshistoryview.ScheduleHistoriesview(c, data).Render(ctx, rw); err != nil {
|
||||||
|
log.New(ctx).Err(err).Error("Failed to render schedule histories view")
|
||||||
|
}
|
||||||
|
}
|
|
@ -81,5 +81,6 @@ func (routes *Routes) registerWWWRoutes(router chi.Router) {
|
||||||
r.Get("/subreddits/details/{name}", routes.PageSubredditsDetails)
|
r.Get("/subreddits/details/{name}", routes.PageSubredditsDetails)
|
||||||
r.Get("/subreddits/add", routes.PageSubredditsAdd)
|
r.Get("/subreddits/add", routes.PageSubredditsAdd)
|
||||||
r.Get("/config", routes.PageConfig)
|
r.Get("/config", routes.PageConfig)
|
||||||
|
r.Get("/schedules", routes.PageScheduleHistory)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,7 +3,6 @@ package components
|
||||||
import "github.com/tigorlazuardi/redmage/views"
|
import "github.com/tigorlazuardi/redmage/views"
|
||||||
import "strings"
|
import "strings"
|
||||||
import "github.com/tigorlazuardi/redmage/views/utils"
|
import "github.com/tigorlazuardi/redmage/views/utils"
|
||||||
import "strconv"
|
|
||||||
|
|
||||||
templ Navigation(c *views.Context) {
|
templ Navigation(c *views.Context) {
|
||||||
<div class="drawer">
|
<div class="drawer">
|
||||||
|
@ -76,7 +75,7 @@ templ Navbar(c *views.Context) {
|
||||||
<span class="font-bold">Redmage</span>
|
<span class="font-bold">Redmage</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="divider"></div>
|
<div class="divider"></div>
|
||||||
<nav class="flex-grow pt-4 min-h-full flex flex-col transition-all">
|
<nav hx-boost="true" class="flex-grow pt-4 min-h-full flex flex-col transition-all">
|
||||||
@navList(c)
|
@navList(c)
|
||||||
</nav>
|
</nav>
|
||||||
</div>
|
</div>
|
||||||
|
@ -84,29 +83,28 @@ templ Navbar(c *views.Context) {
|
||||||
}
|
}
|
||||||
|
|
||||||
templ navList(c *views.Context) {
|
templ navList(c *views.Context) {
|
||||||
@createLink(c, "/", "Home", true)
|
@createLink(c, "/", "Home")
|
||||||
@createLink(c, "/config", "Config", false)
|
@createLink(c, "/config", "Config")
|
||||||
@createLink(c, "/devices", "Devices", true)
|
@createLink(c, "/devices", "Devices")
|
||||||
@createLink(c, "/subreddits", "Subreddits", true)
|
@createLink(c, "/subreddits", "Subreddits")
|
||||||
@createLink(c, "/schedules", "Schedules", true)
|
@createLink(c, "/schedules", "Schedules")
|
||||||
<div class="flex-1 flex-shrink-0"></div>
|
<div class="flex-1 flex-shrink-0"></div>
|
||||||
<div class="divider"></div>
|
<div class="divider"></div>
|
||||||
@createLink(c, "/about", "About", true)
|
@createLink(c, "/about", "About")
|
||||||
<div class="mt-4"></div>
|
<div class="mt-4"></div>
|
||||||
}
|
}
|
||||||
|
|
||||||
templ createLink(c *views.Context, path string, text string, boost bool) {
|
templ createLink(c *views.Context, path string, text string) {
|
||||||
<a
|
<a
|
||||||
href={ templ.URL(path) }
|
href={ templ.URL(path) }
|
||||||
class={ utils.CX(map[string]bool{
|
class={ utils.CX(map[string]bool{
|
||||||
"hover:bg-accent": true,
|
"hover:bg-accent": true,
|
||||||
"hover:text-neutral-50": true,
|
"hover:text-neutral-50": true,
|
||||||
"py-2": true,
|
"py-2": true,
|
||||||
"text-center": true,
|
"text-center": true,
|
||||||
"font-bold": isCurrentPage(c, path),
|
"font-bold": isCurrentPage(c, path),
|
||||||
"hover:font-bold": true,
|
"hover:font-bold": true,
|
||||||
}) }
|
}) }
|
||||||
hx-boost={ strconv.FormatBool(boost) }
|
|
||||||
>{ text }</a>
|
>{ text }</a>
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
26
views/schedulehistoriesview/schedulesview.templ
Normal file
26
views/schedulehistoriesview/schedulesview.templ
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
package scheduleshistoryview
|
||||||
|
|
||||||
|
import "github.com/tigorlazuardi/redmage/views"
|
||||||
|
import "github.com/tigorlazuardi/redmage/views/components"
|
||||||
|
|
||||||
|
type Data struct{}
|
||||||
|
|
||||||
|
templ ScheduleHistoriesview(c *views.Context, data Data) {
|
||||||
|
@components.Doctype() {
|
||||||
|
@components.Head(c,
|
||||||
|
components.HeadTitle("Schedule History"),
|
||||||
|
)
|
||||||
|
@components.Body(c) {
|
||||||
|
@ScheduleHistoriesContent(c, data)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
templ ScheduleHistoriesContent(c *views.Context, data Data) {
|
||||||
|
@components.Container() {
|
||||||
|
<main class="prose min-w-full">
|
||||||
|
<h1>Schedule History</h1>
|
||||||
|
<div class="divider"></div>
|
||||||
|
</main>
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in a new issue