60 lines
1.2 KiB
Go
60 lines
1.2 KiB
Go
package authentication
|
|
|
|
import (
|
|
"github.com/labstack/echo/v4"
|
|
"maragu.dev/gomponents"
|
|
. "maragu.dev/gomponents/html"
|
|
"salezenify/google"
|
|
"salezenify/html_components/components"
|
|
"salezenify/html_components/route"
|
|
"salezenify/layout"
|
|
"salezenify/user"
|
|
)
|
|
|
|
const LoginPath = "/login"
|
|
|
|
type LoginPage struct {
|
|
createPage layout.CreatePageFunc
|
|
LoginRoute route.GetRoute
|
|
}
|
|
|
|
func NewLoginPage(e *echo.Echo, createPage layout.CreatePageFunc) *LoginPage {
|
|
page := &LoginPage{createPage: createPage}
|
|
page.LoginRoute = route.NewGetRoute(LoginPath, page.Render).Add(e)
|
|
return page
|
|
}
|
|
|
|
func (l *LoginPage) Render(c echo.Context) error {
|
|
return l.createPage(c, layout.PageWebsiteMetaData{
|
|
WebsiteMetaData: components.WebsiteMetaData{
|
|
Title: "Login",
|
|
},
|
|
HideNavigation: true,
|
|
}, l.getLoginPage())
|
|
}
|
|
|
|
func (l *LoginPage) getLoginPage() gomponents.Group {
|
|
return []gomponents.Node{
|
|
P(
|
|
A(
|
|
Href(user.OpenIdConnectPath),
|
|
Button(
|
|
Class(components.ButtonClass()),
|
|
Type("button"),
|
|
gomponents.Text("Login"),
|
|
),
|
|
),
|
|
),
|
|
P(
|
|
A(
|
|
Href(google.GoogleLogin),
|
|
Button(
|
|
Class(components.ButtonClass()),
|
|
Type("button"),
|
|
gomponents.Text("Google Login"),
|
|
),
|
|
),
|
|
),
|
|
}
|
|
}
|