aboutsummaryrefslogtreecommitdiff
path: root/src/client/elm/LoggedIn/Update.elm
diff options
context:
space:
mode:
authorJoris2016-06-23 23:43:23 +0200
committerJoris2016-06-23 23:43:23 +0200
commit4ce4de89a5400b0d8b9cddaa2922901a081fdaaa (patch)
treeb65e9ef809c2ec7608101563eb3378eaeeddf12b /src/client/elm/LoggedIn/Update.elm
parent36a90770ebeb9bd99e136bfe035fdda5dfabc304 (diff)
downloadbudget-4ce4de89a5400b0d8b9cddaa2922901a081fdaaa.tar.gz
budget-4ce4de89a5400b0d8b9cddaa2922901a081fdaaa.tar.bz2
budget-4ce4de89a5400b0d8b9cddaa2922901a081fdaaa.zip
Use a dialog to add a payment
Diffstat (limited to 'src/client/elm/LoggedIn/Update.elm')
-rw-r--r--src/client/elm/LoggedIn/Update.elm56
1 files changed, 24 insertions, 32 deletions
diff --git a/src/client/elm/LoggedIn/Update.elm b/src/client/elm/LoggedIn/Update.elm
index 7133786..4fddc2c 100644
--- a/src/client/elm/LoggedIn/Update.elm
+++ b/src/client/elm/LoggedIn/Update.elm
@@ -10,6 +10,8 @@ import Http exposing (Error(..))
import Date exposing (Date)
import Platform.Cmd exposing (Cmd)
+import Form
+
import Model exposing (Model)
import Model.Translations exposing (getMessage)
import Model.Payment exposing (Payment, Frequency(..), deletePayment)
@@ -22,13 +24,11 @@ import LoggedIn.Model as LoggedInModel
import LoggedIn.Home.Msg as HomeMsg
import LoggedIn.Home.Update as HomeUpdate
+import LoggedIn.Home.Model as HomeModel
import LoggedIn.Income.Msg as IncomeMsg
import LoggedIn.Income.Update as IncomeUpdate
-import LoggedIn.Home.AddPayment.Msg as AddPaymentMsg
-import LoggedIn.Home.AddPayment.Update as AddPaymentUpdate
-
import LoggedIn.Income.Model as IncomeModel
import Utils.Tuple as Tuple
@@ -40,7 +40,9 @@ update model msg loggedIn =
in case msg of
LoggedInMsg.NoOp ->
- (loggedIn, Cmd.none)
+ ( loggedIn
+ , Cmd.none
+ )
LoggedInMsg.HomeMsg homeMsg ->
case HomeUpdate.update loggedData homeMsg loggedIn.home of
@@ -57,37 +59,27 @@ update model msg loggedIn =
)
LoggedInMsg.AddPayment name cost frequency ->
- update model (LoggedInMsg.HomeMsg <| HomeMsg.UpdateAdd <| AddPaymentMsg.WaitingServer) loggedIn
- :> \loggedIn ->
- Server.addPayment name cost frequency
- |> Task.perform
- (\err ->
- case err of
- BadResponse 400 jsonErr ->
- case AddPaymentUpdate.addPaymentError model.translations jsonErr of
- Just addPaymentMsg -> (LoggedInMsg.HomeMsg <| HomeMsg.UpdateAdd addPaymentMsg)
- Nothing -> LoggedInMsg.NoOp
- _ ->
- LoggedInMsg.NoOp
- )
- (\paymentId ->
- case String.toInt cost of
- Err _ ->
- LoggedInMsg.HomeMsg <| HomeMsg.UpdateAdd (AddPaymentMsg.AddError Nothing (Just (getMessage "CostRequired" loggedData.translations)))
- Ok costNumber ->
- LoggedInMsg.ValidateAddPayment paymentId name costNumber frequency
- )
- |> \cmd -> (loggedIn, cmd)
+ Server.addPayment name cost frequency
+ |> Task.perform
+ (\err ->
+ case err of
+ BadResponse 400 jsonErr ->
+ LoggedInMsg.NoOp
+ _ ->
+ LoggedInMsg.NoOp
+ )
+ (\paymentId -> LoggedInMsg.ValidateAddPayment paymentId name cost frequency)
+ |> \cmd -> (loggedIn, cmd)
LoggedInMsg.ValidateAddPayment paymentId name cost frequency ->
- update model (LoggedInMsg.HomeMsg <| HomeMsg.UpdateAdd <| AddPaymentMsg.Init frequency) loggedIn
+ update model (LoggedInMsg.HomeMsg <| HomeMsg.AddPaymentMsg (Form.Reset HomeModel.addPaymentInitial)) loggedIn
:> (\loggedIn ->
- case frequency of
- Punctual ->
- update model (LoggedInMsg.HomeMsg <| HomeMsg.UpdatePage 1) loggedIn
- Monthly ->
- update model (LoggedInMsg.HomeMsg <| HomeMsg.ShowMonthlyDetail) loggedIn
- )
+ case frequency of
+ Punctual ->
+ update model (LoggedInMsg.HomeMsg <| HomeMsg.UpdatePage 1) loggedIn
+ Monthly ->
+ update model (LoggedInMsg.HomeMsg <| HomeMsg.ShowMonthlyDetail) loggedIn
+ )
:> (\loggedIn ->
let newPayment = Payment paymentId (Date.fromTime model.currentTime) name cost loggedIn.me frequency
in ( { loggedIn | payments = newPayment :: loggedIn.payments }