aboutsummaryrefslogtreecommitdiff
path: root/src/client/elm/LoggedIn/Home/Account/View.elm
diff options
context:
space:
mode:
Diffstat (limited to 'src/client/elm/LoggedIn/Home/Account/View.elm')
-rw-r--r--src/client/elm/LoggedIn/Home/Account/View.elm108
1 files changed, 6 insertions, 102 deletions
diff --git a/src/client/elm/LoggedIn/Home/Account/View.elm b/src/client/elm/LoggedIn/Home/Account/View.elm
index a7d3e0c..63fb997 100644
--- a/src/client/elm/LoggedIn/Home/Account/View.elm
+++ b/src/client/elm/LoggedIn/Home/Account/View.elm
@@ -2,61 +2,26 @@ module LoggedIn.Home.Account.View
( view
) where
-import List
-import Signal
-
import Html exposing (..)
-import Html as H exposing (..)
import Html.Attributes exposing (..)
-import Html.Events exposing (..)
import LoggedData exposing (LoggedData)
-import LoggedIn.Action as LoggedInAction
-
-import LoggedIn.Home.Action as HomeAction
import LoggedIn.Home.Model as HomeModel
import LoggedIn.Home.Model.Payer exposing (..)
-import LoggedIn.Home.View.Price exposing (price)
-import LoggedIn.Home.View.Expand exposing (..)
-
-import LoggedIn.Home.Account.Action as AccountAction
-import LoggedIn.Home.Account.Model as AccountModel
+import LoggedIn.View.Price exposing (price)
import Model exposing (Model)
import Model.User exposing (getUserName)
-import Model.Translations exposing (getParamMessage, getMessage)
-import Action
-import Mailbox
-
-import View.Events exposing (onSubmitPrevDefault)
-
-import Utils.Either exposing (toMaybeError)
view : LoggedData -> HomeModel.Model -> Html
view loggedData homeModel =
- let account = homeModel.account
- in div
- [ classList
- [ ("account", True)
- , ("detail", account.visibleDetail)
- ]
- ]
- [ exceedingPayers loggedData homeModel
- , if account.visibleDetail
- then income loggedData account
- else text ""
- ]
-
-exceedingPayers : LoggedData -> HomeModel.Model -> Html
-exceedingPayers loggedData homeModel =
- button
- [ class "header"
- , onClick Mailbox.address (Action.UpdateLoggedIn << LoggedInAction.HomeAction << HomeAction.UpdateAccount <| AccountAction.ToggleDetail)
+ div
+ [ class "account" ]
+ [ div
+ [ class "header" ]
+ (List.map (exceedingPayer loggedData homeModel) (getOrderedExceedingPayers loggedData.currentTime loggedData.users loggedData.incomes loggedData.payments))
]
- ( (List.map (exceedingPayer loggedData homeModel) (getOrderedExceedingPayers loggedData.currentTime loggedData.users loggedData.incomes loggedData.payments))
- ++ [ expand ExpandDown homeModel.account.visibleDetail ]
- )
exceedingPayer : LoggedData -> HomeModel.Model -> ExceedingPayer -> Html
exceedingPayer loggedData homeModel payer =
@@ -73,64 +38,3 @@ exceedingPayer loggedData homeModel payer =
[ class "amount" ]
[ text ("+ " ++ (price loggedData.conf payer.amount)) ]
]
-
-income : LoggedData -> AccountModel.Model -> Html
-income loggedData account =
- case account.incomeEdition of
- Nothing ->
- incomeRead loggedData account
- Just edition ->
- incomeEdition loggedData account edition
-
-incomeRead : LoggedData -> AccountModel.Model -> Html
-incomeRead loggedData account =
- div
- [ class "income" ]
- [ ( case AccountModel.getCurrentIncome loggedData.incomes loggedData.me account of
- Nothing ->
- text (getMessage "NoIncome" loggedData.translations)
- Just income ->
- text (getParamMessage [price loggedData.conf income] "Income" loggedData.translations)
- )
- , toggleIncomeEdition loggedData "editIncomeEdition" (getMessage "Edit" loggedData.translations)
- ]
-
-incomeEdition : LoggedData -> AccountModel.Model -> AccountModel.IncomeEdition -> Html
-incomeEdition loggedData account edition =
- H.form
- [ case AccountModel.validateIncome edition.income loggedData.translations of
- Ok validatedAmount ->
- onSubmitPrevDefault Mailbox.address (Action.UpdateLoggedIn <| LoggedInAction.UpdateIncome validatedAmount)
- Err error ->
- onSubmitPrevDefault Mailbox.address (Action.UpdateLoggedIn << LoggedInAction.HomeAction << HomeAction.UpdateAccount << AccountAction.UpdateEditionError <| error)
- , class "income"
- ]
- [ label
- [ for "incomeInput" ]
- [ text (getMessage "NewIncome" loggedData.translations) ]
- , input
- [ id "incomeInput"
- , value edition.income
- , on "input" targetValue (Signal.message Mailbox.address << Action.UpdateLoggedIn << LoggedInAction.HomeAction << HomeAction.UpdateAccount << AccountAction.UpdateIncomeEdition)
- , maxlength 10
- ]
- []
- , button
- [ type' "submit"
- , class "validateIncomeEdition"
- ]
- [ text (getMessage "Validate" loggedData.translations) ]
- , toggleIncomeEdition loggedData "undoIncomeEdition" (getMessage "Undo" loggedData.translations)
- , case edition.error of
- Just error -> div [ class "error" ] [ text error ]
- Nothing -> text ""
- ]
-
-toggleIncomeEdition : LoggedData -> String -> String -> Html
-toggleIncomeEdition loggedData className name =
- button
- [ type' "button"
- , class className
- , onClick Mailbox.address (Action.UpdateLoggedIn << LoggedInAction.HomeAction << HomeAction.UpdateAccount <| AccountAction.ToggleIncomeEdition)
- ]
- [ text name ]