From dc519ae889ab40fe1723cd601c3e79b73bdd2f51 Mon Sep 17 00:00:00 2001 From: stuebinm Date: Wed, 8 May 2024 23:34:43 +0200 Subject: restructure: split web frontend into several modules --- lib/Server/Frontend/Gtfs.hs | 57 ++++++ lib/Server/Frontend/OnboardUnit.hs | 174 +++++++++++++++++ lib/Server/Frontend/Routes.hs | 145 ++++++++++++++ lib/Server/Frontend/Tickets.hs | 386 +++++++++++++++++++++++++++++++++++++ 4 files changed, 762 insertions(+) create mode 100644 lib/Server/Frontend/Gtfs.hs create mode 100644 lib/Server/Frontend/OnboardUnit.hs create mode 100644 lib/Server/Frontend/Routes.hs create mode 100644 lib/Server/Frontend/Tickets.hs (limited to 'lib/Server/Frontend') diff --git a/lib/Server/Frontend/Gtfs.hs b/lib/Server/Frontend/Gtfs.hs new file mode 100644 index 0000000..bc21ab7 --- /dev/null +++ b/lib/Server/Frontend/Gtfs.hs @@ -0,0 +1,57 @@ +{-# LANGUAGE DataKinds #-} +{-# LANGUAGE LambdaCase #-} +{-# LANGUAGE QuasiQuotes #-} +{-# LANGUAGE RecordWildCards #-} + +module Server.Frontend.Gtfs (getGtfsTripViewR, getGtfsTripsViewR) where + +import Server.Frontend.Routes + +import Data.Functor ((<&>)) +import qualified Data.Map as M +import Data.Text (Text) +import qualified Data.Vector as V +import qualified GTFS +import Text.Blaze.Html (Html) +import Yesod + +getGtfsTripsViewR :: Handler Html +getGtfsTripsViewR = do + GTFS.GTFS{..} <- getYesod <&> getGtfs + defaultLayout $ do + setTitle "List of Trips" + [whamlet| +
_{MsgtripId}: #{tripTripId} +
_{MsgtripHeadsign}: #{mightbe tripHeadsign} +
_{MsgtripShortname}: #{mightbe tripShortName}
+ _{MsgNone}
+ _{MsgError}:
+ Position: ,
+ Accuracy:
+ _{MsgDelay}:
+ _{MsgSequence}:
+
+
+
+
+_{MsgStops}
+
+ $forall GTFS.Stop{..} <- tripStops
+
Dates
+
+ TODO!
+|]
+
+mightbe :: Maybe Text -> Text
+mightbe (Just a) = a
+mightbe Nothing = ""
diff --git a/lib/Server/Frontend/OnboardUnit.hs b/lib/Server/Frontend/OnboardUnit.hs
new file mode 100644
index 0000000..6a8fe6e
--- /dev/null
+++ b/lib/Server/Frontend/OnboardUnit.hs
@@ -0,0 +1,174 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE QuasiQuotes #-}
+{-# LANGUAGE RecordWildCards #-}
+
+module Server.Frontend.OnboardUnit (getOnboardTrackerR) where
+
+import Server.Frontend.Routes
+
+import Data.Functor ((<&>))
+import qualified Data.Map as M
+import Data.Maybe (fromJust)
+import Data.Text (Text)
+import Data.Time (UTCTime (..), getCurrentTime)
+import Data.UUID (UUID)
+import qualified Data.UUID as UUID
+import qualified Data.Vector as V
+import qualified GTFS
+import Persist (EntityField (..), Key (..), Stop (..),
+ Ticket (..))
+import Text.Blaze.Html (Html)
+import Yesod
+
+
+getOnboardTrackerR :: Handler Html
+getOnboardTrackerR = do defaultLayout [whamlet|
+
_{MsgOBU}
+
+
Tracker
+ Token:
+
Status
+
_{MsgLive}
+
_{MsgEstimated}
+