76 lines
2.1 KiB
Haskell
76 lines
2.1 KiB
Haskell
{-# LANGUAGE OverloadedStrings #-}
|
|
{-# LANGUAGE PackageImports #-}
|
|
module View.Auth where
|
|
|
|
import Servant.Links (linkURI)
|
|
|
|
import qualified Text.Blaze.Html5 as H
|
|
import qualified Text.Blaze.Html5.Attributes as HA
|
|
|
|
import qualified Data.Text as T
|
|
|
|
import Data.Text.I18n
|
|
|
|
import Data.String
|
|
|
|
-- imports from mateamt
|
|
|
|
import qualified "mateamt" Types.Auth as MT
|
|
|
|
-- internal imports
|
|
|
|
import Types
|
|
import API
|
|
import View.Scaffold
|
|
|
|
authPage
|
|
:: L10n
|
|
-> Locale
|
|
-> Maybe T.Text
|
|
-> AuthPage
|
|
authPage l10n locale mDestination = scaffold
|
|
l10n
|
|
locale
|
|
(initPage $
|
|
translate "Matebeamter" <>
|
|
" - " <>
|
|
translate "Authentication"
|
|
)
|
|
$ do
|
|
H.p $ H.form
|
|
H.! HA.method "post"
|
|
H.! HA.action ("/" <> (fromString $ show $ linkURI $
|
|
authPostLink mDestination))
|
|
H.! HA.enctype "application/x-www-form-urlencoded" $ do
|
|
H.div H.! HA.class_ "form-group required" $ do
|
|
H.label H.! HA.for "method" $ H.toHtml $
|
|
translate "Authentication Method"
|
|
H.select
|
|
H.! HA.id "method"
|
|
H.! HA.class_ "form-control"
|
|
H.! HA.name "authReturnMethod"
|
|
H.! HA.required ""
|
|
H.! HA.value (fromString $ show $ fromEnum MT.SecondaryPass) $ do
|
|
H.option H.!
|
|
HA.value (fromString $ show $ fromEnum MT.SecondaryPass) $
|
|
H.toHtml $ translate "Secondary Password"
|
|
H.option H.!
|
|
HA.value (fromString $ show $ fromEnum MT.PrimaryPass) $
|
|
H.toHtml $ translate "Primary Password"
|
|
H.div H.! HA.class_ "form-group required" $ do
|
|
H.label H.! HA.for "password" $ H.toHtml $
|
|
translate "Password"
|
|
H.input
|
|
H.! HA.id "password"
|
|
H.! HA.class_ "form_control"
|
|
H.! HA.name "authReturnPass"
|
|
H.! HA.type_ "password"
|
|
H.! HA.required ""
|
|
H.! HA.value ""
|
|
H.div H.! HA.class_ "form-group optional" $ do
|
|
H.button
|
|
H.! HA.class_ "btn btn-default"
|
|
H.! HA.type_ "submit"
|
|
$ H.toHtml $ translate "Submit"
|
|
where
|
|
translate = localize l10n locale . gettext
|