clckwrks-0.16.2: Clckwrks/Admin/EditSettings.hs
{-# LANGUAGE RecordWildCards #-}
{-# OPTIONS_GHC -F -pgmFtrhsx #-}
module Clckwrks.Admin.EditSettings where
import Clckwrks
import Clckwrks.Acid (GetUACCT(..), SetUACCT(..))
import Clckwrks.Admin.Template (template)
-- import Clckwrks.Page.Acid (GetUACCT(..), SetUACCT(..))
import HSP.Google.Analytics (UACCT(..))
import Text.Reform
import Text.Reform.Happstack
import Text.Reform.HSP.String
editSettings :: ClckURL -> Clck ClckURL Response
editSettings here =
do muacct <- query $ GetUACCT
action <- showURL here
template "Edit Settings" () $
<%>
<% reform (form action) "ss" updateSettings Nothing (editSettingsForm muacct) %>
</%>
where
updateSettings :: Maybe UACCT -> Clck ClckURL Response
updateSettings muacct =
do update (SetUACCT muacct)
seeOtherURL (Admin Console)
editSettingsForm :: Maybe UACCT -> ClckForm ClckURL (Maybe UACCT)
editSettingsForm muacct =
divHorizontal $
fieldset $
(divControlGroup $
(label "Google Analytics UACCT" `setAttrs` [("class":="control-label")]) ++>
(divControls (inputText (unUACCT muacct)) `transformEither` toMUACCT)) <*
(divControlGroup $ divControls $ inputSubmit "Update" `setAttrs` [("class" := "btn")])
where
divHorizontal = mapView (\xml -> [<div class="form-horizontal"><% xml %></div>])
divControlGroup = mapView (\xml -> [<div class="control-group"><% xml %></div>])
divControls = mapView (\xml -> [<div class="controls"><% xml %></div>])
unUACCT (Just (UACCT str)) = str
unUACCT Nothing = ""
toMUACCT :: String -> Either ClckFormError (Maybe UACCT)
toMUACCT [] = Right $ Nothing
toMUACCT str = Right $ Just (UACCT str)