Compare commits
2 Commits
60268e600f
...
de5a1505a9
Author | SHA1 | Date | |
---|---|---|---|
de5a1505a9 | |||
8667cf729f |
@ -3,12 +3,15 @@ package handlers
|
|||||||
import (
|
import (
|
||||||
"net/http"
|
"net/http"
|
||||||
|
|
||||||
|
"github.com/a-h/templ"
|
||||||
"github.com/labstack/echo/v4"
|
"github.com/labstack/echo/v4"
|
||||||
|
|
||||||
"git.grosinger.net/tgrosinger/saasitone/pkg/context"
|
"git.grosinger.net/tgrosinger/saasitone/pkg/context"
|
||||||
"git.grosinger.net/tgrosinger/saasitone/pkg/log"
|
"git.grosinger.net/tgrosinger/saasitone/pkg/log"
|
||||||
"git.grosinger.net/tgrosinger/saasitone/pkg/page"
|
"git.grosinger.net/tgrosinger/saasitone/pkg/page"
|
||||||
"git.grosinger.net/tgrosinger/saasitone/pkg/services"
|
"git.grosinger.net/tgrosinger/saasitone/pkg/services"
|
||||||
|
"git.grosinger.net/tgrosinger/saasitone/templ/layouts"
|
||||||
|
"git.grosinger.net/tgrosinger/saasitone/templ/pages"
|
||||||
"git.grosinger.net/tgrosinger/saasitone/templates"
|
"git.grosinger.net/tgrosinger/saasitone/templates"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -38,13 +41,18 @@ func (e *Error) Page(err error, ctx echo.Context) {
|
|||||||
|
|
||||||
// Render the error page
|
// Render the error page
|
||||||
p := page.New(ctx)
|
p := page.New(ctx)
|
||||||
p.Layout = templates.LayoutMain
|
|
||||||
p.Name = templates.PageError
|
p.Name = templates.PageError
|
||||||
p.Title = http.StatusText(code)
|
p.Title = http.StatusText(code)
|
||||||
p.StatusCode = code
|
p.StatusCode = code
|
||||||
p.HTMX.Request.Enabled = false
|
p.HTMX.Request.Enabled = false
|
||||||
|
|
||||||
if err = e.RenderPage(ctx, p); err != nil {
|
component := pages.Error(p)
|
||||||
|
|
||||||
|
p.LayoutComponent = func(content templ.Component) templ.Component {
|
||||||
|
return layouts.Main(p, content)
|
||||||
|
}
|
||||||
|
|
||||||
|
if err = e.RenderPageTempl(ctx, p, component); err != nil {
|
||||||
log.Ctx(ctx).Error("failed to render error page",
|
log.Ctx(ctx).Error("failed to render error page",
|
||||||
"error", err,
|
"error", err,
|
||||||
)
|
)
|
||||||
|
@ -162,7 +162,7 @@ func tabs(t []AboutTab) templ.Component {
|
|||||||
if templ_7745c5c3_Err != nil {
|
if templ_7745c5c3_Err != nil {
|
||||||
return templ_7745c5c3_Err
|
return templ_7745c5c3_Err
|
||||||
}
|
}
|
||||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("\"><p>NOT WORKING YET")
|
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("\"><p>")
|
||||||
if templ_7745c5c3_Err != nil {
|
if templ_7745c5c3_Err != nil {
|
||||||
return templ_7745c5c3_Err
|
return templ_7745c5c3_Err
|
||||||
}
|
}
|
||||||
|
19
templ/pages/error.templ
Normal file
19
templ/pages/error.templ
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
package pages
|
||||||
|
|
||||||
|
import (
|
||||||
|
"net/http"
|
||||||
|
|
||||||
|
"git.grosinger.net/tgrosinger/saasitone/pkg/page"
|
||||||
|
)
|
||||||
|
|
||||||
|
templ Error(p page.Page) {
|
||||||
|
if p.StatusCode >= 500 {
|
||||||
|
<p>Please try again.</p>
|
||||||
|
} else if p.StatusCode == http.StatusUnauthorized || p.StatusCode == http.StatusForbidden {
|
||||||
|
<p>You are not authorized to view the requested page.</p>
|
||||||
|
} else if p.StatusCode == http.StatusNotFound {
|
||||||
|
<p>Click <a href={ templ.URL(p.ToURL("home")) }>here</a> to return home</p>
|
||||||
|
} else {
|
||||||
|
<p>Something went wrong</p>
|
||||||
|
}
|
||||||
|
}
|
67
templ/pages/error_templ.go
Normal file
67
templ/pages/error_templ.go
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
// Code generated by templ - DO NOT EDIT.
|
||||||
|
|
||||||
|
// templ: version: v0.2.707
|
||||||
|
package pages
|
||||||
|
|
||||||
|
//lint:file-ignore SA4006 This context is only used if a nested component is present.
|
||||||
|
|
||||||
|
import "github.com/a-h/templ"
|
||||||
|
import "context"
|
||||||
|
import "io"
|
||||||
|
import "bytes"
|
||||||
|
|
||||||
|
import (
|
||||||
|
"net/http"
|
||||||
|
|
||||||
|
"git.grosinger.net/tgrosinger/saasitone/pkg/page"
|
||||||
|
)
|
||||||
|
|
||||||
|
func Error(p page.Page) templ.Component {
|
||||||
|
return templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) {
|
||||||
|
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer)
|
||||||
|
if !templ_7745c5c3_IsBuffer {
|
||||||
|
templ_7745c5c3_Buffer = templ.GetBuffer()
|
||||||
|
defer templ.ReleaseBuffer(templ_7745c5c3_Buffer)
|
||||||
|
}
|
||||||
|
ctx = templ.InitializeContext(ctx)
|
||||||
|
templ_7745c5c3_Var1 := templ.GetChildren(ctx)
|
||||||
|
if templ_7745c5c3_Var1 == nil {
|
||||||
|
templ_7745c5c3_Var1 = templ.NopComponent
|
||||||
|
}
|
||||||
|
ctx = templ.ClearChildren(ctx)
|
||||||
|
if p.StatusCode >= 500 {
|
||||||
|
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<p>Please try again.</p>")
|
||||||
|
if templ_7745c5c3_Err != nil {
|
||||||
|
return templ_7745c5c3_Err
|
||||||
|
}
|
||||||
|
} else if p.StatusCode == http.StatusUnauthorized || p.StatusCode == http.StatusForbidden {
|
||||||
|
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<p>You are not authorized to view the requested page.</p>")
|
||||||
|
if templ_7745c5c3_Err != nil {
|
||||||
|
return templ_7745c5c3_Err
|
||||||
|
}
|
||||||
|
} else if p.StatusCode == http.StatusNotFound {
|
||||||
|
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<p>Click <a href=\"")
|
||||||
|
if templ_7745c5c3_Err != nil {
|
||||||
|
return templ_7745c5c3_Err
|
||||||
|
}
|
||||||
|
var templ_7745c5c3_Var2 templ.SafeURL = templ.URL(p.ToURL("home"))
|
||||||
|
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(string(templ_7745c5c3_Var2)))
|
||||||
|
if templ_7745c5c3_Err != nil {
|
||||||
|
return templ_7745c5c3_Err
|
||||||
|
}
|
||||||
|
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("\">here</a> to return home</p>")
|
||||||
|
if templ_7745c5c3_Err != nil {
|
||||||
|
return templ_7745c5c3_Err
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<p>Something went wrong</p>")
|
||||||
|
if templ_7745c5c3_Err != nil {
|
||||||
|
return templ_7745c5c3_Err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if !templ_7745c5c3_IsBuffer {
|
||||||
|
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteTo(templ_7745c5c3_W)
|
||||||
|
}
|
||||||
|
return templ_7745c5c3_Err
|
||||||
|
})
|
||||||
|
}
|
@ -1,11 +0,0 @@
|
|||||||
{{define "content"}}
|
|
||||||
{{if ge .StatusCode 500}}
|
|
||||||
<p>Please try again.</p>
|
|
||||||
{{else if or (eq .StatusCode 403) (eq .StatusCode 401)}}
|
|
||||||
<p>You are not authorized to view the requested page.</p>
|
|
||||||
{{else if eq .StatusCode 404}}
|
|
||||||
<p>Click {{link (url "home") "here" .Path}} to return home</p>
|
|
||||||
{{else}}
|
|
||||||
<p>Something went wrong</p>
|
|
||||||
{{end}}
|
|
||||||
{{end}}
|
|
Loading…
Reference in New Issue
Block a user