aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoris2016-03-27 20:41:59 +0200
committerJoris2016-03-27 20:41:59 +0200
commit7c050fe2d2c3e8f190e019e1613d37b9d8ef22b9 (patch)
tree1465f7367335492cd246b67ab9a02968517d57a5
parent702d60cbcdf85216a1b18416f4480afb77384e8a (diff)
downloadbudget-7c050fe2d2c3e8f190e019e1613d37b9d8ef22b9.tar.gz
budget-7c050fe2d2c3e8f190e019e1613d37b9d8ef22b9.tar.bz2
budget-7c050fe2d2c3e8f190e019e1613d37b9d8ef22b9.zip
Regroup account modules
-rw-r--r--src/client/elm/LoggedIn/Account/Action.elm (renamed from src/client/elm/Model/Action/AccountAction.elm)6
-rw-r--r--src/client/elm/LoggedIn/Account/Model.elm (renamed from src/client/elm/Model/View/LoggedIn/Account.elm)14
-rw-r--r--src/client/elm/LoggedIn/Account/Update.elm (renamed from src/client/elm/Update/LoggedIn/Account.elm)32
-rw-r--r--src/client/elm/LoggedIn/Account/View.elm (renamed from src/client/elm/View/LoggedIn/Account.elm)34
-rw-r--r--src/client/elm/LoggedIn/Action.elm5
-rw-r--r--src/client/elm/LoggedIn/Model.elm7
-rw-r--r--src/client/elm/LoggedIn/Update.elm7
-rw-r--r--src/client/elm/LoggedIn/View.elm5
8 files changed, 57 insertions, 53 deletions
diff --git a/src/client/elm/Model/Action/AccountAction.elm b/src/client/elm/LoggedIn/Account/Action.elm
index 3e156a5..66ccfaa 100644
--- a/src/client/elm/Model/Action/AccountAction.elm
+++ b/src/client/elm/LoggedIn/Account/Action.elm
@@ -1,5 +1,5 @@
-module Model.Action.AccountAction
- ( AccountAction(..)
+module LoggedIn.Account.Action
+ ( Action(..)
) where
import Time exposing (Time)
@@ -7,7 +7,7 @@ import Time exposing (Time)
import Model.User exposing (UserId)
import Model.Income exposing (IncomeId)
-type AccountAction =
+type Action =
NoOp
| ToggleDetail
| ToggleIncomeEdition
diff --git a/src/client/elm/Model/View/LoggedIn/Account.elm b/src/client/elm/LoggedIn/Account/Model.elm
index ec75397..2d0c4a3 100644
--- a/src/client/elm/Model/View/LoggedIn/Account.elm
+++ b/src/client/elm/LoggedIn/Account/Model.elm
@@ -1,7 +1,7 @@
-module Model.View.LoggedIn.Account
- ( Account
+module LoggedIn.Account.Model
+ ( Model
, IncomeEdition
- , initAccount
+ , init
, initIncomeEdition
, getCurrentIncome
, validateIncome
@@ -17,22 +17,22 @@ import Model.Translations exposing (..)
import Model.Income exposing (..)
import Model.User exposing (UserId)
-type alias Account =
+type alias Model =
{ me : UserId
, incomes : Incomes
, visibleDetail : Bool
, incomeEdition : Maybe IncomeEdition
}
-initAccount : UserId -> Incomes -> Account
-initAccount me incomes =
+init : UserId -> Incomes -> Model
+init me incomes =
{ me = me
, incomes = incomes
, visibleDetail = False
, incomeEdition = Nothing
}
-getCurrentIncome : Account -> Maybe Int
+getCurrentIncome : Model -> Maybe Int
getCurrentIncome account =
account.incomes
|> Dict.filter (\_ income -> income.userId == account.me)
diff --git a/src/client/elm/Update/LoggedIn/Account.elm b/src/client/elm/LoggedIn/Account/Update.elm
index 233efa9..a3d9745 100644
--- a/src/client/elm/Update/LoggedIn/Account.elm
+++ b/src/client/elm/LoggedIn/Account/Update.elm
@@ -1,5 +1,5 @@
-module Update.LoggedIn.Account
- ( updateAccount
+module LoggedIn.Account.Update
+ ( update
) where
import Maybe
@@ -10,33 +10,33 @@ import Effects exposing (Effects)
import Server
-import Model.Action.AccountAction exposing (..)
-import Model.View.LoggedIn.Account exposing (..)
+import LoggedIn.Account.Action as AccountAction
+import LoggedIn.Account.Model as AccountModel
import Utils.Maybe exposing (isJust)
-updateAccount : AccountAction -> Account -> (Account, Effects AccountAction)
-updateAccount action account =
+update : AccountAction.Action -> AccountModel.Model -> (AccountModel.Model, Effects AccountAction.Action)
+update action account =
case action of
- NoOp ->
+ AccountAction.NoOp ->
(account, Effects.none)
- ToggleDetail ->
+ AccountAction.ToggleDetail ->
( { account | visibleDetail = not account.visibleDetail }
, Effects.none
)
- ToggleIncomeEdition ->
+ AccountAction.ToggleIncomeEdition ->
( { account | incomeEdition =
if isJust account.incomeEdition
then Nothing
- else Just (initIncomeEdition (Maybe.withDefault 0 (getCurrentIncome account)))
+ else Just (AccountModel.initIncomeEdition (Maybe.withDefault 0 (AccountModel.getCurrentIncome account)))
}
, Effects.none
)
- UpdateIncomeEdition income ->
+ AccountAction.UpdateIncomeEdition income ->
case account.incomeEdition of
Just incomeEdition ->
( { account | incomeEdition = Just { incomeEdition | income = income } }
@@ -47,7 +47,7 @@ updateAccount action account =
, Effects.none
)
- UpdateEditionError error ->
+ AccountAction.UpdateEditionError error ->
case account.incomeEdition of
Just incomeEdition ->
( { account | incomeEdition = Just { incomeEdition | error = Just error } }
@@ -58,15 +58,15 @@ updateAccount action account =
, Effects.none
)
- UpdateIncome currentTime amount ->
+ AccountAction.UpdateIncome currentTime amount ->
( account
, Server.setIncome currentTime amount
- |> Task.map (\incomeId -> (ValidateUpdateIncome incomeId currentTime amount))
- |> flip Task.onError (always <| Task.succeed NoOp)
+ |> Task.map (\incomeId -> (AccountAction.ValidateUpdateIncome incomeId currentTime amount))
+ |> flip Task.onError (always <| Task.succeed AccountAction.NoOp)
|> Effects.task
)
- ValidateUpdateIncome incomeId currentTime amount ->
+ AccountAction.ValidateUpdateIncome incomeId currentTime amount ->
( { account
| incomes = Dict.insert incomeId { userId = account.me, creation = currentTime, amount = amount } account.incomes
, incomeEdition = Nothing
diff --git a/src/client/elm/View/LoggedIn/Account.elm b/src/client/elm/LoggedIn/Account/View.elm
index 66d8582..deee627 100644
--- a/src/client/elm/View/LoggedIn/Account.elm
+++ b/src/client/elm/LoggedIn/Account/View.elm
@@ -1,5 +1,5 @@
-module View.LoggedIn.Account
- ( account
+module LoggedIn.Account.View
+ ( view
) where
import List
@@ -13,14 +13,14 @@ import Html.Events exposing (..)
import LoggedIn.Action as LoggedInAction
import LoggedIn.Model as LoggedInModel
+import LoggedIn.Account.Action as AccountAction
+import LoggedIn.Account.Model as AccountModel
+
import Model exposing (Model)
import Model.User exposing (getUserName)
import Model.Payer exposing (..)
import Model.Translations exposing (getParamMessage, getMessage)
import Model.Action exposing (..)
-import Model.Action.AccountAction exposing (..)
-
-import Model.View.LoggedIn.Account exposing (..)
import View.Expand exposing (..)
import View.Price exposing (price)
@@ -28,8 +28,8 @@ import View.Events exposing (onSubmitPrevDefault)
import Utils.Either exposing (toMaybeError)
-account : Address Action -> Model -> LoggedInModel.Model -> Html
-account address model loggedInModel =
+view : Address Action -> Model -> LoggedInModel.Model -> Html
+view address model loggedInModel =
let account = loggedInModel.account
in div
[ classList
@@ -47,7 +47,7 @@ exceedingPayers : Address Action -> Model -> LoggedInModel.Model -> Html
exceedingPayers address model loggedInModel =
button
[ class "header"
- , onClick address (UpdateLoggedIn << LoggedInAction.UpdateAccount <| ToggleDetail)
+ , onClick address (UpdateLoggedIn << LoggedInAction.UpdateAccount <| AccountAction.ToggleDetail)
]
( (List.map (exceedingPayer model loggedInModel) (getOrderedExceedingPayers model.currentTime loggedInModel.users loggedInModel.account.incomes loggedInModel.payments))
++ [ expand ExpandDown loggedInModel.account.visibleDetail ]
@@ -69,7 +69,7 @@ exceedingPayer model loggedInModel payer =
[ text ("+ " ++ (price model payer.amount)) ]
]
-income : Address Action -> Model -> Account -> Html
+income : Address Action -> Model -> AccountModel.Model -> Html
income address model account =
case account.incomeEdition of
Nothing ->
@@ -77,11 +77,11 @@ income address model account =
Just edition ->
incomeEdition address model account edition
-incomeRead : Address Action -> Model -> Account -> Html
+incomeRead : Address Action -> Model -> AccountModel.Model -> Html
incomeRead address model account =
div
[ class "income" ]
- [ ( case getCurrentIncome account of
+ [ ( case AccountModel.getCurrentIncome account of
Nothing ->
text (getMessage "NoIncome" model.translations)
Just income ->
@@ -90,14 +90,14 @@ incomeRead address model account =
, toggleIncomeEdition address "editIncomeEdition" (getMessage "Edit" model.translations)
]
-incomeEdition : Address Action -> Model -> Account -> IncomeEdition -> Html
+incomeEdition : Address Action -> Model -> AccountModel.Model -> AccountModel.IncomeEdition -> Html
incomeEdition address model account edition =
H.form
- [ case validateIncome edition.income model.translations of
+ [ case AccountModel.validateIncome edition.income model.translations of
Ok validatedAmount ->
- onSubmitPrevDefault address (UpdateLoggedIn << LoggedInAction.UpdateAccount <| UpdateIncome model.currentTime validatedAmount)
+ onSubmitPrevDefault address (UpdateLoggedIn << LoggedInAction.UpdateAccount <| AccountAction.UpdateIncome model.currentTime validatedAmount)
Err error ->
- onSubmitPrevDefault address (UpdateLoggedIn << LoggedInAction.UpdateAccount << UpdateEditionError <| error)
+ onSubmitPrevDefault address (UpdateLoggedIn << LoggedInAction.UpdateAccount << AccountAction.UpdateEditionError <| error)
, class "income"
]
[ label
@@ -106,7 +106,7 @@ incomeEdition address model account edition =
, input
[ id "incomeInput"
, value edition.income
- , on "input" targetValue (Signal.message address << UpdateLoggedIn << LoggedInAction.UpdateAccount << UpdateIncomeEdition)
+ , on "input" targetValue (Signal.message address << UpdateLoggedIn << LoggedInAction.UpdateAccount << AccountAction.UpdateIncomeEdition)
, maxlength 10
]
[]
@@ -126,6 +126,6 @@ toggleIncomeEdition address className name =
button
[ type' "button"
, class className
- , onClick address (UpdateLoggedIn << LoggedInAction.UpdateAccount <| ToggleIncomeEdition)
+ , onClick address (UpdateLoggedIn << LoggedInAction.UpdateAccount <| AccountAction.ToggleIncomeEdition)
]
[ text name ]
diff --git a/src/client/elm/LoggedIn/Action.elm b/src/client/elm/LoggedIn/Action.elm
index db69e2b..bd224cd 100644
--- a/src/client/elm/LoggedIn/Action.elm
+++ b/src/client/elm/LoggedIn/Action.elm
@@ -4,9 +4,10 @@ module LoggedIn.Action
import Model.Payment exposing (Payments, Payment, PaymentId, PaymentFrequency)
import Model.Action.MonthlyAction exposing (MonthlyAction)
-import Model.Action.AccountAction exposing (AccountAction)
import Model.Action.AddPaymentAction exposing (AddPaymentAction)
+import LoggedIn.Account.Action as AccountAction
+
type Action =
NoOp
| UpdateAdd AddPaymentAction
@@ -18,4 +19,4 @@ type Action =
| ToggleEdit PaymentId
| UpdatePage Int
| UpdateMonthly MonthlyAction
- | UpdateAccount AccountAction
+ | UpdateAccount AccountAction.Action
diff --git a/src/client/elm/LoggedIn/Model.elm b/src/client/elm/LoggedIn/Model.elm
index 5ab5e01..0f677c1 100644
--- a/src/client/elm/LoggedIn/Model.elm
+++ b/src/client/elm/LoggedIn/Model.elm
@@ -11,13 +11,14 @@ import Model.Init exposing (..)
import Model.View.LoggedIn.AddPayment exposing (..)
import Model.View.LoggedIn.Edition exposing (..)
import Model.View.LoggedIn.Monthly exposing (..)
-import Model.View.LoggedIn.Account exposing (..)
+
+import LoggedIn.Account.Model as AccountModel
type alias Model =
{ users : Users
, add : AddPayment
, monthly : Monthly
- , account : Account
+ , account : AccountModel.Model
, payments : Payments
, paymentsCount : Int
, paymentEdition : Maybe Edition
@@ -29,7 +30,7 @@ init initData =
{ users = initData.users
, add = initAddPayment Punctual
, monthly = initMonthly initData.monthlyPayments
- , account = initAccount initData.me initData.incomes
+ , account = AccountModel.init initData.me initData.incomes
, payments = initData.payments
, paymentsCount = initData.paymentsCount
, paymentEdition = Nothing
diff --git a/src/client/elm/LoggedIn/Update.elm b/src/client/elm/LoggedIn/Update.elm
index aac046d..e017423 100644
--- a/src/client/elm/LoggedIn/Update.elm
+++ b/src/client/elm/LoggedIn/Update.elm
@@ -16,10 +16,12 @@ import Server
import LoggedIn.Action as LoggedInAction
import LoggedIn.Model as LoggedInModel
+import LoggedIn.Account.Action as AccountAction
+import LoggedIn.Account.Update as AccountUpdate
+
import Model exposing (Model)
import Model.User exposing (UserId)
import Model.Payment exposing (..)
-import Model.Action.AccountAction as Account
import Model.Action.MonthlyAction as Monthly
import Model.Action.AddPaymentAction as AddPayment
import Model.View.LoggedIn.AddPayment exposing (..)
@@ -27,7 +29,6 @@ import Model.Translations exposing (Translations, getMessage)
import Update.LoggedIn.AddPayment exposing (updateAddPayment, addPaymentError)
import Update.LoggedIn.Monthly exposing (updateMonthly)
-import Update.LoggedIn.Account exposing (updateAccount)
update : Model -> LoggedInAction.Action -> LoggedInModel.Model -> (LoggedInModel.Model, Effects LoggedInAction.Action)
update model action loggedInView =
@@ -130,7 +131,7 @@ update model action loggedInView =
)
LoggedInAction.UpdateAccount accountAction ->
- let (newAccount, accountEffects) = updateAccount accountAction loggedInView.account
+ let (newAccount, accountEffects) = AccountUpdate.update accountAction loggedInView.account
in ( { loggedInView | account = newAccount }
, Effects.map LoggedInAction.UpdateAccount accountEffects
)
diff --git a/src/client/elm/LoggedIn/View.elm b/src/client/elm/LoggedIn/View.elm
index 8d4bdbb..8817dd2 100644
--- a/src/client/elm/LoggedIn/View.elm
+++ b/src/client/elm/LoggedIn/View.elm
@@ -9,13 +9,14 @@ import Html.Attributes exposing (..)
import LoggedIn.Model as LoggedInModel
+import LoggedIn.Account.View as AccountView
+
import Model exposing (Model)
import Model.Payment exposing (Payments)
import Model.Action exposing (Action)
import View.LoggedIn.AddPayment exposing (addPayment)
import View.LoggedIn.Monthly exposing (monthlyPayments)
-import View.LoggedIn.Account exposing (account)
import View.LoggedIn.Table exposing (paymentsTable)
import View.LoggedIn.Paging exposing (paymentsPaging)
@@ -26,7 +27,7 @@ view address model loggedInModel =
[ addPayment address model loggedInModel
, div
[ class "expandables" ]
- [ account address model loggedInModel
+ [ AccountView.view address model loggedInModel
, monthlyPayments address model loggedInModel
]
, paymentsTable address model loggedInModel