module Clckwrks.IrcBot.Page.Reconnect where
import Control.Applicative ((<$>), (<*))
import Control.Monad.Reader (ask)
import Control.Monad.Trans (liftIO)
import Clckwrks (update, seeOtherURL)
import Clckwrks.Admin.Template (template)
import Clckwrks.IrcBot.Monad (IrcBotM(..), IrcBotForm, IrcBotConfig(..))
import Clckwrks.IrcBot.URL (IrcBotURL)
import Data.Map (Map)
import qualified Data.Map as Map
import Data.Text.Lazy (pack)
import Happstack.Server (Response, ok, setResponseCode, toResponse)
import HSP.XML
import HSP.XMLGenerator
import Text.Reform ((++>))
import Text.Reform.Happstack (reform)
import Text.Reform.HSP.String (inputSubmit, form)
import Web.Routes (showURL)
ircReconnectPage :: IrcBotURL -> IrcBotM Response
ircReconnectPage here =
do action <- showURL here
template "Force Reconnect" () $
<%>
<% reform (form action) (pack "ir") forceReconnect Nothing forceReconnectForm %>
</%>
where
forceReconnect :: Maybe String -> IrcBotM Response
forceReconnect _ =
do fr <- ircReconnect <$> ask
liftIO $ putStrLn "attempting reconnect"
liftIO $ fr
template "forced reconnect" () $
<p>forced bot to reconnect</p>
forceReconnectForm :: IrcBotForm (Maybe String)
forceReconnectForm =
inputSubmit "Force Reconnect"