2019-09-08 15:27:38 +00:00
|
|
|
{-# LANGUAGE OverloadedStrings #-}
|
|
|
|
module View.Scaffold where
|
|
|
|
|
2019-09-16 07:44:46 +00:00
|
|
|
import Servant.Links
|
|
|
|
|
2019-09-08 15:27:38 +00:00
|
|
|
import qualified Text.Blaze.Html5 as H
|
2019-10-24 16:05:22 +00:00
|
|
|
import qualified Text.Blaze.Html5.Attributes as HA
|
2019-09-08 15:27:38 +00:00
|
|
|
|
|
|
|
import qualified Data.Text as T
|
|
|
|
|
2019-09-16 07:44:46 +00:00
|
|
|
import Data.String (fromString)
|
|
|
|
|
2019-09-08 15:27:38 +00:00
|
|
|
import Data.Text.I18n
|
|
|
|
|
2019-10-24 16:05:22 +00:00
|
|
|
import Data.Maybe (fromJust, isJust)
|
|
|
|
|
2019-12-26 08:41:31 +00:00
|
|
|
import Data.Version (showVersion)
|
|
|
|
|
2019-10-24 16:05:22 +00:00
|
|
|
import Control.Monad (when)
|
|
|
|
|
2019-12-26 08:41:31 +00:00
|
|
|
import qualified Paths_matebeamter as MyPath (version)
|
|
|
|
|
2019-09-08 15:27:38 +00:00
|
|
|
-- internal imports
|
|
|
|
|
|
|
|
import Types.Page
|
2019-09-16 07:44:46 +00:00
|
|
|
import API
|
2019-10-24 16:05:22 +00:00
|
|
|
import Util
|
2019-09-08 15:27:38 +00:00
|
|
|
|
|
|
|
scaffold
|
|
|
|
:: L10n
|
|
|
|
-> Locale
|
2019-12-20 07:49:06 +00:00
|
|
|
-> T.Text
|
2019-10-24 16:05:22 +00:00
|
|
|
-> Maybe T.Text
|
2019-09-11 04:27:54 +00:00
|
|
|
-> Page H.Html T.Text
|
2019-09-08 15:27:38 +00:00
|
|
|
-> H.Html
|
|
|
|
-> H.Html
|
2019-12-20 07:49:06 +00:00
|
|
|
scaffold l10n locale version mcookie page content = template page $ do
|
2019-12-14 07:34:30 +00:00
|
|
|
H.header $ H.nav $ H.ul $ do
|
2019-12-26 08:41:31 +00:00
|
|
|
H.li $ H.a H.! HA.href ("/" <> fromString (show $ linkURI (userSelectLink Nothing))) $
|
2019-12-14 07:34:30 +00:00
|
|
|
H.toHtml $ translate "Home"
|
|
|
|
maybe
|
|
|
|
(return ())
|
|
|
|
(\uid ->
|
|
|
|
H.li $ H.a H.! HA.href ("/" <>
|
|
|
|
(fromString $ show $ linkURI $ userOverviewLink (read uid) Nothing)) $
|
|
|
|
H.toHtml $ translate "User Page"
|
|
|
|
)
|
|
|
|
(getLogin mcookie)
|
2019-09-08 15:27:38 +00:00
|
|
|
H.hr
|
2019-10-24 16:05:22 +00:00
|
|
|
when (isJust message)
|
|
|
|
(H.div H.! HA.id "message" H.! HA.class_ "message" $
|
|
|
|
H.toHtml (fromJust message)
|
|
|
|
)
|
|
|
|
H.div H.! HA.id "main" H.! HA.role "main" $
|
2019-09-08 15:27:38 +00:00
|
|
|
content
|
2019-12-14 07:34:01 +00:00
|
|
|
H.hr
|
2019-12-15 09:34:38 +00:00
|
|
|
H.footer $ H.form $ do
|
2019-12-14 07:34:01 +00:00
|
|
|
H.button
|
2019-12-26 08:41:31 +00:00
|
|
|
H.! HA.class_ "btn btn-primary"
|
2019-12-14 07:34:01 +00:00
|
|
|
H.! HA.formmethod "get"
|
|
|
|
H.! HA.formaction ("/" <>
|
2019-12-20 07:49:06 +00:00
|
|
|
(fromString $ show $ linkURI $ productGetPriceListLink Nothing))
|
2019-12-14 07:34:01 +00:00
|
|
|
$ H.toHtml $ translate "Price List"
|
2019-12-15 09:34:38 +00:00
|
|
|
maybe
|
|
|
|
(return ())
|
|
|
|
(\_ ->
|
|
|
|
H.button
|
2019-12-26 08:41:31 +00:00
|
|
|
H.! HA.class_ "btn btn-primary"
|
2019-12-15 09:34:38 +00:00
|
|
|
H.! HA.formmethod "get"
|
|
|
|
H.! HA.formaction ("/" <>
|
|
|
|
(fromString $ show $ linkURI $ productGetRefillLink))
|
|
|
|
$ H.toHtml $ translate "Refill stock"
|
|
|
|
)
|
|
|
|
(getLogin mcookie)
|
2019-12-20 07:49:06 +00:00
|
|
|
H.div
|
|
|
|
H.! HA.class_ "backend-version"
|
2019-12-26 08:41:31 +00:00
|
|
|
$ H.toHtml $
|
|
|
|
(translate "Powered by ") <> "matebeamter " <>
|
|
|
|
(fromString $ showVersion MyPath.version) <> " " <>
|
|
|
|
(translate "connected to ") <> "mateamt " <>
|
|
|
|
version
|
2019-10-24 16:05:22 +00:00
|
|
|
where
|
|
|
|
message = lookup "message" =<< fmap parseCookieText mcookie
|
2019-12-14 07:34:01 +00:00
|
|
|
translate = localize l10n locale . gettext
|
|
|
|
getLogin = snd . parseTokenAndUser
|