aboutsummaryrefslogtreecommitdiff
path: root/src/server
diff options
context:
space:
mode:
authorJoris2016-08-21 14:30:40 +0200
committerJoris2016-08-21 14:30:40 +0200
commit75804df1cb231033f94183e41cdf79d36d8f6710 (patch)
tree48b7932285091fdbdaba6d77586859c1e1750ce0 /src/server
parent3889d21ab58fbbc0134854b95013196a82e8d510 (diff)
downloadbudget-75804df1cb231033f94183e41cdf79d36d8f6710.tar.gz
budget-75804df1cb231033f94183e41cdf79d36d8f6710.tar.bz2
budget-75804df1cb231033f94183e41cdf79d36d8f6710.zip
Show a message if there is an error during a server request
Diffstat (limited to 'src/server')
-rw-r--r--src/server/Controller/Payment.hs2
-rw-r--r--src/server/Design/Errors.hs55
-rw-r--r--src/server/Design/Global.hs2
-rw-r--r--src/server/Model/Message/Key.hs10
-rw-r--r--src/server/Model/Message/Translations.hs37
5 files changed, 105 insertions, 1 deletions
diff --git a/src/server/Controller/Payment.hs b/src/server/Controller/Payment.hs
index 96ac469..9155a78 100644
--- a/src/server/Controller/Payment.hs
+++ b/src/server/Controller/Payment.hs
@@ -28,7 +28,7 @@ import qualified Model.Json.EditPayment as Json
list :: ActionM ()
list =
- Secure.loggedAction (\_ -> do
+ Secure.loggedAction (\_ ->
(liftIO $ runDb Payment.list) >>= json
)
diff --git a/src/server/Design/Errors.hs b/src/server/Design/Errors.hs
new file mode 100644
index 0000000..57aaeee
--- /dev/null
+++ b/src/server/Design/Errors.hs
@@ -0,0 +1,55 @@
+{-# LANGUAGE OverloadedStrings #-}
+
+module Design.Errors
+ ( design
+ ) where
+
+import Clay
+
+import Design.Color as Color
+
+design :: Css
+design = do
+ position fixed
+ top (px 20)
+ left (pct 50)
+ "transform" -: "translateX(-50%)"
+ margin (px 0) (px 0) (px 0) (px 0)
+ disapearKeyframes
+
+ ".error" ? do
+ disapearAnimation
+ let errorColor = Color.chestnutRose -. 15
+ color errorColor
+ border solid (px 2) errorColor
+ backgroundColor Color.white
+ borderRadius (px 5) (px 5) (px 5) (px 5)
+ padding (px 5) (px 5) (px 5) (px 5)
+
+ before & display none
+
+disapearAnimation :: Css
+disapearAnimation = do
+ animationName "disapear"
+ animationDelay (sec 5)
+ animationDuration (sec 1)
+ animationFillMode forwards
+
+disapearKeyframes :: Css
+disapearKeyframes = keyframes
+ "disapear"
+ [ ( 10
+ , do
+ opacity 0
+ height (px 40)
+ lineHeight (px 40)
+ marginBottom (px 10)
+ )
+ , ( 100
+ , do
+ opacity 0
+ height (px 0)
+ lineHeight (px 0)
+ marginBottom (px 0)
+ )
+ ]
diff --git a/src/server/Design/Global.hs b/src/server/Design/Global.hs
index 26c1a42..e742978 100644
--- a/src/server/Design/Global.hs
+++ b/src/server/Design/Global.hs
@@ -12,6 +12,7 @@ import qualified Design.Header as Header
import qualified Design.SignIn as SignIn
import qualified Design.LoggedIn as LoggedIn
import qualified Design.Form as Form
+import qualified Design.Errors as Errors
import qualified Design.Dialog as Dialog
import qualified Design.Tooltip as Tooltip
@@ -29,6 +30,7 @@ global = do
header ? Header.design
".signIn" ? SignIn.design
".loggedIn" ? LoggedIn.design
+ ".errors" ? Errors.design
".dialog" ? Dialog.design
".tooltip" ? Tooltip.design
Form.design
diff --git a/src/server/Model/Message/Key.hs b/src/server/Model/Message/Key.hs
index 9126b61..8deca69 100644
--- a/src/server/Model/Message/Key.hs
+++ b/src/server/Model/Message/Key.hs
@@ -115,6 +115,16 @@ data Key =
| SmallerIntThan
| GreaterIntThan
+ -- Errors
+
+ | CreatePaymentError
+ | EditPaymentError
+ | DeletePaymentError
+ | CreateIncomeError
+ | EditIncomeError
+ | DeleteIncomeError
+ | SignOutError
+
-- Dialog
| Confirm
diff --git a/src/server/Model/Message/Translations.hs b/src/server/Model/Message/Translations.hs
index 4b698d7..994a56c 100644
--- a/src/server/Model/Message/Translations.hs
+++ b/src/server/Model/Message/Translations.hs
@@ -446,6 +446,43 @@ m l GreaterIntThan =
English -> "Integer smaller than {1} or equal required"
French -> "Entier inférieur ou égal à {1} requis"
+-- Errors
+
+m l CreatePaymentError =
+ case l of
+ English -> "Error at payment creation"
+ French -> "Erreur lors de la création du paiement"
+
+m l EditPaymentError =
+ case l of
+ English -> "Error at payment edition"
+ French -> "Erreur lors de la modification du paiement"
+
+m l DeletePaymentError =
+ case l of
+ English -> "Error at payment deletion"
+ French -> "Erreur lors de la suppression du paiement"
+
+m l CreateIncomeError =
+ case l of
+ English -> "Error at income creation"
+ French -> "Erreur lors de la création du revenu"
+
+m l EditIncomeError =
+ case l of
+ English -> "Error at income edition"
+ French -> "Erreur lors de la modification du revenu"
+
+m l DeleteIncomeError =
+ case l of
+ English -> "Error at income deletion"
+ French -> "Erreur lors de la suppression du revenu"
+
+m l SignOutError =
+ case l of
+ English -> "Error at sign out"
+ French -> "Erreur lors de la déconnexion"
+
-- Dialog
m l Confirm =