{-# 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 -> [
<% xml %>
]) divControlGroup = mapView (\xml -> [
<% xml %>
]) divControls = mapView (\xml -> [
<% xml %>
]) unUACCT (Just (UACCT str)) = str unUACCT Nothing = "" toMUACCT :: String -> Either ClckFormError (Maybe UACCT) toMUACCT [] = Right $ Nothing toMUACCT str = Right $ Just (UACCT str)