76 lines
2 KiB
Haskell
76 lines
2 KiB
Haskell
|
{-# LANGUAGE PackageImports #-}
|
||
|
{-# LANGUAGE OverloadedStrings #-}
|
||
|
module View.Buy where
|
||
|
|
||
|
import Servant.Links
|
||
|
|
||
|
import qualified Text.Blaze.Html5 as H
|
||
|
import qualified Text.Blaze.Html5.Attributes as HA
|
||
|
|
||
|
import qualified Data.Text as T
|
||
|
|
||
|
import Data.String (fromString)
|
||
|
|
||
|
import Data.Text.I18n
|
||
|
|
||
|
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
|
||
|
|
||
|
buyProductsForm
|
||
|
:: L10n
|
||
|
-> Locale
|
||
|
-> [MT.ProductShortOverview]
|
||
|
-> H.Html
|
||
|
buyProductsForm l10n locale prods = do
|
||
|
mapM_ (\(MT.ProductShortOverview pid ident price amount ml maid) ->
|
||
|
H.div $ do
|
||
|
H.div
|
||
|
H.! HA.class_ "form-group optional"
|
||
|
H.!?
|
||
|
( isJust maid
|
||
|
, productBgStyle (fromString $ show $ fromJust maid)
|
||
|
)
|
||
|
$ do
|
||
|
H.label
|
||
|
H.! HA.for ("product-select-" <> fromString (show pid)) $
|
||
|
H.toHtml ident
|
||
|
H.input
|
||
|
H.! HA.id ("product-select-" <> fromString (show pid))
|
||
|
H.! HA.class_ "form-control product-select"
|
||
|
H.! HA.name ("productSelect-" <> fromString (show pid))
|
||
|
H.! HA.type_ "checkbox"
|
||
|
H.! HA.value "true"
|
||
|
H.div
|
||
|
H.! HA.class_ "form-group optional"
|
||
|
$ do
|
||
|
H.label
|
||
|
H.! HA.for ("product-amount-" <> fromString (show pid)) $
|
||
|
H.toHtml (translate "Amount")
|
||
|
H.input
|
||
|
H.! HA.id ("product-amount-" <> fromString (show pid))
|
||
|
H.! HA.class_ "form-control product-amount"
|
||
|
H.! HA.name ("productAmount-" <> fromString (show pid))
|
||
|
H.! HA.type_ "number"
|
||
|
H.! HA.min "0"
|
||
|
H.! HA.step "1"
|
||
|
H.! HA.value "1"
|
||
|
)
|
||
|
prods
|
||
|
H.div H.! HA.class_ "form-group optional" $
|
||
|
H.button
|
||
|
H.! HA.class_ "btn btn-default"
|
||
|
H.! HA.type_ "submit"
|
||
|
$ H.toHtml $ translate "Buy"
|
||
|
where
|
||
|
translate = localize l10n locale . gettext
|