diff options
Diffstat (limited to 'src/client/elm/LoggedIn/Home/Account/View.elm')
-rw-r--r-- | src/client/elm/LoggedIn/Home/Account/View.elm | 108 |
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 ] |