diff options
Diffstat (limited to 'src/server')
-rw-r--r-- | src/server/Design/Animation/Opacity.hs | 17 | ||||
-rw-r--r-- | src/server/Design/Global.hs | 34 | ||||
-rw-r--r-- | src/server/Design/Header.hs | 92 | ||||
-rw-r--r-- | src/server/Design/LoggedIn.hs | 32 | ||||
-rw-r--r-- | src/server/Design/LoggedIn/Add.hs | 89 | ||||
-rw-r--r-- | src/server/Design/LoggedIn/Expandables.hs | 31 | ||||
-rw-r--r-- | src/server/Design/LoggedIn/Home.hs | 19 | ||||
-rw-r--r-- | src/server/Design/LoggedIn/Home/Add.hs | 87 | ||||
-rw-r--r-- | src/server/Design/LoggedIn/Home/Expandables.hs | 27 | ||||
-rw-r--r-- | src/server/Design/LoggedIn/Home/Pages.hs | 32 | ||||
-rw-r--r-- | src/server/Design/LoggedIn/Home/Table.hs | 97 | ||||
-rw-r--r-- | src/server/Design/LoggedIn/Income.hs | 10 | ||||
-rw-r--r-- | src/server/Design/LoggedIn/Pages.hs | 34 | ||||
-rw-r--r-- | src/server/Design/LoggedIn/Stat.hs | 10 | ||||
-rw-r--r-- | src/server/Design/LoggedIn/Table.hs | 99 | ||||
-rw-r--r-- | src/server/Design/SignIn.hs | 60 | ||||
-rw-r--r-- | src/server/Model/Message/Key.hs | 4 | ||||
-rw-r--r-- | src/server/Model/Message/Translations.hs | 36 |
18 files changed, 423 insertions, 387 deletions
diff --git a/src/server/Design/Animation/Opacity.hs b/src/server/Design/Animation/Opacity.hs deleted file mode 100644 index cc720fd..0000000 --- a/src/server/Design/Animation/Opacity.hs +++ /dev/null @@ -1,17 +0,0 @@ -{-# LANGUAGE OverloadedStrings #-} - -module Design.Animation.Opacity - ( opacityAnimation - ) where - -import Data.String (fromString) - -import Clay - -import Design.Animation.Keyframes - -opacityAnimation :: Css -opacityAnimation = do - animationName (fromString . show $ OpacityKeyframes) - animationDuration (sec 0.2) - animationTimingFunction ease diff --git a/src/server/Design/Global.hs b/src/server/Design/Global.hs index c41d06f..90dd842 100644 --- a/src/server/Design/Global.hs +++ b/src/server/Design/Global.hs @@ -8,17 +8,26 @@ import Clay import Data.Text.Lazy (Text) -import Design.Header -import Design.SignIn -import Design.LoggedIn +import qualified Design.Header as HeaderDesign +import qualified Design.SignIn as SignInDesign +import qualified Design.LoggedIn as LoggedInDesign + import Design.Animation.Keyframes +import Design.Color as Color + globalDesign :: Text globalDesign = renderWith compact [] global global :: Css global = do + header ? HeaderDesign.design + ".signIn" ? SignInDesign.design + ".loggedIn" ? LoggedInDesign.design + + allKeyframes + body ? do position relative minWidth (px 550) @@ -26,10 +35,15 @@ global = do a ? cursor pointer - allKeyframes - - signInDesign - - headerDesign - - loggedInDesign + h1 ? do + fontSize (px 20) + color Color.red + marginBottom (em 1) + + ul ? do + marginBottom (em 1) + li ? do + marginBottom (em 0.5) + before & do + content (stringContent "• ") + color Color.red diff --git a/src/server/Design/Header.hs b/src/server/Design/Header.hs index e361cb1..d4546f8 100644 --- a/src/server/Design/Header.hs +++ b/src/server/Design/Header.hs @@ -1,7 +1,7 @@ {-# LANGUAGE OverloadedStrings #-} module Design.Header - ( headerDesign + ( design ) where import Data.Monoid ((<>)) @@ -11,51 +11,49 @@ import Clay import Design.Color as C import Design.Constants -headerDesign :: Css -headerDesign = - - header ? do - let headerHeight = px 80 - let headerPadding = px 20 - let darkenedRed = C.red +. 10 - lineHeight headerHeight - height headerHeight - marginBottom blockMarginBottom +design :: Css +design = do + let headerHeight = px 80 + let headerPadding = px 20 + let darkenedRed = C.red +. 10 + lineHeight headerHeight + height headerHeight + marginBottom blockMarginBottom + position relative + backgroundColor C.red + color C.white + + ".item" ? do + float floatLeft + paddingLeft headerPadding + paddingRight headerPadding + hover & backgroundColor darkenedRed + focus & backgroundColor darkenedRed position relative - backgroundColor C.red + ".current" & after & do + display block + content (stringContent "") + height (px 5) + width (pct 100) + position absolute + bottom (px 0) + left (px 0) + backgroundColor C.white + + ".title" ? do + height (pct 100) + fontSize (px 35) + textAlign (alignSide sideLeft) + paddingLeft headerPadding + paddingRight headerPadding + + (".name" <> ".signOut") ? float floatRight + + ".name" ? do + paddingLeft headerPadding + paddingRight headerPadding + + ".signOut" ? do + height (pct 100) + fontSize iconFontSize color C.white - - ".item" ? do - float floatLeft - paddingLeft headerPadding - paddingRight headerPadding - hover & backgroundColor darkenedRed - focus & backgroundColor darkenedRed - position relative - ".current" & after & do - display block - content (stringContent "") - height (px 5) - width (pct 100) - position absolute - bottom (px 0) - left (px 0) - backgroundColor C.white - - ".title" ? do - height (pct 100) - fontSize (px 35) - textAlign (alignSide sideLeft) - paddingLeft headerPadding - paddingRight headerPadding - - (".name" <> ".signOut") ? float floatRight - - ".name" ? do - paddingLeft headerPadding - paddingRight headerPadding - - ".signOut" ? do - height (pct 100) - fontSize iconFontSize - color C.white diff --git a/src/server/Design/LoggedIn.hs b/src/server/Design/LoggedIn.hs index d35276b..63ff413 100644 --- a/src/server/Design/LoggedIn.hs +++ b/src/server/Design/LoggedIn.hs @@ -1,28 +1,22 @@ {-# LANGUAGE OverloadedStrings #-} module Design.LoggedIn - ( loggedInDesign + ( design ) where -import Clay - -import Design.LoggedIn.Add -import Design.LoggedIn.Expandables -import Design.LoggedIn.Table -import Design.LoggedIn.Pages -import Design.Animation.Opacity - -loggedInDesign :: Css -loggedInDesign = +import Data.Monoid ((<>)) - ".loggedIn" ? do - - opacityAnimation - - addDesign +import Clay - expandablesDesign +import qualified Design.LoggedIn.Home as HomeDesign +import qualified Design.LoggedIn.Income as IncomeDesign +import qualified Design.LoggedIn.Stat as StatDesign - tableDesign +design :: Css +design = do + ".home" ? HomeDesign.design + ".income" ? IncomeDesign.design + ".stat" ? StatDesign.design - pagesDesign + (".income" <> ".stat") ? do + "margin" -: "0 2vw" diff --git a/src/server/Design/LoggedIn/Add.hs b/src/server/Design/LoggedIn/Add.hs deleted file mode 100644 index ef0603c..0000000 --- a/src/server/Design/LoggedIn/Add.hs +++ /dev/null @@ -1,89 +0,0 @@ -{-# LANGUAGE OverloadedStrings #-} - -module Design.LoggedIn.Add - ( addDesign - ) where - -import Data.Monoid ((<>)) - -import Clay - -import Design.Color as C -import Design.Helper -import Design.Constants - -addDesign :: Css -addDesign = - - form # ".addPayment" ? do - centeredWithMargin - marginBottom blockMarginBottom - display flex - "justify-content" -: "center" - - ".name" <> ".cost" ? do - position relative - display flex - marginRight (pct blockPercentMargin) - label ? do - fontWeight bold - display inlineBlock - width (px 50) - textAlign (alignSide sideCenter) - backgroundColor C.darkGrey - color C.white - height (px inputHeight) - lineHeight (px inputHeight) - fontSize (px 22) - verticalAlign middle - cursor cursorText - borderRadius (px 0) radius radius (px 0) - input ? do - defaultInput inputHeight - borderRadius radius (px 0) (px 0) radius - "width" -: "calc(100% - 40px)" - "input:focus + label" ? backgroundColor C.grey - hover & do - input ? borderColor C.grey - label ? backgroundColor C.grey - - ".name" ? minWidth (px 150) - - button # ".frequency" ? do - fontSize (pct 90) - marginRight (pct blockPercentMargin) - - (".punctual" <> ".monthly") ? do - defaultButton C.lightGrey C.darkGrey (px $ inputHeight `Prelude.div` 2) focusLighten - paddingLeft (px 15) - paddingRight (px 15) - ".selected" & do - backgroundColor C.blue - color C.white - - hover & (".punctual" <> ".monthly") ? - ".selected" & backgroundColor (focusLighten C.blue) - - focus & (".punctual" <> ".monthly") ? - ".selected" & backgroundColor (focusLighten C.blue) - - ".punctual" ? borderRadius radius radius 0 0 - ".monthly" ? borderRadius 0 0 radius radius - - button # ".add" ? do - defaultButton C.red C.white (px inputHeight) focusLighten - paddingLeft (px 15) - paddingRight (px 15) - i ? marginLeft (px 10) - ".waitingServer" & ("cursor" -: "not-allowed") - - ".name.error" <> ".cost.error" ? do - input ? borderColor C.redError - label ? backgroundColor C.redError - "input:focus + label" ? backgroundColor C.redError - - ".errorMessage" ? do - position absolute - color C.redError - top (px (inputHeight + 10)) - left (px 0) diff --git a/src/server/Design/LoggedIn/Expandables.hs b/src/server/Design/LoggedIn/Expandables.hs deleted file mode 100644 index 90ea32d..0000000 --- a/src/server/Design/LoggedIn/Expandables.hs +++ /dev/null @@ -1,31 +0,0 @@ -{-# LANGUAGE OverloadedStrings #-} - -module Design.LoggedIn.Expandables - ( expandablesDesign - ) where - --- import Data.Monoid ((<>)) --- -import Clay - -import Design.Color as C -import Design.Helper -import Design.Constants - -expandablesDesign :: Css -expandablesDesign = - - ".expandables" ? do - - ".expand" ? do - position absolute - right blockPadding - bottom (px 2) - - ".monthlyPayments" ? expandBlock C.blue C.white (px inputHeight) - - ".account" ? do - expandBlock C.green C.white (px inputHeight) - ".userName" ? marginRight (px 10) - - ".detail" |> ".header" ? borderRadius radius radius 0 0 diff --git a/src/server/Design/LoggedIn/Home.hs b/src/server/Design/LoggedIn/Home.hs new file mode 100644 index 0000000..be99a2c --- /dev/null +++ b/src/server/Design/LoggedIn/Home.hs @@ -0,0 +1,19 @@ +{-# LANGUAGE OverloadedStrings #-} + +module Design.LoggedIn.Home + ( design + ) where + +import Clay + +import qualified Design.LoggedIn.Home.Add as AddDesign +import qualified Design.LoggedIn.Home.Expandables as ExpandablesDesign +import qualified Design.LoggedIn.Home.Table as TableDesign +import qualified Design.LoggedIn.Home.Pages as PagesDesign + +design :: Css +design = do + form # ".addPayment" ? AddDesign.design + ".expandables" ? ExpandablesDesign.design + ".table" ? TableDesign.design + ".pages" ? PagesDesign.design diff --git a/src/server/Design/LoggedIn/Home/Add.hs b/src/server/Design/LoggedIn/Home/Add.hs new file mode 100644 index 0000000..7613ba3 --- /dev/null +++ b/src/server/Design/LoggedIn/Home/Add.hs @@ -0,0 +1,87 @@ +{-# LANGUAGE OverloadedStrings #-} + +module Design.LoggedIn.Home.Add + ( design + ) where + +import Data.Monoid ((<>)) + +import Clay + +import Design.Color as C +import Design.Helper +import Design.Constants + +design :: Css +design = do + centeredWithMargin + marginBottom blockMarginBottom + display flex + "justify-content" -: "center" + + ".name" <> ".cost" ? do + position relative + display flex + marginRight (pct blockPercentMargin) + label ? do + fontWeight bold + display inlineBlock + width (px 50) + textAlign (alignSide sideCenter) + backgroundColor C.darkGrey + color C.white + height (px inputHeight) + lineHeight (px inputHeight) + fontSize (px 22) + verticalAlign middle + cursor cursorText + borderRadius (px 0) radius radius (px 0) + input ? do + defaultInput inputHeight + borderRadius radius (px 0) (px 0) radius + "width" -: "calc(100% - 40px)" + "input:focus + label" ? backgroundColor C.grey + hover & do + input ? borderColor C.grey + label ? backgroundColor C.grey + + ".name" ? minWidth (px 150) + + button # ".frequency" ? do + fontSize (pct 90) + marginRight (pct blockPercentMargin) + + (".punctual" <> ".monthly") ? do + defaultButton C.lightGrey C.darkGrey (px $ inputHeight `Prelude.div` 2) focusLighten + paddingLeft (px 15) + paddingRight (px 15) + ".selected" & do + backgroundColor C.blue + color C.white + + hover & (".punctual" <> ".monthly") ? + ".selected" & backgroundColor (focusLighten C.blue) + + focus & (".punctual" <> ".monthly") ? + ".selected" & backgroundColor (focusLighten C.blue) + + ".punctual" ? borderRadius radius radius 0 0 + ".monthly" ? borderRadius 0 0 radius radius + + button # ".add" ? do + defaultButton C.red C.white (px inputHeight) focusLighten + paddingLeft (px 15) + paddingRight (px 15) + i ? marginLeft (px 10) + ".waitingServer" & ("cursor" -: "not-allowed") + + ".name.error" <> ".cost.error" ? do + input ? borderColor C.redError + label ? backgroundColor C.redError + "input:focus + label" ? backgroundColor C.redError + + ".errorMessage" ? do + position absolute + color C.redError + top (px (inputHeight + 10)) + left (px 0) diff --git a/src/server/Design/LoggedIn/Home/Expandables.hs b/src/server/Design/LoggedIn/Home/Expandables.hs new file mode 100644 index 0000000..5ba5711 --- /dev/null +++ b/src/server/Design/LoggedIn/Home/Expandables.hs @@ -0,0 +1,27 @@ +{-# LANGUAGE OverloadedStrings #-} + +module Design.LoggedIn.Home.Expandables + ( design + ) where + +import Clay + +import Design.Color as C +import Design.Helper +import Design.Constants + +design :: Css +design = do + + ".expand" ? do + position absolute + right blockPadding + bottom (px 2) + + ".monthlyPayments" ? expandBlock C.blue C.white (px inputHeight) + + ".account" ? do + expandBlock C.green C.white (px inputHeight) + ".userName" ? marginRight (px 10) + + ".detail" |> ".header" ? borderRadius radius radius 0 0 diff --git a/src/server/Design/LoggedIn/Home/Pages.hs b/src/server/Design/LoggedIn/Home/Pages.hs new file mode 100644 index 0000000..932865c --- /dev/null +++ b/src/server/Design/LoggedIn/Home/Pages.hs @@ -0,0 +1,32 @@ +{-# LANGUAGE OverloadedStrings #-} + +module Design.LoggedIn.Home.Pages + ( design + ) where + +import Clay + +import Design.Color as C +import Design.Helper +import Design.Constants + +design :: Css +design = do + padding (px 30) (px 30) (px 30) (px 30) + textAlign (alignSide (sideCenter)) + clearFix + + ".page" ? do + defaultButton C.white C.darkGrey (px 50) focusDarken + display inlineBlock + border solid (px 2) C.darkGrey + marginRight (px 10) + paddingLeft (px 10) + paddingRight (px 10) + fontWeight bold + + ":not(.current)" & cursor pointer + + ".current" & do + borderColor C.red + color C.red diff --git a/src/server/Design/LoggedIn/Home/Table.hs b/src/server/Design/LoggedIn/Home/Table.hs new file mode 100644 index 0000000..58ffb33 --- /dev/null +++ b/src/server/Design/LoggedIn/Home/Table.hs @@ -0,0 +1,97 @@ +{-# LANGUAGE OverloadedStrings #-} + +module Design.LoggedIn.Home.Table + ( design + ) where + +import Data.Monoid ((<>)) + +import Clay +import qualified Clay.Display as D + +import Design.Color as C +import Design.Media +import Design.Constants +import Design.Helper + +design :: Css +design = do + display D.table + width (pct 100) + textAlign (alignSide (sideCenter)) + "border-spacing" -: "10 px" + + ".header" <> ".row" ? display tableRow + let headerHeight = (px 70) + + ".header" ? do + fontWeight bold + backgroundColor C.blue + color C.white + fontSize iconFontSize + lineHeight headerHeight + + ".row" ? do + fontSize (px 18) + lineHeight (px rowHeightPx) + + hover & do + let (borderW, triangleW, triangleH) = (4, 6, 8) + ".cell:first-child::before" ? do + display block + content (stringContent "") + position absolute + top (px 0) + left (px 0) + + width (px borderW) + height (px rowHeightPx) + backgroundColor C.green + + ".cell:first-child::after" ? do + display block + content (stringContent "") + position absolute + top (px (rowHeightPx `Prelude.div` 2 - triangleH)) + left (px borderW) + + width (px 0) + height (px 0) + borderTop solid (px triangleH) transparent + borderBottom solid (px triangleH) transparent + borderLeft solid (px triangleW) C.green + + nthChild "odd" & do + backgroundColor C.lightGrey + ".edition" & do + backgroundColor C.paymentFocus + ".delete" |> button ? visibility visible + + ".cell" ? do + display tableCell + position relative + ".category" & width (pct 40) + ".cost" & do + width (pct 17) + ".refund" & color C.green + ".user" & width (pct 20) + ".date" & do + width (pct 20) + smallScreen $ do + ".shortDate" ? display inline + ".longDate" ? display none + largeScreen $ do + ".shortDate" ? display none + ".longDate" ? display inline + ".delete" & do + position relative + width (pct 3) + textAlign (alignSide sideCenter) + button ? do + defaultButton C.red C.white (px rowHeightPx) focusLighten + borderRadius (px 0) (px 0) (px 0) (px 0) + position absolute + top (px 0) + right (px 0) + width (pct 100) + visibility hidden diff --git a/src/server/Design/LoggedIn/Income.hs b/src/server/Design/LoggedIn/Income.hs new file mode 100644 index 0000000..b7efb9e --- /dev/null +++ b/src/server/Design/LoggedIn/Income.hs @@ -0,0 +1,10 @@ +{-# LANGUAGE OverloadedStrings #-} + +module Design.LoggedIn.Income + ( design + ) where + +import Clay + +design :: Css +design = h1 ? paddingBottom (px 0) diff --git a/src/server/Design/LoggedIn/Pages.hs b/src/server/Design/LoggedIn/Pages.hs deleted file mode 100644 index f7946b8..0000000 --- a/src/server/Design/LoggedIn/Pages.hs +++ /dev/null @@ -1,34 +0,0 @@ -{-# LANGUAGE OverloadedStrings #-} - -module Design.LoggedIn.Pages - ( pagesDesign - ) where - -import Clay - -import Design.Color as C -import Design.Helper -import Design.Constants - -pagesDesign :: Css -pagesDesign = - - ".pages" ? do - padding (px 30) (px 30) (px 30) (px 30) - textAlign (alignSide (sideCenter)) - clearFix - - ".page" ? do - defaultButton C.white C.darkGrey (px 50) focusDarken - display inlineBlock - border solid (px 2) C.darkGrey - marginRight (px 10) - paddingLeft (px 10) - paddingRight (px 10) - fontWeight bold - - ":not(.current)" & cursor pointer - - ".current" & do - borderColor C.red - color C.red diff --git a/src/server/Design/LoggedIn/Stat.hs b/src/server/Design/LoggedIn/Stat.hs new file mode 100644 index 0000000..42bcb71 --- /dev/null +++ b/src/server/Design/LoggedIn/Stat.hs @@ -0,0 +1,10 @@ +{-# LANGUAGE OverloadedStrings #-} + +module Design.LoggedIn.Stat + ( design + ) where + +import Clay + +design :: Css +design = h1 ? paddingBottom (px 0) diff --git a/src/server/Design/LoggedIn/Table.hs b/src/server/Design/LoggedIn/Table.hs deleted file mode 100644 index e5ed4bf..0000000 --- a/src/server/Design/LoggedIn/Table.hs +++ /dev/null @@ -1,99 +0,0 @@ -{-# LANGUAGE OverloadedStrings #-} - -module Design.LoggedIn.Table - ( tableDesign - ) where - -import Data.Monoid ((<>)) - -import Clay -import qualified Clay.Display as D - -import Design.Color as C -import Design.Media -import Design.Constants -import Design.Helper - -tableDesign :: Css -tableDesign = - - ".table" ? do - display D.table - width (pct 100) - textAlign (alignSide (sideCenter)) - "border-spacing" -: "10 px" - - ".header" <> ".row" ? display tableRow - let headerHeight = (px 70) - - ".header" ? do - fontWeight bold - backgroundColor C.blue - color C.white - fontSize iconFontSize - lineHeight headerHeight - - ".row" ? do - fontSize (px 18) - lineHeight (px rowHeightPx) - - hover & do - let (borderW, triangleW, triangleH) = (4, 6, 8) - ".cell:first-child::before" ? do - display block - content (stringContent "") - position absolute - top (px 0) - left (px 0) - - width (px borderW) - height (px rowHeightPx) - backgroundColor C.green - - ".cell:first-child::after" ? do - display block - content (stringContent "") - position absolute - top (px (rowHeightPx `Prelude.div` 2 - triangleH)) - left (px borderW) - - width (px 0) - height (px 0) - borderTop solid (px triangleH) transparent - borderBottom solid (px triangleH) transparent - borderLeft solid (px triangleW) C.green - - nthChild "odd" & do - backgroundColor C.lightGrey - ".edition" & do - backgroundColor C.paymentFocus - ".delete" |> button ? visibility visible - - ".cell" ? do - display tableCell - position relative - ".category" & width (pct 40) - ".cost" & do - width (pct 17) - ".refund" & color C.green - ".user" & width (pct 20) - ".date" & do - width (pct 20) - smallScreen $ do - ".shortDate" ? display inline - ".longDate" ? display none - largeScreen $ do - ".shortDate" ? display none - ".longDate" ? display inline - ".delete" & do - position relative - width (pct 3) - textAlign (alignSide sideCenter) - button ? do - defaultButton C.red C.white (px rowHeightPx) focusLighten - borderRadius (px 0) (px 0) (px 0) (px 0) - position absolute - top (px 0) - right (px 0) - width (pct 100) - visibility hidden diff --git a/src/server/Design/SignIn.hs b/src/server/Design/SignIn.hs index 814cca3..c319d1e 100644 --- a/src/server/Design/SignIn.hs +++ b/src/server/Design/SignIn.hs @@ -1,7 +1,7 @@ {-# LANGUAGE OverloadedStrings #-} module Design.SignIn - ( signInDesign + ( design ) where import Clay @@ -10,33 +10,31 @@ import Design.Color as C import Design.Helper import Design.Constants (focusLighten) -signInDesign :: Css -signInDesign = - - ".signIn" ? do - - form ? do - let inputHeight = 50 - width (px 500) - marginTop (px 100) - marginLeft auto - marginRight auto - - input ? do - defaultInput inputHeight - display block - width (pct 100) - marginBottom (px 10) - - button ? do - iconButton C.blue C.white (px inputHeight) focusLighten - display block - width (pct 100) - fontSize (em 1.2) - ".waitingServer" & ("cursor" -: "not-allowed") - - ".result" ? do - marginTop (px 40) - textAlign (alignSide sideCenter) - ".success" ? color C.green - ".error" ? color C.redError +design :: Css +design = do + + form ? do + let inputHeight = 50 + width (px 500) + marginTop (px 100) + marginLeft auto + marginRight auto + + input ? do + defaultInput inputHeight + display block + width (pct 100) + marginBottom (px 10) + + button ? do + iconButton C.blue C.white (px inputHeight) focusLighten + display block + width (pct 100) + fontSize (em 1.2) + ".waitingServer" & ("cursor" -: "not-allowed") + + ".result" ? do + marginTop (px 40) + textAlign (alignSide sideCenter) + ".success" ? color C.green + ".error" ? color C.redError diff --git a/src/server/Model/Message/Key.hs b/src/server/Model/Message/Key.hs index 83d0467..b42cdcd 100644 --- a/src/server/Model/Message/Key.hs +++ b/src/server/Model/Message/Key.hs @@ -62,10 +62,14 @@ data Key = | Monthly | SingularMonthlyCount | PluralMonthlyCount + | Payment + | Payments -- Statistics | Statistics + | Overall + | ByMonths -- Income diff --git a/src/server/Model/Message/Translations.hs b/src/server/Model/Message/Translations.hs index 8c1ba08..1d3fbe6 100644 --- a/src/server/Model/Message/Translations.hs +++ b/src/server/Model/Message/Translations.hs @@ -231,18 +231,24 @@ m l Monthly = French -> "Mensuel" m l SingularMonthlyCount = - T.concat - [ case l of - English -> "{1} monthly payment of {2}" - French -> "{1} paiement mensuel de {2}" - ] + case l of + English -> "{1} monthly payment of {2}" + French -> "{1} paiement mensuel de {2}" m l PluralMonthlyCount = - T.concat - [ case l of - English -> "{1} monthly payments totalling {2}" - French -> "{1} paiements mensuels comptabilisant {2}" - ] + case l of + English -> "{1} monthly payments totalling {2}" + French -> "{1} paiements mensuels comptabilisant {2}" + +m l Payment = + case l of + English -> "payment" + French -> "paiement" + +m l Payments = + case l of + English -> "payments" + French -> "paiements" -- Statistics @@ -251,6 +257,16 @@ m l Statistics = English -> "Statistics" French -> "Statistiques" +m l Overall = + case l of + English -> "Overall" + French -> "Global" + +m l ByMonths = + case l of + English -> "By months" + French -> "Par mois" + -- Income m l AddIncome = |