From 70720548c9af024dbb6080638ac8e5470c2213eb Mon Sep 17 00:00:00 2001 From: Joris Date: Sat, 25 Jun 2016 15:10:03 +0200 Subject: Use the search to view either punctual or monthly payments --- src/client/elm/LoggedIn/Home/Model.elm | 44 ++++++++-------------------------- 1 file changed, 10 insertions(+), 34 deletions(-) (limited to 'src/client/elm/LoggedIn/Home/Model.elm') diff --git a/src/client/elm/LoggedIn/Home/Model.elm b/src/client/elm/LoggedIn/Home/Model.elm index e802828..be32fb7 100644 --- a/src/client/elm/LoggedIn/Home/Model.elm +++ b/src/client/elm/LoggedIn/Home/Model.elm @@ -2,7 +2,7 @@ module LoggedIn.Home.Model exposing ( Model , Search , init - , addPaymentInitial + , searchInitial ) import Form exposing (Form) @@ -10,24 +10,17 @@ import Form.Validate as Validate exposing (Validation) import Form.Field as Field exposing (Field) import Model.User exposing (Users, UserId) -import Model.Payment exposing (PaymentId, Payments, Frequency(..)) +import Model.Payment as Payment exposing (PaymentId, Payments, Frequency(..)) import Model.Payer exposing (Payers) type alias Model = { paymentEdition : Maybe PaymentId , currentPage : Int - , monthlyDetail : Bool , search : Form String Search - , addPayment : Form String AddPayment } type alias Search = - { searchText : Maybe String - } - -type alias AddPayment = - { name : String - , cost : Int + { name : Maybe String , frequency : Frequency } @@ -35,31 +28,14 @@ init : Model init = { paymentEdition = Nothing , currentPage = 1 - , monthlyDetail = False - , search = Form.initial [] searchValidation - , addPayment = Form.initial addPaymentInitial addPaymentValidation + , search = Form.initial (searchInitial Punctual) searchValidation } +searchInitial : Frequency -> List (String, Field) +searchInitial frequency = [ ("frequency", Field.Radio (toString frequency)) ] + searchValidation : Validation String Search searchValidation = - Validate.form1 Search - (Validate.get "searchText" (Validate.maybe Validate.string)) - -addPaymentInitial : List (String, Field) -addPaymentInitial = [ ("frequency", Field.Radio (toString Punctual)) ] - -addPaymentValidation : Validation String AddPayment -addPaymentValidation = - Validate.form3 AddPayment - (Validate.get "name" (Validate.string `Validate.andThen` (Validate.nonEmpty))) - (Validate.get "cost" (Validate.int `Validate.andThen` (Validate.minInt 1))) - (Validate.get "frequency" validateFrequency) - -validateFrequency : Validation String Frequency -validateFrequency = - Validate.customValidation Validate.string (\str -> - case str of - "Punctual" -> Ok Punctual - "Monthly" -> Ok Monthly - _ -> Err (Validate.customError "InvalidFrequency") - ) + Validate.form2 Search + (Validate.get "name" (Validate.maybe Validate.string)) + (Validate.get "frequency" Payment.validateFrequency) -- cgit v1.2.3