From 4ce4de89a5400b0d8b9cddaa2922901a081fdaaa Mon Sep 17 00:00:00 2001 From: Joris Date: Thu, 23 Jun 2016 23:43:23 +0200 Subject: Use a dialog to add a payment --- src/client/elm/LoggedIn/Update.elm | 56 ++++++++++++++++---------------------- 1 file changed, 24 insertions(+), 32 deletions(-) (limited to 'src/client/elm/LoggedIn/Update.elm') 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 } -- cgit v1.2.3