diff options
Diffstat (limited to 'src/client/elm')
-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.elm | 5 | ||||
-rw-r--r-- | src/client/elm/LoggedIn/Model.elm | 7 | ||||
-rw-r--r-- | src/client/elm/LoggedIn/Update.elm | 7 | ||||
-rw-r--r-- | src/client/elm/LoggedIn/View.elm | 5 |
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 |