From 0dc740d8f64b31ff49b7cfb51ddc2dde7b5c121e Mon Sep 17 00:00:00 2001 From: Joris Date: Sun, 26 Jun 2016 13:22:47 +0200 Subject: Confirm before payment deletion --- src/client/elm/LoggedIn/Home/Model.elm | 6 ++--- src/client/elm/LoggedIn/Home/Msg.elm | 1 - src/client/elm/LoggedIn/Home/Update.elm | 5 ---- src/client/elm/LoggedIn/Home/View/Table.elm | 39 ++++++++++++++++------------- src/client/elm/LoggedIn/Income/View.elm | 4 +-- src/client/elm/View/Form.elm | 4 ++- 6 files changed, 29 insertions(+), 30 deletions(-) (limited to 'src/client') diff --git a/src/client/elm/LoggedIn/Home/Model.elm b/src/client/elm/LoggedIn/Home/Model.elm index be32fb7..caedc29 100644 --- a/src/client/elm/LoggedIn/Home/Model.elm +++ b/src/client/elm/LoggedIn/Home/Model.elm @@ -14,8 +14,7 @@ import Model.Payment as Payment exposing (PaymentId, Payments, Frequency(..)) import Model.Payer exposing (Payers) type alias Model = - { paymentEdition : Maybe PaymentId - , currentPage : Int + { currentPage : Int , search : Form String Search } @@ -26,8 +25,7 @@ type alias Search = init : Model init = - { paymentEdition = Nothing - , currentPage = 1 + { currentPage = 1 , search = Form.initial (searchInitial Punctual) searchValidation } diff --git a/src/client/elm/LoggedIn/Home/Msg.elm b/src/client/elm/LoggedIn/Home/Msg.elm index 73b8980..b5f2566 100644 --- a/src/client/elm/LoggedIn/Home/Msg.elm +++ b/src/client/elm/LoggedIn/Home/Msg.elm @@ -8,6 +8,5 @@ import Model.Payment exposing (PaymentId) type Msg = NoOp - | ToggleEdit PaymentId | UpdatePage Int | SearchMsg Form.Msg diff --git a/src/client/elm/LoggedIn/Home/Update.elm b/src/client/elm/LoggedIn/Home/Update.elm index 160e279..d1a3239 100644 --- a/src/client/elm/LoggedIn/Home/Update.elm +++ b/src/client/elm/LoggedIn/Home/Update.elm @@ -18,11 +18,6 @@ update loggedData msg model = , Cmd.none ) - Home.ToggleEdit id -> - ( { model | paymentEdition = if model.paymentEdition == Just id then Nothing else Just id } - , Cmd.none - ) - Home.UpdatePage page -> ( { model | currentPage = page } , Cmd.none diff --git a/src/client/elm/LoggedIn/Home/View/Table.elm b/src/client/elm/LoggedIn/Home/View/Table.elm index fa0a93d..b86976c 100644 --- a/src/client/elm/LoggedIn/Home/View/Table.elm +++ b/src/client/elm/LoggedIn/Home/View/Table.elm @@ -28,6 +28,8 @@ import Model.User exposing (getUserName) import Model.Payment as Payment exposing (..) import Model.Translations exposing (getMessage) +import Dialog + view : LoggedData -> HomeModel.Model -> Payments -> Frequency -> Html Msg view loggedData homeModel payments frequency = let visiblePayments = @@ -63,13 +65,8 @@ headerLine loggedData frequency = paymentLine : LoggedData -> HomeModel.Model -> Frequency -> Payment -> Html Msg paymentLine loggedData homeModel frequency payment = - a - [ classList - [ ("row", True) - , ("edition", homeModel.paymentEdition == Just payment.id) - ] - , onClick (Msg.UpdateLoggedIn << LoggedInMsg.HomeMsg << HomeMsg.ToggleEdit <| payment.id) - ] + div + [ class "row" ] [ div [ class "cell category" ] [ text payment.name ] , div [ classList @@ -98,14 +95,22 @@ paymentLine loggedData homeModel frequency payment = ] Monthly -> text "" - , if loggedData.me == payment.userId - then - div - [ class "cell delete" ] - [ button - [ onClick (Msg.UpdateLoggedIn <| LoggedInMsg.DeletePayment payment.id)] - [ FontAwesome.times Color.white 20 ] - ] - else - div [ class "cell" ] [] + , div + [ class "cell delete" ] + [ if loggedData.me /= payment.userId + then + text "" + else + let dialogConfig = + { className = "paymentDialog" + , title = getMessage "ConfirmPaymentDelete" loggedData.translations + , body = always <| text "" + , confirm = getMessage "Confirm" loggedData.translations + , confirmMsg = always <| Ok <| Msg.UpdateLoggedIn <| LoggedInMsg.DeletePayment payment.id + , undo = getMessage "Undo" loggedData.translations + } + in button + [ onClick (Msg.Dialog <| Dialog.Open dialogConfig) ] + [ FontAwesome.trash Color.chestnutRose 18 ] + ] ] diff --git a/src/client/elm/LoggedIn/Income/View.elm b/src/client/elm/LoggedIn/Income/View.elm index 02e4467..f6cf8f8 100644 --- a/src/client/elm/LoggedIn/Income/View.elm +++ b/src/client/elm/LoggedIn/Income/View.elm @@ -114,7 +114,7 @@ incomeView loggedData (incomeId, income) = , text <| Format.price loggedData.conf income.amount , let dialogConfig = { className = "incomeDialog" - , title = getMessage "ConfirmDelete" loggedData.translations + , title = getMessage "ConfirmIncomeDelete" loggedData.translations , body = always <| text "" , confirm = getMessage "Confirm" loggedData.translations , confirmMsg = always <| Ok <| Msg.UpdateLoggedIn <| LoggedInMsg.DeleteIncome incomeId @@ -122,5 +122,5 @@ incomeView loggedData (incomeId, income) = } in button [ onClick (Msg.Dialog <| Dialog.Open dialogConfig) ] - [ FontAwesome.remove Color.chestnutRose 14 ] + [ FontAwesome.trash Color.chestnutRose 14 ] ] diff --git a/src/client/elm/View/Form.elm b/src/client/elm/View/Form.elm index 9b83bf7..1522b1f 100644 --- a/src/client/elm/View/Form.elm +++ b/src/client/elm/View/Form.elm @@ -41,7 +41,9 @@ textInput translations form formName fieldName = [ for (formName ++ fieldName) ] [ text (Translations.getMessage (formName ++ fieldName) translations) ] , button - [ onClick (Form.Input fieldName Field.EmptyField) ] + [ onClick (Form.Input fieldName Field.EmptyField) + , tabindex -1 + ] [ FontAwesome.times Color.silver 15 ] , case field.liveError of Just error -> formError translations error -- cgit v1.2.3