diff options
Diffstat (limited to 'src/client/elm')
-rw-r--r-- | src/client/elm/LoggedIn/Action.elm | 4 | ||||
-rw-r--r-- | src/client/elm/LoggedIn/Model.elm | 9 | ||||
-rw-r--r-- | src/client/elm/LoggedIn/Monthly/Action.elm (renamed from src/client/elm/Model/Action/MonthlyAction.elm) | 6 | ||||
-rw-r--r-- | src/client/elm/LoggedIn/Monthly/Model.elm (renamed from src/client/elm/Model/View/LoggedIn/Monthly.elm) | 12 | ||||
-rw-r--r-- | src/client/elm/LoggedIn/Monthly/Update.elm | 21 | ||||
-rw-r--r-- | src/client/elm/LoggedIn/Monthly/View.elm (renamed from src/client/elm/View/LoggedIn/Monthly.elm) | 19 | ||||
-rw-r--r-- | src/client/elm/LoggedIn/Update.elm | 13 | ||||
-rw-r--r-- | src/client/elm/LoggedIn/View.elm | 4 | ||||
-rw-r--r-- | src/client/elm/Update/LoggedIn/Monthly.elm | 21 |
9 files changed, 55 insertions, 54 deletions
diff --git a/src/client/elm/LoggedIn/Action.elm b/src/client/elm/LoggedIn/Action.elm index 32c7e0a..2872f1a 100644 --- a/src/client/elm/LoggedIn/Action.elm +++ b/src/client/elm/LoggedIn/Action.elm @@ -3,10 +3,10 @@ module LoggedIn.Action ) where import Model.Payment exposing (Payments, Payment, PaymentId, PaymentFrequency) -import Model.Action.MonthlyAction exposing (MonthlyAction) import LoggedIn.Account.Action as AccountAction import LoggedIn.AddPayment.Action as AddPaymentAction +import LoggedIn.Monthly.Action as MonthlyAction type Action = NoOp @@ -18,5 +18,5 @@ type Action = | ValidateDeletePayment Payment PaymentFrequency | ToggleEdit PaymentId | UpdatePage Int - | UpdateMonthly MonthlyAction + | UpdateMonthly MonthlyAction.Action | UpdateAccount AccountAction.Action diff --git a/src/client/elm/LoggedIn/Model.elm b/src/client/elm/LoggedIn/Model.elm index c1c573f..8f0843e 100644 --- a/src/client/elm/LoggedIn/Model.elm +++ b/src/client/elm/LoggedIn/Model.elm @@ -3,21 +3,20 @@ module LoggedIn.Model , init ) where +import Model.View.LoggedIn.Edition exposing (..) import Model.User exposing (Users, UserId) import Model.Payment exposing (Payments, PaymentFrequency(..)) import Model.Payer exposing (Payers) import Model.Init exposing (..) -import Model.View.LoggedIn.Edition exposing (..) -import Model.View.LoggedIn.Monthly exposing (..) - import LoggedIn.Account.Model as AccountModel import LoggedIn.AddPayment.Model as AddPaymentModel +import LoggedIn.Monthly.Model as MonthlyModel type alias Model = { users : Users , add : AddPaymentModel.Model - , monthly : Monthly + , monthly : MonthlyModel.Model , account : AccountModel.Model , payments : Payments , paymentsCount : Int @@ -29,7 +28,7 @@ init : Init -> Model init initData = { users = initData.users , add = AddPaymentModel.init Punctual - , monthly = initMonthly initData.monthlyPayments + , monthly = MonthlyModel.init initData.monthlyPayments , account = AccountModel.init initData.me initData.incomes , payments = initData.payments , paymentsCount = initData.paymentsCount diff --git a/src/client/elm/Model/Action/MonthlyAction.elm b/src/client/elm/LoggedIn/Monthly/Action.elm index c2de3e5..bf974f9 100644 --- a/src/client/elm/Model/Action/MonthlyAction.elm +++ b/src/client/elm/LoggedIn/Monthly/Action.elm @@ -1,10 +1,10 @@ -module Model.Action.MonthlyAction - ( MonthlyAction(..) +module LoggedIn.Monthly.Action + ( Action(..) ) where import Model.Payment exposing (Payment) -type MonthlyAction = +type Action = ToggleDetail | AddPayment Payment | DeletePayment Payment diff --git a/src/client/elm/Model/View/LoggedIn/Monthly.elm b/src/client/elm/LoggedIn/Monthly/Model.elm index 3c6f66a..16009d6 100644 --- a/src/client/elm/Model/View/LoggedIn/Monthly.elm +++ b/src/client/elm/LoggedIn/Monthly/Model.elm @@ -1,17 +1,17 @@ -module Model.View.LoggedIn.Monthly - ( Monthly - , initMonthly +module LoggedIn.Monthly.Model + ( Model + , init ) where import Model.Payment exposing (Payments) -type alias Monthly = +type alias Model = { payments : Payments , visibleDetail : Bool } -initMonthly : Payments -> Monthly -initMonthly payments = +init : Payments -> Model +init payments = { payments = payments , visibleDetail = False } diff --git a/src/client/elm/LoggedIn/Monthly/Update.elm b/src/client/elm/LoggedIn/Monthly/Update.elm new file mode 100644 index 0000000..62b40e6 --- /dev/null +++ b/src/client/elm/LoggedIn/Monthly/Update.elm @@ -0,0 +1,21 @@ +module LoggedIn.Monthly.Update + ( update + ) where + +import LoggedIn.Monthly.Action as MonthlyAction +import LoggedIn.Monthly.Model as MonthlyModel + +update : MonthlyAction.Action -> MonthlyModel.Model -> MonthlyModel.Model +update action monthly = + case action of + MonthlyAction.ToggleDetail -> + { monthly | visibleDetail = not monthly.visibleDetail } + MonthlyAction.AddPayment payment -> + { monthly + | payments = payment :: monthly.payments + , visibleDetail = True + } + MonthlyAction.DeletePayment payment -> + { monthly + | payments = List.filter (((/=) payment.id) << .id) monthly.payments + } diff --git a/src/client/elm/View/LoggedIn/Monthly.elm b/src/client/elm/LoggedIn/Monthly/View.elm index ae7e6bc..f9ea3bf 100644 --- a/src/client/elm/View/LoggedIn/Monthly.elm +++ b/src/client/elm/LoggedIn/Monthly/View.elm @@ -1,5 +1,5 @@ -module View.LoggedIn.Monthly - ( monthlyPayments +module LoggedIn.Monthly.View + ( view ) where import String @@ -12,19 +12,20 @@ import Html.Events exposing (..) import LoggedIn.Action as LoggedInAction import LoggedIn.Model as LoggedInModel +import LoggedIn.Monthly.Action as MonthlyAction +import LoggedIn.Monthly.Model as MonthlyModel + import Model exposing (Model) import Model.Payment as Payment exposing (Payments, Payment) import Model.Translations exposing (getMessage, getParamMessage) import Model.Action exposing (..) -import Model.Action.MonthlyAction exposing (..) -import Model.View.LoggedIn.Monthly exposing (Monthly) import View.Icon exposing (renderIcon) import View.Expand exposing (..) import View.Price exposing (price) -monthlyPayments : Address Action -> Model -> LoggedInModel.Model -> Html -monthlyPayments address model loggedInModel = +view : Address Action -> Model -> LoggedInModel.Model -> Html +view address model loggedInModel = let monthly = loggedInModel.monthly in if List.length monthly.payments == 0 then @@ -40,20 +41,20 @@ monthlyPayments address model loggedInModel = , if monthly.visibleDetail then paymentsTable address model loggedInModel monthly else text "" ] -monthlyCount : Address Action -> Model -> Monthly -> Html +monthlyCount : Address Action -> Model -> MonthlyModel.Model -> Html monthlyCount address model monthly = let count = List.length monthly.payments total = List.sum << List.map .cost <| monthly.payments key = if count > 1 then "PluralMonthlyCount" else "SingularMonthlyCount" in button [ class "header" - , onClick address (UpdateLoggedIn << LoggedInAction.UpdateMonthly <| ToggleDetail) + , onClick address (UpdateLoggedIn << LoggedInAction.UpdateMonthly <| MonthlyAction.ToggleDetail) ] [ text (getParamMessage [toString count, price model total] key model.translations) , expand ExpandDown monthly.visibleDetail ] -paymentsTable : Address Action -> Model -> LoggedInModel.Model -> Monthly -> Html +paymentsTable : Address Action -> Model -> LoggedInModel.Model -> MonthlyModel.Model -> Html paymentsTable address model loggedInModel monthly = div [ class "table" ] diff --git a/src/client/elm/LoggedIn/Update.elm b/src/client/elm/LoggedIn/Update.elm index 35ffaff..3b8090a 100644 --- a/src/client/elm/LoggedIn/Update.elm +++ b/src/client/elm/LoggedIn/Update.elm @@ -23,14 +23,15 @@ import LoggedIn.AddPayment.Action as AddPaymentAction import LoggedIn.AddPayment.Model as AddPaymentModel import LoggedIn.AddPayment.Update as AddPaymentUpdate +import LoggedIn.Monthly.Action as MonthlyAction +import LoggedIn.Monthly.Model as MonthlyModel +import LoggedIn.Monthly.Update as MonthlyUpdate + import Model exposing (Model) import Model.User exposing (UserId) import Model.Payment exposing (..) -import Model.Action.MonthlyAction as Monthly import Model.Translations exposing (Translations, getMessage) -import Update.LoggedIn.Monthly exposing (updateMonthly) - update : Model -> LoggedInAction.Action -> LoggedInModel.Model -> (LoggedInModel.Model, Effects LoggedInAction.Action) update model action loggedInView = case action of @@ -86,7 +87,7 @@ update model action loggedInView = Monthly -> ( { loggedInView | add = newAdd - , monthly = updateMonthly (Monthly.AddPayment newPayment) loggedInView.monthly + , monthly = MonthlyUpdate.update (MonthlyAction.AddPayment newPayment) loggedInView.monthly } , Effects.none ) @@ -108,7 +109,7 @@ update model action loggedInView = case frequency of Monthly -> ( { loggedInView - | monthly = updateMonthly (Monthly.DeletePayment payment) loggedInView.monthly + | monthly = MonthlyUpdate.update (MonthlyAction.DeletePayment payment) loggedInView.monthly } , Effects.none ) @@ -127,7 +128,7 @@ update model action loggedInView = ) LoggedInAction.UpdateMonthly monthlyAction -> - ( { loggedInView | monthly = updateMonthly monthlyAction loggedInView.monthly } + ( { loggedInView | monthly = MonthlyUpdate.update monthlyAction loggedInView.monthly } , Effects.none ) diff --git a/src/client/elm/LoggedIn/View.elm b/src/client/elm/LoggedIn/View.elm index 8561d2c..25624ce 100644 --- a/src/client/elm/LoggedIn/View.elm +++ b/src/client/elm/LoggedIn/View.elm @@ -10,12 +10,12 @@ import Html.Attributes exposing (..) import LoggedIn.Model as LoggedInModel import LoggedIn.Account.View as AccountView import LoggedIn.AddPayment.View as AddPaymentView +import LoggedIn.Monthly.View as MonthlyView import Model exposing (Model) import Model.Payment exposing (Payments) import Model.Action exposing (Action) -import View.LoggedIn.Monthly exposing (monthlyPayments) import View.LoggedIn.Table exposing (paymentsTable) import View.LoggedIn.Paging exposing (paymentsPaging) @@ -27,7 +27,7 @@ view address model loggedInModel = , div [ class "expandables" ] [ AccountView.view address model loggedInModel - , monthlyPayments address model loggedInModel + , MonthlyView.view address model loggedInModel ] , paymentsTable address model loggedInModel , paymentsPaging address loggedInModel diff --git a/src/client/elm/Update/LoggedIn/Monthly.elm b/src/client/elm/Update/LoggedIn/Monthly.elm deleted file mode 100644 index 3741e1f..0000000 --- a/src/client/elm/Update/LoggedIn/Monthly.elm +++ /dev/null @@ -1,21 +0,0 @@ -module Update.LoggedIn.Monthly - ( updateMonthly - ) where - -import Model.Action.MonthlyAction exposing (..) -import Model.View.LoggedIn.Monthly exposing (..) - -updateMonthly : MonthlyAction -> Monthly -> Monthly -updateMonthly action monthly = - case action of - ToggleDetail -> - { monthly | visibleDetail = not monthly.visibleDetail } - AddPayment payment -> - { monthly - | payments = payment :: monthly.payments - , visibleDetail = True - } - DeletePayment payment -> - { monthly - | payments = List.filter (((/=) payment.id) << .id) monthly.payments - } |