summaryrefslogtreecommitdiff
path: root/src/Pages.hs
diff options
context:
space:
mode:
Diffstat (limited to 'src/Pages.hs')
-rw-r--r--src/Pages.hs50
1 files changed, 44 insertions, 6 deletions
diff --git a/src/Pages.hs b/src/Pages.hs
index 4efd8fe..4e85cae 100644
--- a/src/Pages.hs
+++ b/src/Pages.hs
@@ -2,11 +2,7 @@
{-# LANGUAGE NoFieldSelectors #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TemplateHaskell #-}
-module Pages (
- renderPageLog, LogData(..),
- renderPageCalendarDay, CalendarDayData(..),
- PickerData(..), EventData(..),
-) where
+module Pages where
import Control.Monad.IO.Class (liftIO)
import Data.Text (Text)
@@ -18,6 +14,46 @@ import Text.Mustache.Compile qualified as M
import Pages.TH
+data IndexData = IndexData
+ { networks :: [IndexNetworkData] }
+
+data IndexNetworkData = IndexNetworkData
+ { name :: Text
+ , channels :: [IndexChannelData] }
+
+data IndexChannelData = IndexChannelData
+ { name :: Text
+ , alias :: Text }
+
+data CalendarData = CalendarData
+ { network :: Text
+ , channel :: Text
+ , alias :: Text
+ , years :: [CalendarYearData]
+ }
+
+data CalendarYearData = CalendarYearData
+ { year :: Int
+ , monrows :: [CalendarMonthRowData] }
+
+data CalendarMonthRowData = CalendarMonthRowData
+ { months :: [CalendarMonthData] }
+
+data CalendarMonthData = CalendarMonthData
+ { display :: Bool
+ , month :: Int
+ , month00 :: Text
+ , monthname :: Text
+ , weeks :: [CalendarWeekData]
+ , phantomweek :: Bool }
+
+data CalendarWeekData = CalendarWeekData
+ { days :: [CalendarDayData'] }
+
+data CalendarDayData' = CalendarDayData'
+ { date :: Maybe Int
+ , date00 :: Text }
+
data LogData = LogData
{ network :: Text
, channel :: Text
@@ -68,4 +104,6 @@ $(do let readTemplate name = do
Left err -> fail $ "Reading " ++ path ++ ": " ++ show err
concat <$> mapM (\(name, ty) -> (`makeRender` ty) =<< readTemplate name)
[("log", ''LogData)
- ,("calendar-day", ''CalendarDayData)])
+ ,("calendar-day", ''CalendarDayData)
+ ,("index", ''IndexData)
+ ,("calendar", ''CalendarData)])