{-# 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 -> T.Text -> Maybe T.Text -> AuthPage authPage l10n locale mDestination version mcookie = scaffold l10n locale version mcookie (initPage $ translate "Matebeamter" <> " - " <> translate "Authentication" ) $ 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" $ H.button H.! HA.class_ "btn btn-primary" H.! HA.type_ "submit" $ H.toHtml $ translate "Submit" where translate = localize l10n locale . gettext