{-# OPTIONS_GHC -F -pgmFhsx2hs #-} 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" () $

forced bot to reconnect

forceReconnectForm :: IrcBotForm (Maybe String) forceReconnectForm = inputSubmit "Force Reconnect"