aboutsummaryrefslogtreecommitdiff
path: root/src/client/elm/LoggedIn/Home/View/Table.elm
diff options
context:
space:
mode:
Diffstat (limited to 'src/client/elm/LoggedIn/Home/View/Table.elm')
-rw-r--r--src/client/elm/LoggedIn/Home/View/Table.elm74
1 files changed, 44 insertions, 30 deletions
diff --git a/src/client/elm/LoggedIn/Home/View/Table.elm b/src/client/elm/LoggedIn/Home/View/Table.elm
index a03faa2..9cd43a7 100644
--- a/src/client/elm/LoggedIn/Home/View/Table.elm
+++ b/src/client/elm/LoggedIn/Home/View/Table.elm
@@ -1,5 +1,5 @@
module LoggedIn.Home.View.Table exposing
- ( paymentsTable
+ ( view
)
import Dict exposing (..)
@@ -26,33 +26,43 @@ import LoggedIn.View.Format as Format
import Model.User exposing (getUserName)
import Model.Payment as Payment exposing (..)
+import Model.Translations exposing (getMessage)
-paymentsTable : LoggedData -> HomeModel.Model -> Payments -> Html Msg
-paymentsTable loggedData homeModel punctualPayments =
- div
- [ class "table" ]
- ( headerLine loggedData :: paymentLines loggedData homeModel punctualPayments)
+view : LoggedData -> HomeModel.Model -> Payments -> Frequency -> Html Msg
+view loggedData homeModel payments frequency =
+ let visiblePayments =
+ payments
+ |> List.drop ((homeModel.currentPage - 1) * perPage)
+ |> List.take perPage
+ in div
+ [ class "table" ]
+ [ div
+ [ class "lines" ]
+ ( headerLine loggedData frequency :: List.map (paymentLine loggedData homeModel frequency) visiblePayments )
+ , if List.isEmpty visiblePayments
+ then
+ div
+ [ class "noPayment" ]
+ [ text <| getMessage "NoPayment" loggedData.translations ]
+ else
+ text ""
+ ]
-headerLine : LoggedData -> Html Msg
-headerLine loggedData =
+headerLine : LoggedData -> Frequency -> Html Msg
+headerLine loggedData frequency =
div
[ class "header" ]
- [ div [ class "cell category" ] [ FontAwesome.shopping_cart Color.white 28 ]
- , div [ class "cell cost" ] [ text loggedData.conf.currency ]
- , div [ class "cell user" ] [ FontAwesome.user Color.white 28 ]
- , div [ class "cell date" ] [ FontAwesome.calendar Color.white 28 ]
+ [ div [ class "cell category" ] [ text <| getMessage "Name" loggedData.translations ]
+ , div [ class "cell cost" ] [ text <| getMessage "Cost" loggedData.translations ]
+ , div [ class "cell user" ] [ text <| getMessage "Payer" loggedData.translations ]
+ , case frequency of
+ Punctual -> div [ class "cell date" ] [ text <| getMessage "Date" loggedData.translations ]
+ Monthly -> text ""
, div [ class "cell" ] []
]
-paymentLines : LoggedData -> HomeModel.Model -> Payments -> List (Html Msg)
-paymentLines loggedData homeModel punctualPayments =
- punctualPayments
- |> List.drop ((homeModel.currentPage - 1) * perPage)
- |> List.take perPage
- |> List.map (paymentLine loggedData homeModel)
-
-paymentLine : LoggedData -> HomeModel.Model -> Payment -> Html Msg
-paymentLine loggedData homeModel payment =
+paymentLine : LoggedData -> HomeModel.Model -> Frequency -> Payment -> Html Msg
+paymentLine loggedData homeModel frequency payment =
a
[ classList
[ ("row", True)
@@ -75,15 +85,19 @@ paymentLine loggedData homeModel payment =
|> Maybe.withDefault "−"
|> text
]
- , div
- [ class "cell date" ]
- [ span
- [ class "shortDate" ]
- [ text (renderShortDate payment.creation loggedData.translations) ]
- , span
- [ class "longDate" ]
- [ text (renderLongDate payment.creation loggedData.translations) ]
- ]
+ , case frequency of
+ Punctual ->
+ div
+ [ class "cell date" ]
+ [ span
+ [ class "shortDate" ]
+ [ text (renderShortDate payment.creation loggedData.translations) ]
+ , span
+ [ class "longDate" ]
+ [ text (renderLongDate payment.creation loggedData.translations) ]
+ ]
+ Monthly ->
+ text ""
, if loggedData.me == payment.userId
then
div