{-# LANGUAGE RecordWildCards, OverloadedStrings, QuasiQuotes #-}
module Clckwrks.Authenticate.Page.AuthModes where
import Clckwrks.Acid (GetEnableOpenId(..), SetEnableOpenId(..))
import Clckwrks.Admin.Template (template)
import Clckwrks.Authenticate.URL (AuthURL(..))
import Clckwrks.Monad
import Clckwrks.URL (ClckURL)
import Control.Lens ((.~), (&))
import Data.Maybe (maybe, fromMaybe)
import Data.Text.Lazy (Text)
import qualified Data.Text as T
import Happstack.Server (Response, ServerPartT, ok, toResponse)
import HSP.XMLGenerator
import HSP.XML (fromStringLit)
import Language.Haskell.HSX.QQ (hsx)
import Text.Reform
import Text.Reform.Happstack
import Text.Reform.HSP.Text
import Web.Routes (showURL)
import Web.Routes.Happstack (seeOtherURL)
authModesPage :: AuthURL -> Clck AuthURL Response
authModesPage :: AuthURL -> Clck AuthURL Response
authModesPage AuthURL
here =
do Bool
enableOpenId <- GetEnableOpenId
-> ClckT AuthURL (ServerPartT IO) (EventResult GetEnableOpenId)
forall event (m :: * -> *).
(QueryEvent event, GetAcidState m (EventState event), Functor m,
MonadIO m, MonadState ClckState m) =>
event -> m (EventResult event)
query (GetEnableOpenId
-> ClckT AuthURL (ServerPartT IO) (EventResult GetEnableOpenId))
-> GetEnableOpenId
-> ClckT AuthURL (ServerPartT IO) (EventResult GetEnableOpenId)
forall a b. (a -> b) -> a -> b
$ GetEnableOpenId
GetEnableOpenId
Text
action <- URL (ClckT AuthURL (ServerPartT IO))
-> ClckT AuthURL (ServerPartT IO) Text
forall (m :: * -> *). MonadRoute m => URL m -> m Text
showURL URL (ClckT AuthURL (ServerPartT IO))
AuthURL
here
String
-> ()
-> GenChildList (ClckT AuthURL (ServerPartT IO))
-> Clck AuthURL Response
forall (m :: * -> *) url headers body.
(Happstack m, EmbedAsChild (ClckT url m) headers,
EmbedAsChild (ClckT url m) body) =>
String -> headers -> body -> ClckT url m Response
template String
"Authentication Modes" () (GenChildList (ClckT AuthURL (ServerPartT IO))
-> Clck AuthURL Response)
-> GenChildList (ClckT AuthURL (ServerPartT IO))
-> Clck AuthURL Response
forall a b. (a -> b) -> a -> b
$
[hsx|
<%>
<% reform (form action) "am" updateAuthModes Nothing (authModesForm enableOpenId) %>
</%>
|]
where
updateAuthModes :: Bool -> Clck AuthURL Response
updateAuthModes :: Bool -> Clck AuthURL Response
updateAuthModes Bool
b =
do SetEnableOpenId
-> ClckT AuthURL (ServerPartT IO) (EventResult SetEnableOpenId)
forall event (m :: * -> *).
(UpdateEvent event, GetAcidState m (EventState event), Functor m,
MonadIO m, MonadState ClckState m) =>
event -> m (EventResult event)
update (Bool -> SetEnableOpenId
SetEnableOpenId Bool
b)
URL (ClckT AuthURL (ServerPartT IO)) -> Clck AuthURL Response
forall (m :: * -> *).
(MonadRoute m, FilterMonad Response m) =>
URL m -> m Response
seeOtherURL URL (ClckT AuthURL (ServerPartT IO))
AuthURL
here
authModesForm :: Bool -> ClckForm AuthURL Bool
authModesForm :: Bool -> ClckForm AuthURL Bool
authModesForm Bool
b =
Form
(ClckT AuthURL (ServerPartT IO))
[Input]
ClckFormError
[XMLGenT
(ClckT AuthURL (ServerPartT IO))
(XMLType (ClckT AuthURL (ServerPartT IO)))]
()
Bool
-> Form
(ClckT AuthURL (ServerPartT IO))
[Input]
ClckFormError
[XMLGenT
(ClckT AuthURL (ServerPartT IO))
(XMLType (ClckT AuthURL (ServerPartT IO)))]
()
Bool
forall input error proof a.
Form
(ClckT AuthURL (ServerPartT IO))
input
error
[XMLGenT
(ClckT AuthURL (ServerPartT IO))
(XMLType (ClckT AuthURL (ServerPartT IO)))]
proof
a
-> Form
(ClckT AuthURL (ServerPartT IO))
input
error
[XMLGenT
(ClckT AuthURL (ServerPartT IO))
(XMLType (ClckT AuthURL (ServerPartT IO)))]
proof
a
divHorizontal (Form
(ClckT AuthURL (ServerPartT IO))
[Input]
ClckFormError
[XMLGenT
(ClckT AuthURL (ServerPartT IO))
(XMLType (ClckT AuthURL (ServerPartT IO)))]
()
Bool
-> Form
(ClckT AuthURL (ServerPartT IO))
[Input]
ClckFormError
[XMLGenT
(ClckT AuthURL (ServerPartT IO))
(XMLType (ClckT AuthURL (ServerPartT IO)))]
()
Bool)
-> Form
(ClckT AuthURL (ServerPartT IO))
[Input]
ClckFormError
[XMLGenT
(ClckT AuthURL (ServerPartT IO))
(XMLType (ClckT AuthURL (ServerPartT IO)))]
()
Bool
-> Form
(ClckT AuthURL (ServerPartT IO))
[Input]
ClckFormError
[XMLGenT
(ClckT AuthURL (ServerPartT IO))
(XMLType (ClckT AuthURL (ServerPartT IO)))]
()
Bool
forall a b. (a -> b) -> a -> b
$
Form
(ClckT AuthURL (ServerPartT IO))
[Input]
ClckFormError
[XMLGenT
(ClckT AuthURL (ServerPartT IO))
(XMLType (ClckT AuthURL (ServerPartT IO)))]
()
Bool
-> Form
(ClckT AuthURL (ServerPartT IO))
[Input]
ClckFormError
[XMLGenT
(ClckT AuthURL (ServerPartT IO))
(XMLType (ClckT AuthURL (ServerPartT IO)))]
()
Bool
forall (m :: * -> *) (x :: * -> *) c input error proof a.
(Monad m, Functor m, XMLGenerator x, StringType x ~ Text,
EmbedAsChild x c) =>
Form m input error c proof a
-> Form m input error [XMLGenT x (XMLType x)] proof a
fieldset (Form
(ClckT AuthURL (ServerPartT IO))
[Input]
ClckFormError
[XMLGenT
(ClckT AuthURL (ServerPartT IO))
(XMLType (ClckT AuthURL (ServerPartT IO)))]
()
Bool
-> Form
(ClckT AuthURL (ServerPartT IO))
[Input]
ClckFormError
[XMLGenT
(ClckT AuthURL (ServerPartT IO))
(XMLType (ClckT AuthURL (ServerPartT IO)))]
()
Bool)
-> Form
(ClckT AuthURL (ServerPartT IO))
[Input]
ClckFormError
[XMLGenT
(ClckT AuthURL (ServerPartT IO))
(XMLType (ClckT AuthURL (ServerPartT IO)))]
()
Bool
-> Form
(ClckT AuthURL (ServerPartT IO))
[Input]
ClckFormError
[XMLGenT
(ClckT AuthURL (ServerPartT IO))
(XMLType (ClckT AuthURL (ServerPartT IO)))]
()
Bool
forall a b. (a -> b) -> a -> b
$
(Form
(ClckT AuthURL (ServerPartT IO))
[Input]
ClckFormError
[XMLGenT
(ClckT AuthURL (ServerPartT IO))
(XMLType (ClckT AuthURL (ServerPartT IO)))]
()
Bool
-> Form
(ClckT AuthURL (ServerPartT IO))
[Input]
ClckFormError
[XMLGenT
(ClckT AuthURL (ServerPartT IO))
(XMLType (ClckT AuthURL (ServerPartT IO)))]
()
Bool
forall input error proof a.
Form
(ClckT AuthURL (ServerPartT IO))
input
error
[XMLGenT
(ClckT AuthURL (ServerPartT IO))
(XMLType (ClckT AuthURL (ServerPartT IO)))]
proof
a
-> Form
(ClckT AuthURL (ServerPartT IO))
input
error
[XMLGenT
(ClckT AuthURL (ServerPartT IO))
(XMLType (ClckT AuthURL (ServerPartT IO)))]
proof
a
divControlGroup (Form
(ClckT AuthURL (ServerPartT IO))
[Input]
ClckFormError
[XMLGenT
(ClckT AuthURL (ServerPartT IO))
(XMLType (ClckT AuthURL (ServerPartT IO)))]
()
Bool
-> Form
(ClckT AuthURL (ServerPartT IO))
[Input]
ClckFormError
[XMLGenT
(ClckT AuthURL (ServerPartT IO))
(XMLType (ClckT AuthURL (ServerPartT IO)))]
()
Bool)
-> Form
(ClckT AuthURL (ServerPartT IO))
[Input]
ClckFormError
[XMLGenT
(ClckT AuthURL (ServerPartT IO))
(XMLType (ClckT AuthURL (ServerPartT IO)))]
()
Bool
-> Form
(ClckT AuthURL (ServerPartT IO))
[Input]
ClckFormError
[XMLGenT
(ClckT AuthURL (ServerPartT IO))
(XMLType (ClckT AuthURL (ServerPartT IO)))]
()
Bool
forall a b. (a -> b) -> a -> b
$
(Text
-> Form
(ClckT AuthURL (ServerPartT IO))
[Input]
ClckFormError
[XMLGenT
(ClckT AuthURL (ServerPartT IO))
(XMLType (ClckT AuthURL (ServerPartT IO)))]
()
()
forall (m :: * -> *) (x :: * -> *) input error.
(Monad m, XMLGenerator x, StringType x ~ Text,
EmbedAsAttr x (Attr Text FormId), EmbedAsChild x Text) =>
Text -> Form m input error [XMLGenT x (XMLType x)] () ()
labelText Text
"Enable OpenId" Form
(ClckT AuthURL (ServerPartT IO))
[Input]
ClckFormError
[XMLGenT
(ClckT AuthURL (ServerPartT IO))
(XMLType (ClckT AuthURL (ServerPartT IO)))]
()
()
-> [Attr Text Text]
-> Form
(ClckT AuthURL (ServerPartT IO))
[Input]
ClckFormError
[XMLGenT
(ClckT AuthURL (ServerPartT IO))
(XMLType (ClckT AuthURL (ServerPartT IO)))]
()
()
forall (x :: * -> *) attr (m :: * -> *) input error proof a.
(EmbedAsAttr x attr, XMLGenerator x, StringType x ~ Text, Monad m,
Functor m) =>
Form m input error [XMLGenT x (XMLType x)] proof a
-> attr -> Form m input error [XMLGenT x (XMLType x)] proof a
`setAttrs` [(Text
"class"Text -> Text -> Attr Text Text
forall n a. n -> a -> Attr n a
:=Text
"control-label") :: Attr Text Text]) Form
(ClckT AuthURL (ServerPartT IO))
[Input]
ClckFormError
[XMLGenT
(ClckT AuthURL (ServerPartT IO))
(XMLType (ClckT AuthURL (ServerPartT IO)))]
()
()
-> Form
(ClckT AuthURL (ServerPartT IO))
[Input]
ClckFormError
[XMLGenT
(ClckT AuthURL (ServerPartT IO))
(XMLType (ClckT AuthURL (ServerPartT IO)))]
()
Bool
-> Form
(ClckT AuthURL (ServerPartT IO))
[Input]
ClckFormError
[XMLGenT
(ClckT AuthURL (ServerPartT IO))
(XMLType (ClckT AuthURL (ServerPartT IO)))]
()
Bool
forall (m :: * -> *) view input error proof a.
(Monad m, Monoid view) =>
Form m input error view () ()
-> Form m input error view proof a
-> Form m input error view proof a
++>
(Form
(ClckT AuthURL (ServerPartT IO))
[Input]
ClckFormError
[XMLGenT
(ClckT AuthURL (ServerPartT IO))
(XMLType (ClckT AuthURL (ServerPartT IO)))]
()
Bool
-> Form
(ClckT AuthURL (ServerPartT IO))
[Input]
ClckFormError
[XMLGenT
(ClckT AuthURL (ServerPartT IO))
(XMLType (ClckT AuthURL (ServerPartT IO)))]
()
Bool
forall input error proof a.
Form
(ClckT AuthURL (ServerPartT IO))
input
error
[XMLGenT
(ClckT AuthURL (ServerPartT IO))
(XMLType (ClckT AuthURL (ServerPartT IO)))]
proof
a
-> Form
(ClckT AuthURL (ServerPartT IO))
input
error
[XMLGenT
(ClckT AuthURL (ServerPartT IO))
(XMLType (ClckT AuthURL (ServerPartT IO)))]
proof
a
divControls (Bool
-> Form
(ClckT AuthURL (ServerPartT IO))
[Input]
ClckFormError
[XMLGenT
(ClckT AuthURL (ServerPartT IO))
(XMLType (ClckT AuthURL (ServerPartT IO)))]
()
Bool
forall (x :: * -> *) error input (m :: * -> *).
(Monad m, FormInput input, FormError error,
ErrorInputType error ~ input, XMLGenerator x, StringType x ~ Text,
EmbedAsAttr x (Attr Text FormId)) =>
Bool -> Form m input error [XMLGenT x (XMLType x)] () Bool
inputCheckbox Bool
b)))
Form
(ClckT AuthURL (ServerPartT IO))
[Input]
ClckFormError
[XMLGenT
(ClckT AuthURL (ServerPartT IO))
(XMLType (ClckT AuthURL (ServerPartT IO)))]
()
Bool
-> Form
(ClckT AuthURL (ServerPartT IO))
[Input]
ClckFormError
[XMLGenT
(ClckT AuthURL (ServerPartT IO))
(XMLType (ClckT AuthURL (ServerPartT IO)))]
()
(Maybe Text)
-> Form
(ClckT AuthURL (ServerPartT IO))
[Input]
ClckFormError
[XMLGenT
(ClckT AuthURL (ServerPartT IO))
(XMLType (ClckT AuthURL (ServerPartT IO)))]
()
Bool
forall (f :: * -> *) a b. Applicative f => f a -> f b -> f a
<* (Form
(ClckT AuthURL (ServerPartT IO))
[Input]
ClckFormError
[XMLGenT
(ClckT AuthURL (ServerPartT IO))
(XMLType (ClckT AuthURL (ServerPartT IO)))]
()
(Maybe Text)
-> Form
(ClckT AuthURL (ServerPartT IO))
[Input]
ClckFormError
[XMLGenT
(ClckT AuthURL (ServerPartT IO))
(XMLType (ClckT AuthURL (ServerPartT IO)))]
()
(Maybe Text)
forall input error proof a.
Form
(ClckT AuthURL (ServerPartT IO))
input
error
[XMLGenT
(ClckT AuthURL (ServerPartT IO))
(XMLType (ClckT AuthURL (ServerPartT IO)))]
proof
a
-> Form
(ClckT AuthURL (ServerPartT IO))
input
error
[XMLGenT
(ClckT AuthURL (ServerPartT IO))
(XMLType (ClckT AuthURL (ServerPartT IO)))]
proof
a
divControlGroup (Form
(ClckT AuthURL (ServerPartT IO))
[Input]
ClckFormError
[XMLGenT
(ClckT AuthURL (ServerPartT IO))
(XMLType (ClckT AuthURL (ServerPartT IO)))]
()
(Maybe Text)
-> Form
(ClckT AuthURL (ServerPartT IO))
[Input]
ClckFormError
[XMLGenT
(ClckT AuthURL (ServerPartT IO))
(XMLType (ClckT AuthURL (ServerPartT IO)))]
()
(Maybe Text))
-> Form
(ClckT AuthURL (ServerPartT IO))
[Input]
ClckFormError
[XMLGenT
(ClckT AuthURL (ServerPartT IO))
(XMLType (ClckT AuthURL (ServerPartT IO)))]
()
(Maybe Text)
-> Form
(ClckT AuthURL (ServerPartT IO))
[Input]
ClckFormError
[XMLGenT
(ClckT AuthURL (ServerPartT IO))
(XMLType (ClckT AuthURL (ServerPartT IO)))]
()
(Maybe Text)
forall a b. (a -> b) -> a -> b
$ Form
(ClckT AuthURL (ServerPartT IO))
[Input]
ClckFormError
[XMLGenT
(ClckT AuthURL (ServerPartT IO))
(XMLType (ClckT AuthURL (ServerPartT IO)))]
()
(Maybe Text)
-> Form
(ClckT AuthURL (ServerPartT IO))
[Input]
ClckFormError
[XMLGenT
(ClckT AuthURL (ServerPartT IO))
(XMLType (ClckT AuthURL (ServerPartT IO)))]
()
(Maybe Text)
forall input error proof a.
Form
(ClckT AuthURL (ServerPartT IO))
input
error
[XMLGenT
(ClckT AuthURL (ServerPartT IO))
(XMLType (ClckT AuthURL (ServerPartT IO)))]
proof
a
-> Form
(ClckT AuthURL (ServerPartT IO))
input
error
[XMLGenT
(ClckT AuthURL (ServerPartT IO))
(XMLType (ClckT AuthURL (ServerPartT IO)))]
proof
a
divControls (Form
(ClckT AuthURL (ServerPartT IO))
[Input]
ClckFormError
[XMLGenT
(ClckT AuthURL (ServerPartT IO))
(XMLType (ClckT AuthURL (ServerPartT IO)))]
()
(Maybe Text)
-> Form
(ClckT AuthURL (ServerPartT IO))
[Input]
ClckFormError
[XMLGenT
(ClckT AuthURL (ServerPartT IO))
(XMLType (ClckT AuthURL (ServerPartT IO)))]
()
(Maybe Text))
-> Form
(ClckT AuthURL (ServerPartT IO))
[Input]
ClckFormError
[XMLGenT
(ClckT AuthURL (ServerPartT IO))
(XMLType (ClckT AuthURL (ServerPartT IO)))]
()
(Maybe Text)
-> Form
(ClckT AuthURL (ServerPartT IO))
[Input]
ClckFormError
[XMLGenT
(ClckT AuthURL (ServerPartT IO))
(XMLType (ClckT AuthURL (ServerPartT IO)))]
()
(Maybe Text)
forall a b. (a -> b) -> a -> b
$ Text
-> Form
(ClckT AuthURL (ServerPartT IO))
[Input]
ClckFormError
[XMLGenT
(ClckT AuthURL (ServerPartT IO))
(XMLType (ClckT AuthURL (ServerPartT IO)))]
()
(Maybe Text)
forall (m :: * -> *) input error (x :: * -> *).
(Monad m, FormInput input, FormError error,
ErrorInputType error ~ input, XMLGenerator x, StringType x ~ Text,
EmbedAsAttr x (Attr Text FormId),
EmbedAsAttr x (Attr Text Text)) =>
Text -> Form m input error [XMLGenT x (XMLType x)] () (Maybe Text)
inputSubmit Text
"Update" Form
(ClckT AuthURL (ServerPartT IO))
[Input]
ClckFormError
[XMLGenT
(ClckT AuthURL (ServerPartT IO))
(XMLType (ClckT AuthURL (ServerPartT IO)))]
()
(Maybe Text)
-> [Attr Text Text]
-> Form
(ClckT AuthURL (ServerPartT IO))
[Input]
ClckFormError
[XMLGenT
(ClckT AuthURL (ServerPartT IO))
(XMLType (ClckT AuthURL (ServerPartT IO)))]
()
(Maybe Text)
forall (x :: * -> *) attr (m :: * -> *) input error proof a.
(EmbedAsAttr x attr, XMLGenerator x, StringType x ~ Text, Monad m,
Functor m) =>
Form m input error [XMLGenT x (XMLType x)] proof a
-> attr -> Form m input error [XMLGenT x (XMLType x)] proof a
`setAttrs` [(Text
"class" Text -> Text -> Attr Text Text
forall n a. n -> a -> Attr n a
:= Text
"btn") :: Attr Text Text])
where
label' :: Text -> ClckForm AuthURL ()
label' :: Text -> ClckForm AuthURL ()
label' Text
str = (Text
-> Form
(ClckT AuthURL (ServerPartT IO))
[Input]
ClckFormError
[XMLGenT
(ClckT AuthURL (ServerPartT IO))
(XMLType (ClckT AuthURL (ServerPartT IO)))]
()
()
forall (m :: * -> *) (x :: * -> *) input error.
(Monad m, XMLGenerator x, StringType x ~ Text,
EmbedAsAttr x (Attr Text FormId), EmbedAsChild x Text) =>
Text -> Form m input error [XMLGenT x (XMLType x)] () ()
labelText Text
str Form
(ClckT AuthURL (ServerPartT IO))
[Input]
ClckFormError
[XMLGenT
(ClckT AuthURL (ServerPartT IO))
(XMLType (ClckT AuthURL (ServerPartT IO)))]
()
()
-> [Attr Text Text]
-> Form
(ClckT AuthURL (ServerPartT IO))
[Input]
ClckFormError
[XMLGenT
(ClckT AuthURL (ServerPartT IO))
(XMLType (ClckT AuthURL (ServerPartT IO)))]
()
()
forall (x :: * -> *) attr (m :: * -> *) input error proof a.
(EmbedAsAttr x attr, XMLGenerator x, StringType x ~ Text, Monad m,
Functor m) =>
Form m input error [XMLGenT x (XMLType x)] proof a
-> attr -> Form m input error [XMLGenT x (XMLType x)] proof a
`setAttrs` [(Text
"class"Text -> Text -> Attr Text Text
forall n a. n -> a -> Attr n a
:=Text
"control-label") :: Attr Text Text])
divHorizontal :: Form
(ClckT AuthURL (ServerPartT IO))
input
error
[XMLGenT
(ClckT AuthURL (ServerPartT IO))
(XMLType (ClckT AuthURL (ServerPartT IO)))]
proof
a
-> Form
(ClckT AuthURL (ServerPartT IO))
input
error
[XMLGenT
(ClckT AuthURL (ServerPartT IO))
(XMLType (ClckT AuthURL (ServerPartT IO)))]
proof
a
divHorizontal = ([XMLGenT
(ClckT AuthURL (ServerPartT IO))
(XMLType (ClckT AuthURL (ServerPartT IO)))]
-> [XMLGenT
(ClckT AuthURL (ServerPartT IO))
(XMLType (ClckT AuthURL (ServerPartT IO)))])
-> Form
(ClckT AuthURL (ServerPartT IO))
input
error
[XMLGenT
(ClckT AuthURL (ServerPartT IO))
(XMLType (ClckT AuthURL (ServerPartT IO)))]
proof
a
-> Form
(ClckT AuthURL (ServerPartT IO))
input
error
[XMLGenT
(ClckT AuthURL (ServerPartT IO))
(XMLType (ClckT AuthURL (ServerPartT IO)))]
proof
a
forall (m :: * -> *) view view' input error proof a.
(Monad m, Functor m) =>
(view -> view')
-> Form m input error view proof a
-> Form m input error view' proof a
mapView (\[XMLGenT
(ClckT AuthURL (ServerPartT IO))
(XMLType (ClckT AuthURL (ServerPartT IO)))]
xml -> [[hsx|<div class="form-horizontal"><% xml %></div>|]])
divControlGroup :: Form
(ClckT AuthURL (ServerPartT IO))
input
error
[XMLGenT
(ClckT AuthURL (ServerPartT IO))
(XMLType (ClckT AuthURL (ServerPartT IO)))]
proof
a
-> Form
(ClckT AuthURL (ServerPartT IO))
input
error
[XMLGenT
(ClckT AuthURL (ServerPartT IO))
(XMLType (ClckT AuthURL (ServerPartT IO)))]
proof
a
divControlGroup = ([XMLGenT
(ClckT AuthURL (ServerPartT IO))
(XMLType (ClckT AuthURL (ServerPartT IO)))]
-> [XMLGenT
(ClckT AuthURL (ServerPartT IO))
(XMLType (ClckT AuthURL (ServerPartT IO)))])
-> Form
(ClckT AuthURL (ServerPartT IO))
input
error
[XMLGenT
(ClckT AuthURL (ServerPartT IO))
(XMLType (ClckT AuthURL (ServerPartT IO)))]
proof
a
-> Form
(ClckT AuthURL (ServerPartT IO))
input
error
[XMLGenT
(ClckT AuthURL (ServerPartT IO))
(XMLType (ClckT AuthURL (ServerPartT IO)))]
proof
a
forall (m :: * -> *) view view' input error proof a.
(Monad m, Functor m) =>
(view -> view')
-> Form m input error view proof a
-> Form m input error view' proof a
mapView (\[XMLGenT
(ClckT AuthURL (ServerPartT IO))
(XMLType (ClckT AuthURL (ServerPartT IO)))]
xml -> [[hsx|<div class="control-group"><% xml %></div>|]])
divControls :: Form
(ClckT AuthURL (ServerPartT IO))
input
error
[XMLGenT
(ClckT AuthURL (ServerPartT IO))
(XMLType (ClckT AuthURL (ServerPartT IO)))]
proof
a
-> Form
(ClckT AuthURL (ServerPartT IO))
input
error
[XMLGenT
(ClckT AuthURL (ServerPartT IO))
(XMLType (ClckT AuthURL (ServerPartT IO)))]
proof
a
divControls = ([XMLGenT
(ClckT AuthURL (ServerPartT IO))
(XMLType (ClckT AuthURL (ServerPartT IO)))]
-> [XMLGenT
(ClckT AuthURL (ServerPartT IO))
(XMLType (ClckT AuthURL (ServerPartT IO)))])
-> Form
(ClckT AuthURL (ServerPartT IO))
input
error
[XMLGenT
(ClckT AuthURL (ServerPartT IO))
(XMLType (ClckT AuthURL (ServerPartT IO)))]
proof
a
-> Form
(ClckT AuthURL (ServerPartT IO))
input
error
[XMLGenT
(ClckT AuthURL (ServerPartT IO))
(XMLType (ClckT AuthURL (ServerPartT IO)))]
proof
a
forall (m :: * -> *) view view' input error proof a.
(Monad m, Functor m) =>
(view -> view')
-> Form m input error view proof a
-> Form m input error view' proof a
mapView (\[XMLGenT
(ClckT AuthURL (ServerPartT IO))
(XMLType (ClckT AuthURL (ServerPartT IO)))]
xml -> [[hsx|<div class="controls"><% xml %></div>|]])