aboutsummaryrefslogtreecommitdiff
path: root/src/client/elm/View/LoggedIn/Monthly.elm
diff options
context:
space:
mode:
Diffstat (limited to 'src/client/elm/View/LoggedIn/Monthly.elm')
-rw-r--r--src/client/elm/View/LoggedIn/Monthly.elm43
1 files changed, 21 insertions, 22 deletions
diff --git a/src/client/elm/View/LoggedIn/Monthly.elm b/src/client/elm/View/LoggedIn/Monthly.elm
index a274015..2c11993 100644
--- a/src/client/elm/View/LoggedIn/Monthly.elm
+++ b/src/client/elm/View/LoggedIn/Monthly.elm
@@ -3,29 +3,28 @@ module View.LoggedIn.Monthly
) where
import String
+import Signal exposing (Address)
import Html exposing (..)
import Html.Attributes exposing (..)
import Html.Events exposing (..)
-import Update exposing (..)
-import Update.LoggedIn exposing (..)
-import Update.LoggedIn.Monthly exposing (..)
-
import Model exposing (Model)
-import Model.View.LoggedIn.Monthly exposing (Monthly)
import Model.Payment exposing (Payments, Payment)
-import Model.View.LoggedInView exposing (LoggedInView)
import Model.Translations exposing (getMessage, getParamMessage)
-
-import ServerCommunication as SC exposing (serverCommunications)
+import Model.Action exposing (..)
+import Model.Action.LoggedInAction exposing (..)
+import Model.Action.MonthlyAction exposing (..)
+import Model.Communication as Communication
+import Model.View.LoggedIn.Monthly exposing (Monthly)
+import Model.View.LoggedInView exposing (LoggedInView)
import View.Icon exposing (renderIcon)
import View.Expand exposing (..)
import View.Price exposing (price)
-monthlyPayments : Model -> LoggedInView -> Html
-monthlyPayments model loggedInView =
+monthlyPayments : Address Action -> Model -> LoggedInView -> Html
+monthlyPayments address model loggedInView =
let monthly = loggedInView.monthly
in if List.length monthly.payments == 0
then
@@ -37,40 +36,40 @@ monthlyPayments model loggedInView =
, ("detail", monthly.visibleDetail)
]
]
- [ monthlyCount model monthly
- , if monthly.visibleDetail then paymentsTable model loggedInView monthly else text ""
+ [ monthlyCount address model monthly
+ , if monthly.visibleDetail then paymentsTable address model loggedInView monthly else text ""
]
-monthlyCount : Model -> Monthly -> Html
-monthlyCount model monthly =
+monthlyCount : Address Action -> Model -> Monthly -> Html
+monthlyCount address model monthly =
let count = List.length monthly.payments
total = List.sum << List.map .cost <| monthly.payments
key = if count > 1 then "PluralMonthlyCount" else "SingularMonthlyCount"
in button
[ class "header"
- , onClick actions.address (UpdateLoggedIn << UpdateMonthly <| ToggleDetail)
+ , onClick address (UpdateLoggedIn << UpdateMonthly <| ToggleDetail)
]
[ text (getParamMessage [toString count, price model total] key model.translations)
, expand ExpandDown monthly.visibleDetail
]
-paymentsTable : Model -> LoggedInView -> Monthly -> Html
-paymentsTable model loggedInView monthly =
+paymentsTable : Address Action -> Model -> LoggedInView -> Monthly -> Html
+paymentsTable address model loggedInView monthly =
div
[ class "table" ]
( monthly.payments
|> List.sortBy (String.toLower << .name)
- |> List.map (paymentLine model loggedInView)
+ |> List.map (paymentLine address model loggedInView)
)
-paymentLine : Model -> LoggedInView -> Payment -> Html
-paymentLine model loggedInView payment =
+paymentLine : Address Action -> Model -> LoggedInView -> Payment -> Html
+paymentLine address model loggedInView payment =
a
[ classList
[ ("row", True)
, ("edition", loggedInView.paymentEdition == Just payment.id)
]
- , onClick actions.address (UpdateLoggedIn (ToggleEdit payment.id))
+ , onClick address (UpdateLoggedIn (ToggleEdit payment.id))
]
[ div [ class "cell category" ] [ text (payment.name) ]
, div
@@ -82,7 +81,7 @@ paymentLine model loggedInView payment =
[ text (price model payment.cost) ]
, div
[ class "cell delete"
- , onClick serverCommunications.address (SC.DeleteMonthlyPayment payment.id)
+ , onClick address (ServerCommunication <| Communication.DeleteMonthlyPayment payment.id)
]
[ button [] [ renderIcon "times" ]
]