Files
ersteller/authentication/login_page.go
T

58 lines
1.2 KiB
Go

package authentication
import (
"ersteller-lib"
"github.com/labstack/echo/v4"
"maragu.dev/gomponents"
. "maragu.dev/gomponents/html"
)
const LoginPath = "/login"
type LoginPage struct {
createPage ersteller_lib.CreatePageFunc
LoginRoute ersteller_lib.GetRoute
googleLoginUrl string
}
func NewLoginPage(e *echo.Echo, createPage ersteller_lib.CreatePageFunc, googleLoginUrl string) *LoginPage {
page := &LoginPage{createPage: createPage, googleLoginUrl: googleLoginUrl}
page.LoginRoute = ersteller_lib.NewGetRoute(LoginPath, page.Render).Add(e)
return page
}
func (l *LoginPage) Render(c echo.Context) error {
return l.createPage(c, ersteller_lib.PageWebsiteMetaData{
Title: ersteller_lib.NewI18nText(map[ersteller_lib.Language]string{
ersteller_lib.En: "Login",
ersteller_lib.De: "Anmelden",
}),
HideNavigation: true,
}, l.getLoginPage())
}
func (l *LoginPage) getLoginPage() gomponents.Group {
return []gomponents.Node{
P(
A(
Href(OpenIdConnectPath),
Button(
Class("btn btn-primary"),
Type("button"),
gomponents.Text("Login"),
),
),
),
P(
A(
Href(l.googleLoginUrl),
Button(
Class("btn btn-primary"),
Type("button"),
gomponents.Text("Google Login"),
),
),
),
}
}