aboutsummaryrefslogtreecommitdiff
path: root/client/src/View/Payment/Table.hs
diff options
context:
space:
mode:
Diffstat (limited to 'client/src/View/Payment/Table.hs')
-rw-r--r--client/src/View/Payment/Table.hs40
1 files changed, 25 insertions, 15 deletions
diff --git a/client/src/View/Payment/Table.hs b/client/src/View/Payment/Table.hs
index 59ac890..f9215bc 100644
--- a/client/src/View/Payment/Table.hs
+++ b/client/src/View/Payment/Table.hs
@@ -12,7 +12,8 @@ import qualified Data.Text as T
import Reflex.Dom (Dynamic, Event, MonadWidget)
import qualified Reflex.Dom as R
-import Common.Model (Category (..), Currency, Payment (..),
+import Common.Model (Category (..), Currency,
+ Frequency (..), Payment (..),
User (..), UserId)
import qualified Common.Model as CM
import qualified Common.Msg as Msg
@@ -30,6 +31,7 @@ data In t = In
, _in_categories :: [Category]
, _in_currency :: Currency
, _in_payments :: [Payment]
+ , _in_frequency :: Frequency
}
data Out t = Out
@@ -42,22 +44,25 @@ view :: forall t m. MonadWidget t m => In t -> m (Out t)
view input = do
table <- Table.view $ Table.In
- { Table._in_headerLabel = headerLabel
+ { Table._in_headerLabel = headerLabel (_in_frequency input)
, Table._in_rows = reverse . L.sortOn _payment_date $ _in_payments input
, Table._in_cell =
cell
(_in_users input)
(_in_categories input)
+ (_in_frequency input)
(_in_currency input)
, Table._in_cloneModal = \payment ->
Form.view $ Form.In
{ Form._in_categories = _in_categories input
, Form._in_operation = Form.Clone payment
+ , Form._in_frequency = _in_frequency input
}
, Table._in_editModal = \payment ->
Form.view $ Form.In
{ Form._in_categories = _in_categories input
, Form._in_operation = Form.Edit payment
+ , Form._in_frequency = _in_frequency input
}
, Table._in_deleteModal = \payment ->
ConfirmDialog.view $ ConfirmDialog.In
@@ -85,22 +90,24 @@ data Header
| DateHeader
deriving (Eq, Show, Bounded, Enum)
-headerLabel :: Header -> Text
-headerLabel NameHeader = Msg.get Msg.Payment_Name
-headerLabel CostHeader = Msg.get Msg.Payment_Cost
-headerLabel UserHeader = Msg.get Msg.Payment_User
-headerLabel CategoryHeader = Msg.get Msg.Payment_Category
-headerLabel DateHeader = Msg.get Msg.Payment_Date
+headerLabel :: Frequency -> Header -> Text
+headerLabel _ NameHeader = Msg.get Msg.Payment_Name
+headerLabel _ CostHeader = Msg.get Msg.Payment_Cost
+headerLabel _ UserHeader = Msg.get Msg.Payment_User
+headerLabel _ CategoryHeader = Msg.get Msg.Payment_Category
+headerLabel Punctual DateHeader = Msg.get Msg.Payment_Date
+headerLabel Monthly DateHeader = ""
cell
:: forall t m. MonadWidget t m
=> [User]
-> [Category]
+ -> Frequency
-> Currency
-> Header
-> Payment
-> m ()
-cell users categories currency header payment =
+cell users categories frequency currency header payment =
case header of
NameHeader ->
R.text $ _payment_name payment
@@ -132,9 +139,12 @@ cell users categories currency header payment =
Maybe.fromMaybe "" (_category_name <$> category)
DateHeader ->
- do
- R.elClass "span" "shortDate" $
- R.text . Format.shortDay . _payment_date $ payment
-
- R.elClass "span" "longDate" $
- R.text . Format.longDay . _payment_date $ payment
+ if frequency == Punctual then
+ do
+ R.elClass "span" "shortDate" $
+ R.text . Format.shortDay . _payment_date $ payment
+
+ R.elClass "span" "longDate" $
+ R.text . Format.longDay . _payment_date $ payment
+ else
+ R.blank