aboutsummaryrefslogtreecommitdiff
path: root/src/client/elm
diff options
context:
space:
mode:
authorJoris2016-06-26 13:22:47 +0200
committerJoris2016-06-26 13:22:47 +0200
commit0dc740d8f64b31ff49b7cfb51ddc2dde7b5c121e (patch)
treefb8ac3e55677d87fb107af90a2cf62409c03b946 /src/client/elm
parent9ec84e3a20c767f6525639f58cd22715e302b88d (diff)
Confirm before payment deletion
Diffstat (limited to 'src/client/elm')
-rw-r--r--src/client/elm/LoggedIn/Home/Model.elm6
-rw-r--r--src/client/elm/LoggedIn/Home/Msg.elm1
-rw-r--r--src/client/elm/LoggedIn/Home/Update.elm5
-rw-r--r--src/client/elm/LoggedIn/Home/View/Table.elm39
-rw-r--r--src/client/elm/LoggedIn/Income/View.elm4
-rw-r--r--src/client/elm/View/Form.elm4
6 files changed, 29 insertions, 30 deletions
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