{-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE PackageImports #-} module View.User where import Servant.Links import qualified Text.Blaze.Html5 as H hiding (style) import qualified Text.Blaze.Html5.Attributes as H import Data.Text.I18n import Data.String (fromString) import Data.Maybe (isJust, fromJust) -- imports from mateamt import qualified "mateamt" Types as MT -- internal imports import Util import Types import View.Scaffold import API userSelectPage :: L10n -> Locale -> [MT.UserSummary] -> UserSelectPage userSelectPage l10n locale uss = scaffold l10n locale (initPage $ (translate "Matebeamter") <> " - " <> (translate "Home") ) $ do mapM_ (\(MT.UserSummary uid ident _) -> do H.a H.! H.href (fromString $ show $ linkURI $ userOverviewLink uid) $ H.toHtml ident ) uss H.a H.! H.href ("#") $ H.toHtml $ translate "New user" where translate = localize l10n locale . gettext userOverviewPage :: L10n -> Locale -> MT.UserDetails -> [MT.ProductShortOverview] -> UserOverviewPage userOverviewPage l10n locale ud pos = scaffold l10n locale (initPage $ (localize l10n locale $ gettext "Matebeamter") <> " - " <> (localize l10n locale $ gettext "User Menu for ") <> (MT.userDetailsIdent ud) ) $ do H.p $ H.toHtml $ (translate "Welcome back, ") <> (MT.userDetailsIdent ud) <> "!" H.p H.!? (MT.userDetailsBalance ud < 0, H.class_ "debt") $ H.toHtml $ (translate "Your current balance is") <> ": " <> (formatMoney $ MT.userDetailsBalance ud) -- TODO: Add currency symbol H.ul H.! H.class_ "product_list" $ mapM_ (\(MT.ProductShortOverview pid ident _ _ _ avatarid) -> do H.li H.! H.class_ "product" H.!? (isJust avatarid , productBgStyle (fromString $ show $ fromJust avatarid) ) $ H.a H.! H.href ("#" <> fromString (show pid)) $ H.toHtml ident ) pos where translate = localize l10n locale . gettext productBgStyle aid = H.style $ mconcat [ "background-image: url(#" <> aid <> ");" -- FILLME , "backgronud-color: blue;" , "text-shadow:" , " -1px 0 1px black," , " 0 1px 1px black," , " 1px 0 1px black," , " 0 -1px 1px black;" ]