aboutsummaryrefslogtreecommitdiff
path: root/src/client/Update.elm
diff options
context:
space:
mode:
authorJoris2017-04-02 17:51:12 +0200
committerJoris2017-04-02 21:07:08 +0200
commit5c110716cfda6e616a795edd12f2012b132dca9f (patch)
tree71c3d04780302edf0648bec1cd914757cdbb2883 /src/client/Update.elm
parent64ff4707fdcd81c27c6be9903c3c82bc543ef016 (diff)
downloadbudget-5c110716cfda6e616a795edd12f2012b132dca9f.tar.gz
budget-5c110716cfda6e616a795edd12f2012b132dca9f.tar.bz2
budget-5c110716cfda6e616a795edd12f2012b132dca9f.zip
Add a chart on payments by month by categories
Diffstat (limited to 'src/client/Update.elm')
-rw-r--r--src/client/Update.elm64
1 files changed, 32 insertions, 32 deletions
diff --git a/src/client/Update.elm b/src/client/Update.elm
index 7006d5a..4284b65 100644
--- a/src/client/Update.elm
+++ b/src/client/Update.elm
@@ -2,35 +2,28 @@ module Update exposing
( update
)
-import Task
-import Platform.Cmd exposing (Cmd)
import Navigation exposing (Location)
+import Platform.Cmd exposing (Cmd)
+import Task
-import Page exposing (Page)
-
-import Server
-
-import Msg exposing (..)
-
+import Dialog
+import Dialog.Update as DialogUpdate
+import LoggedIn.Model as LoggedIn
+import LoggedIn.Msg as LoggedIn
+import LoggedIn.Stat.Msg as Stat
+import LoggedIn.Update as LoggedIn
import Model exposing (Model)
import Model.Translations exposing (getMessage)
import Model.View as V
-
-import LoggedIn.Model as LoggedInModel
-import LoggedIn.Msg as LoggedInMsg
-import LoggedIn.Update as LoggedInUpdate
-
+import Msg exposing (..)
+import Page exposing (Page(..))
+import Server
import SignIn.Model as SignInModel
import SignIn.Msg as SignInMsg
import SignIn.Update as SignInUpdate
-
-import Dialog
-import Dialog.Update as DialogUpdate
-
import Tooltip
-
-import Utils.Http exposing (errorKey)
import Utils.Cmd exposing ((:>))
+import Utils.Http exposing (errorKey)
update : Msg -> Model -> (Model, Cmd Msg)
update msg model =
@@ -40,7 +33,14 @@ update msg model =
(model, Cmd.none)
UpdatePage page ->
- ({ model | page = page }, Cmd.none)
+ ( { model | page = page }
+ , if page == Statistics
+ then
+ let msg = UpdateLoggedIn <| LoggedIn.StatMsg <| Stat.UpdateChart
+ in Task.perform (\_ -> msg) (Task.succeed ())
+ else
+ Cmd.none
+ )
SignIn email ->
( applySignIn model (SignInMsg.WaitingServer)
@@ -51,7 +51,7 @@ update msg model =
)
GoLoggedInView init ->
- ( { model | view = V.LoggedInView (LoggedInModel.init init) }
+ ( { model | view = V.LoggedInView (LoggedIn.init model.currentTime init) }
, Cmd.none
)
@@ -92,7 +92,7 @@ update msg model =
CreatePayment name cost date category frequency ->
( model
, Server.createPayment name cost date category frequency (\result -> case result of
- Ok paymentId -> UpdateLoggedIn <| LoggedInMsg.ValidateCreatePayment paymentId name cost date category frequency
+ Ok paymentId -> UpdateLoggedIn <| LoggedIn.ValidateCreatePayment paymentId name cost date category frequency
Err _ -> Error "CreatePaymentError"
)
)
@@ -100,7 +100,7 @@ update msg model =
EditPayment paymentId name cost date category frequency ->
( model
, Server.editPayment paymentId name cost date category frequency (\result -> case result of
- Ok _ -> UpdateLoggedIn <| LoggedInMsg.ValidateEditPayment paymentId name cost date category frequency
+ Ok _ -> UpdateLoggedIn <| LoggedIn.ValidateEditPayment paymentId name cost date category frequency
Err _ -> Error "EditPaymentError"
)
)
@@ -108,7 +108,7 @@ update msg model =
DeletePayment paymentId ->
( model
, Server.deletePayment paymentId (\result -> case result of
- Ok _ -> UpdateLoggedIn <| LoggedInMsg.ValidateDeletePayment paymentId
+ Ok _ -> UpdateLoggedIn <| LoggedIn.ValidateDeletePayment paymentId
Err _ -> Error "DeletePaymentError"
)
)
@@ -116,7 +116,7 @@ update msg model =
CreateIncome amount date ->
( model
, Server.createIncome amount date (\result -> case result of
- Ok incomeId -> UpdateLoggedIn <| LoggedInMsg.ValidateCreateIncome incomeId amount date
+ Ok incomeId -> UpdateLoggedIn <| LoggedIn.ValidateCreateIncome incomeId amount date
Err _ -> Error "CreateIncomeError"
)
)
@@ -124,7 +124,7 @@ update msg model =
EditIncome incomeId amount date ->
( model
, Server.editIncome incomeId amount date (\result -> case result of
- Ok _ -> UpdateLoggedIn <| LoggedInMsg.ValidateEditIncome incomeId amount date
+ Ok _ -> UpdateLoggedIn <| LoggedIn.ValidateEditIncome incomeId amount date
Err _ -> Error "EditIncomeError"
)
)
@@ -132,7 +132,7 @@ update msg model =
DeleteIncome incomeId ->
( model
, Server.deleteIncome incomeId (\result -> case result of
- Ok _ -> UpdateLoggedIn <| LoggedInMsg.ValidateDeleteIncome incomeId
+ Ok _ -> UpdateLoggedIn <| LoggedIn.ValidateDeleteIncome incomeId
Err _ -> Error "DeleteIncomeError"
)
)
@@ -140,7 +140,7 @@ update msg model =
CreateCategory name color ->
( model
, Server.createCategory name color (\result -> case result of
- Ok categoryId -> UpdateLoggedIn <| LoggedInMsg.ValidateCreateCategory categoryId name color
+ Ok categoryId -> UpdateLoggedIn <| LoggedIn.ValidateCreateCategory categoryId name color
Err _ -> Error "CreateCategoryError"
)
)
@@ -148,7 +148,7 @@ update msg model =
EditCategory categoryId name color ->
( model
, Server.editCategory categoryId name color (\result -> case result of
- Ok _ -> UpdateLoggedIn <| LoggedInMsg.ValidateEditCategory categoryId name color
+ Ok _ -> UpdateLoggedIn <| LoggedIn.ValidateEditCategory categoryId name color
Err _ -> Error "EditCategoryError"
)
)
@@ -156,7 +156,7 @@ update msg model =
DeleteCategory categoryId ->
( model
, Server.deleteCategory categoryId (\result -> case result of
- Ok _ -> UpdateLoggedIn <| LoggedInMsg.ValidateDeleteCategory categoryId
+ Ok _ -> UpdateLoggedIn <| LoggedIn.ValidateDeleteCategory categoryId
Err _ -> Error "DeleteCategoryError"
)
)
@@ -170,11 +170,11 @@ applySignIn model signInMsg =
_ ->
model
-applyLoggedIn : Model -> LoggedInMsg.Msg -> (Model, Cmd Msg)
+applyLoggedIn : Model -> LoggedIn.Msg -> (Model, Cmd Msg)
applyLoggedIn model loggedInMsg =
case model.view of
V.LoggedInView loggedInView ->
- let (view, cmd) = LoggedInUpdate.update model loggedInMsg loggedInView
+ let (view, cmd) = LoggedIn.update model loggedInMsg loggedInView
in ( { model | view = V.LoggedInView view }
, Cmd.map UpdateLoggedIn cmd
)