package views
import "fmt"
import "git.32bit.cafe/32bitcafe/guestbook/internal/models"
import "git.32bit.cafe/32bitcafe/guestbook/internal/forms"
import "time"
templ GuestbookDashboardCommentsView(title string, data CommonData, website models.Website, guestbook models.Guestbook, comments []models.GuestbookComment) {
@base(title, data) {
@wSidebar(website)
Comments on { website.SiteUrl }
if len(comments) == 0 {
No comments yet!
}
for _, c := range comments {
@GuestbookDashboardCommentView(data, website, c)
}
}
}
templ GuestbookDashboardCommentView(data CommonData, w models.Website, c models.GuestbookComment) {
{{ commentUrl := fmt.Sprintf("%s/dashboard/guestbook/comments/%s", wUrl(w), shortIdToSlug(c.ShortId)) }}
{{ hxHeaders := fmt.Sprintf("{\"X-CSRF-Token\": \"%s\"}", data.CSRFToken) }}
}
templ commentForm(form forms.CommentCreateForm) {
{{ error, exists := form.FieldErrors["authorName"] }}
if exists {
}
{{ error, exists = form.FieldErrors["authorEmail"] }}
if exists {
}
{{ error, exists = form.FieldErrors["authorSite"] }}
if exists {
}
{{ error, exists = form.FieldErrors["content"] }}
if exists {
}
}
templ GuestbookView(title string, data CommonData, website models.Website, guestbook models.Guestbook, comments []models.GuestbookComment, form forms.CommentCreateForm) {
{{ postUrl := fmt.Sprintf("/websites/%s/guestbook/comments/create", shortIdToSlug(website.ShortId)) }}
if data.IsHtmx {
@commentForm(form)
} else {
{ title }
Guestbook for { website.Name }
{ data.Flash }
}
}
templ settingRadio(selected bool, name, id, value string) {
}
templ GuestbookSettingsView(data CommonData, website models.Website) {
{{ putUrl := fmt.Sprintf("/websites/%s/dashboard/guestbook/settings", shortIdToSlug(website.ShortId)) }}
{{ gb := website.Guestbook }}
@base("Guestbook Settings", data) {
}
}
templ EmbeddableGuestbookCommentForm(data CommonData, w models.Website, f forms.CommentCreateForm) {
{{ postUrl := fmt.Sprintf("/websites/%s/guestbook/comments/create?headless=true", shortIdToSlug(w.ShortId)) }}
{ data.Flash }
}
templ AllGuestbooksView(data CommonData, websites []models.Website) {
@base("All Guestbooks", data) {
All Guestbooks
This page exists only for testing the service.
for _, w := range websites {
-
{{ gbUrl := fmt.Sprintf("/websites/%s/guestbook", shortIdToSlug(w.ShortId)) }}
{ w.Name }
}
}
}
templ GuestbookCommentCreateRemoteErrorView(url, err string) {
An error occurred while posting comment. { err }. Redirecting.
Redirect
}
templ GuestbookCommentCreateRemoteSuccessView(url string) {
Comment successfully posted. Redirecting.
Redirect
}
No comments yet!
} for _, c := range comments {if c.AuthorSite != "" { { c.AuthorName } } else { { c.AuthorName } }
{ c.CommentText }