aboutsummaryrefslogtreecommitdiff
path: root/client/src/View/Payment/Table.hs
diff options
context:
space:
mode:
authorJoris2019-08-07 21:27:59 +0200
committerJoris2019-08-07 21:27:59 +0200
commitfc8be14dd0089eb12b78af7aaaecd8ed57896677 (patch)
tree22bcd64c7ef3f21aa067ca81824f0e0a2ce6b631 /client/src/View/Payment/Table.hs
parentbc81084933f8ec1bfe6c2834defd12243117fdd9 (diff)
downloadbudget-fc8be14dd0089eb12b78af7aaaecd8ed57896677.tar.gz
budget-fc8be14dd0089eb12b78af7aaaecd8ed57896677.tar.bz2
budget-fc8be14dd0089eb12b78af7aaaecd8ed57896677.zip
Update category according to payment in add overlay
Diffstat (limited to 'client/src/View/Payment/Table.hs')
-rw-r--r--client/src/View/Payment/Table.hs57
1 files changed, 41 insertions, 16 deletions
diff --git a/client/src/View/Payment/Table.hs b/client/src/View/Payment/Table.hs
index 6432274..cdc4bb3 100644
--- a/client/src/View/Payment/Table.hs
+++ b/client/src/View/Payment/Table.hs
@@ -26,7 +26,7 @@ import View.Payment.Delete (DeleteIn (..), DeleteOut (..))
import qualified View.Payment.Delete as Delete
import qualified Icon
-import qualified Util.Dom as Dom
+import qualified Util.Dom as DomUtil
data TableIn t = TableIn
{ _tableIn_init :: Init
@@ -57,7 +57,7 @@ widget tableIn = do
(R.switch . R.current . fmap R.leftmost) <$>
(R.simpleList paymentRange (paymentRow init paymentCategories))
- Dom.divClassVisibleIf (null <$> payments) "emptyTableMsg" $
+ DomUtil.divClassVisibleIf (null <$> payments) "emptyTableMsg" $
R.text $ Msg.get Msg.Payment_Empty
return $ TableOut
@@ -79,13 +79,24 @@ getPaymentRange perPage payments currentPage =
. L.sortOn _payment_date
$ payments
-paymentRow :: forall t m. MonadWidget t m => Init -> Dynamic t [PaymentCategory] -> Dynamic t Payment -> m (Event t PaymentId)
+paymentRow
+ :: forall t m. MonadWidget t m
+ => Init
+ -> Dynamic t [PaymentCategory]
+ -> Dynamic t Payment
+ -> m (Event t PaymentId)
paymentRow init paymentCategories payment =
R.divClass "row" $ do
- R.divClass "cell name" . R.dynText . fmap _payment_name $ payment
- R.divClass "cell cost" . R.dynText . fmap (Format.price (_init_currency init) . _payment_cost) $ payment
- let user = flip fmap payment $ \p -> CM.findUser (_payment_user p) (_init_users init)
+ R.divClass "cell name" $
+ R.dynText $ fmap _payment_name payment
+
+ R.divClass "cell cost" $
+ R.dynText $ fmap (Format.price (_init_currency init) . _payment_cost) payment
+
+ let user = R.ffor payment (\p ->
+ CM.findUser (_payment_user p) (_init_users init))
+
R.divClass "cell user" $
R.dynText $ flip fmap user $ \mbUser -> case mbUser of
Just u -> _user_name u
@@ -95,13 +106,16 @@ paymentRow init paymentCategories payment =
p <- payment
pcs <- paymentCategories
return $ findCategory (_init_categories init) pcs (_payment_name p)
+
R.divClass "cell category" $ do
+
let attrs = flip fmap category $ \maybeCategory -> case maybeCategory of
Just c -> M.fromList
[ ("class", "tag")
, ("style", T.concat [ "background-color: ", _category_color c ])
]
Nothing -> M.singleton "display" "none"
+
R.elDynAttr "span" attrs $
R.dynText $ flip fmap category $ \mbCategory -> case mbCategory of
Just c -> _category_name c
@@ -110,15 +124,26 @@ paymentRow init paymentCategories payment =
R.divClass "cell date" $ do
R.elClass "span" "shortDate" . R.dynText . fmap (Format.shortDay . _payment_date) $ payment
R.elClass "span" "longDate" . R.dynText . fmap (Format.longDay . _payment_date) $ payment
- R.divClass "cell button" . R.el "button" $ Icon.clone
- let modifyAttrs = flip fmap payment $ \p ->
- M.fromList [("class", "cell button"), ("display", if _payment_user p == _init_currentUser init then "block" else "none")]
- R.elDynAttr "div" modifyAttrs $
- R.el "button" $ Icon.edit
- deletePayment <- R.elDynAttr "div" modifyAttrs $
- _buttonOut_clic <$> (Component.button $
- (Component.defaultButtonIn Icon.delete)
- { _buttonIn_class = R.constDyn "deletePayment" })
+
+ R.divClass "cell button" $
+ R.el "button" Icon.clone
+
+ let isFromCurrentUser =
+ R.ffor
+ payment
+ (\p -> _payment_user p == _init_currentUser init)
+
+ R.divClass "cell button" $
+ DomUtil.divVisibleIf isFromCurrentUser $
+ R.el "button" Icon.edit
+
+ deletePayment <-
+ R.divClass "cell button" $
+ DomUtil.divVisibleIf isFromCurrentUser $
+ _buttonOut_clic <$> (Component.button $
+ (Component.defaultButtonIn Icon.delete)
+ { _buttonIn_class = R.constDyn "deletePayment" })
+
rec
modalOut <- Component.modal $ ModalIn
{ _modalIn_show = deletePayment
@@ -133,6 +158,6 @@ paymentRow init paymentCategories payment =
findCategory :: [Category] -> [PaymentCategory] -> Text -> Maybe Category
findCategory categories paymentCategories paymentName = do
paymentCategory <- L.find
- ((== (T.unaccent . T.toLower) paymentName) . _paymentCategory_name)
+ ((== T.formatSearch paymentName) . _paymentCategory_name)
paymentCategories
L.find ((== (_paymentCategory_category paymentCategory)) . _category_id) categories