{-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE FlexibleContexts #-} module Villefort.New (makeNewPage) where import Control.Monad.Reader (MonadReader,MonadIO,liftIO) import Villefort.Definitions (VConfig(..)) import System.IO.Strict as S (readFile) import Paths_Villefort (getDataFileName) import Data.List.Split (splitOn) import Villefort.Database (getSubjects) -- | make add new pages makeNewPage :: (MonadReader VConfig m, MonadIO m) => m String makeNewPage = do headerPath <-liftIO $ getDataFileName "templates/header" htmlHeader <- liftIO $ S.readFile headerPath addPath <- liftIO $ getDataFileName "templates/add.html" add <- liftIO $ S.readFile addPath let splitWeeks = splitOn "?" add subjects <- getSubjects let radiobuttons = map makeRadio subjects return (htmlHeader ++ (splitWeeks !! 0) ++ (concat radiobuttons) ++ (splitWeeks !! 1)) -- | makes html for radiobutton makeRadio :: String -> String makeRadio x = "
" ++ x ++ "
\n"