aboutsummaryrefslogtreecommitdiff
path: root/src/client/elm/LoggedIn/Update.elm
diff options
context:
space:
mode:
Diffstat (limited to 'src/client/elm/LoggedIn/Update.elm')
-rw-r--r--src/client/elm/LoggedIn/Update.elm61
1 files changed, 38 insertions, 23 deletions
diff --git a/src/client/elm/LoggedIn/Update.elm b/src/client/elm/LoggedIn/Update.elm
index 4fddc2c..48d87f7 100644
--- a/src/client/elm/LoggedIn/Update.elm
+++ b/src/client/elm/LoggedIn/Update.elm
@@ -14,7 +14,7 @@ import Form
import Model exposing (Model)
import Model.Translations exposing (getMessage)
-import Model.Payment exposing (Payment, Frequency(..), deletePayment)
+import Model.Payment as Payment exposing (Payment, Frequency(..), deletePayment)
import Server
import LoggedData
@@ -59,27 +59,23 @@ update model msg loggedIn =
)
LoggedInMsg.AddPayment name cost frequency ->
- 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)
+ ( loggedIn
+ , 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)
+ )
LoggedInMsg.ValidateAddPayment paymentId name cost frequency ->
- 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
- )
+ update model (LoggedInMsg.HomeMsg <| HomeMsg.SearchMsg (Form.Reset (HomeModel.searchInitial frequency))) loggedIn
+ :> update model (LoggedInMsg.HomeMsg <| HomeMsg.SearchMsg Form.Submit)
+ :> update model (LoggedInMsg.HomeMsg <| HomeMsg.UpdatePage 1)
:> (\loggedIn ->
let newPayment = Payment paymentId (Date.fromTime model.currentTime) name cost loggedIn.me frequency
in ( { loggedIn | payments = newPayment :: loggedIn.payments }
@@ -96,9 +92,28 @@ update model msg loggedIn =
)
LoggedInMsg.ValidateDeletePayment paymentId ->
- ( { loggedIn | payments = deletePayment paymentId loggedIn.payments }
- , Cmd.none
- )
+ let payments = deletePayment paymentId loggedIn.payments
+ frequency =
+ case Form.getOutput loggedIn.home.search of
+ Just data -> data.frequency
+ Nothing -> Punctual
+ switchToPunctual =
+ ( frequency == Monthly
+ && List.isEmpty (Payment.monthly payments)
+ )
+ in if switchToPunctual
+ then
+ update model (LoggedInMsg.HomeMsg <| HomeMsg.SearchMsg (Form.Reset (HomeModel.searchInitial Punctual))) loggedIn
+ :> update model (LoggedInMsg.HomeMsg <| HomeMsg.SearchMsg Form.Submit)
+ :> (\loggedIn ->
+ ( { loggedIn | payments = payments }
+ , Cmd.none
+ )
+ )
+ else
+ ( { loggedIn | payments = payments }
+ , Cmd.none
+ )
LoggedInMsg.AddIncome time amount ->
( loggedIn