package views
import (
"fmt"
"git.32bit.cafe/32bitcafe/guestbook/internal/forms"
"git.32bit.cafe/32bitcafe/guestbook/internal/models"
"time"
)
func wUrl(w models.Website) string {
return fmt.Sprintf("/websites/%s", shortIdToSlug(w.ShortId))
}
templ wSidebar(website models.Website) {
{{ dashUrl := wUrl(website) + "/dashboard" }}
{{ gbUrl := wUrl(website) + "/guestbook" }}
}
templ websiteCreateForm(csrfToken string, form forms.WebsiteCreateForm) {
{{ err, exists := form.FieldErrors["sitename"] }}
if exists {
}
{{ err, exists = form.FieldErrors["siteurl"] }}
if exists {
}
{{ err, exists = form.FieldErrors["authorname"] }}
if exists {
}
}
templ WebsiteList(title string, data CommonData, websites []models.Website) {
@base(title, data) {
}
}
templ WebsiteDashboard(title string, data CommonData, website models.Website) {
@base(title, data) {
@wSidebar(website)
Embed your Guestbook
Upload this JavaScript WebComponent to your site and include it in your { `` }
tag.
//
{
`
` }
Then add the custom elements where you want your form and comments to show up
{{ gbUrl := fmt.Sprintf("https://%s/websites/%s/guestbook", data.RootUrl, shortIdToSlug(website.ShortId)) }}
//
{ fmt.Sprintf(`
`, gbUrl, gbUrl) }
If your web host does not allow CORS requests, use an iframe instead
{ fmt.Sprintf(``, gbUrl) }
}
}
templ websiteSettingsForm(data CommonData, website models.Website, form forms.WebsiteSettingsForm) {
Website Settings
{{ err, exists := form.FieldErrors["ws_name"] }}
if exists {
}
if form.SiteName != "" {
} else {
}
{{ err, exists = form.FieldErrors["ws_url"] }}
if exists {
}
if form.SiteUrl != "" {
} else {
}
{{ err, exists = form.FieldErrors["ws_author"] }}
if exists {
}
if form.AuthorName != "" {
} else {
}
}
templ guestbookSettingsForm(data CommonData, website models.Website, gb models.Guestbook, form forms.WebsiteSettingsForm) {
Guestbook Settings
if !website.Guestbook.CanComment() {
{{ localtime := gb.Settings.ReenableCommenting.In(data.CurrentUser.Settings.LocalTimezone) }}
}
}
templ SettingsForm(data CommonData, website models.Website, form forms.WebsiteSettingsForm, msg string) {
{{ putUrl := fmt.Sprintf("/websites/%s/dashboard/settings", shortIdToSlug(website.ShortId)) }}
{{ gb := website.Guestbook }}
}
templ WebsiteDashboardSettings(data CommonData, website models.Website, form forms.WebsiteSettingsForm) {
{{ title := fmt.Sprintf("%s - Settings", website.Name) }}
@base(title, data) {
@wSidebar(website)
@SettingsForm(data, website, form, "")
}
}
templ WebsiteDashboardComingSoon(title string, data CommonData, website models.Website) {
@base(title, data) {
}
}
templ WebsiteCreate(title string, data CommonData, form forms.WebsiteCreateForm) {
@base(title, data) {
}
}