From b0d80a5458d7ba4546e5f01f5b6398ea6d23f981 Mon Sep 17 00:00:00 2001 From: Joris Date: Sun, 27 Mar 2016 21:59:46 +0200 Subject: Move view and models files --- src/client/elm/LoggedIn/View/Date.elm | 59 +++++++++++++++++++++++++++++++++ src/client/elm/LoggedIn/View/Expand.elm | 25 ++++++++++++++ src/client/elm/LoggedIn/View/Price.elm | 38 +++++++++++++++++++++ src/client/elm/LoggedIn/View/Table.elm | 4 +-- 4 files changed, 124 insertions(+), 2 deletions(-) create mode 100644 src/client/elm/LoggedIn/View/Date.elm create mode 100644 src/client/elm/LoggedIn/View/Expand.elm create mode 100644 src/client/elm/LoggedIn/View/Price.elm (limited to 'src/client/elm/LoggedIn/View') diff --git a/src/client/elm/LoggedIn/View/Date.elm b/src/client/elm/LoggedIn/View/Date.elm new file mode 100644 index 0000000..62c8be5 --- /dev/null +++ b/src/client/elm/LoggedIn/View/Date.elm @@ -0,0 +1,59 @@ +module LoggedIn.View.Date + ( renderShortDate + , renderLongDate + ) where + +import Date exposing (..) +import String + +import Model.Translations exposing (..) + +renderShortDate : Date -> Translations -> String +renderShortDate date translations = + let params = + [ String.pad 2 '0' (toString (Date.day date)) + , String.pad 2 '0' (toString (getMonthNumber (Date.month date))) + , toString (Date.year date) + ] + in getParamMessage params "ShortDate" translations + +renderLongDate : Date -> Translations -> String +renderLongDate date translations = + let params = + [ toString (Date.day date) + , (getMessage (getMonthKey (Date.month date)) translations) + , toString (Date.year date) + ] + in getParamMessage params "LongDate" translations + +getMonthNumber : Month -> Int +getMonthNumber month = + case month of + Jan -> 1 + Feb -> 2 + Mar -> 3 + Apr -> 4 + May -> 5 + Jun -> 6 + Jul -> 7 + Aug -> 8 + Sep -> 9 + Oct -> 10 + Nov -> 11 + Dec -> 12 + +getMonthKey : Month -> String +getMonthKey month = + case month of + Jan -> "January" + Feb -> "February" + Mar -> "March" + Apr -> "April" + May -> "May" + Jun -> "June" + Jul -> "July" + Aug -> "August" + Sep -> "September" + Oct -> "October" + Nov -> "November" + Dec -> "December" diff --git a/src/client/elm/LoggedIn/View/Expand.elm b/src/client/elm/LoggedIn/View/Expand.elm new file mode 100644 index 0000000..1055c1b --- /dev/null +++ b/src/client/elm/LoggedIn/View/Expand.elm @@ -0,0 +1,25 @@ +module LoggedIn.View.Expand + ( expand + , ExpandType(..) + ) where + +import Html exposing (..) +import Html.Attributes exposing (..) + +import View.Icon exposing (renderIcon) + +type ExpandType = ExpandUp | ExpandDown + +expand : ExpandType -> Bool -> Html +expand expandType isExpanded = + div + [ class "expand" ] + [ renderIcon (chevronIcon expandType isExpanded) ] + +chevronIcon : ExpandType -> Bool -> String +chevronIcon expandType isExpanded = + case (expandType, isExpanded) of + (ExpandUp, True) -> "chevron-down" + (ExpandUp, False) -> "chevron-up" + (ExpandDown, True) -> "chevron-up" + (ExpandDown, False) -> "chevron-down" diff --git a/src/client/elm/LoggedIn/View/Price.elm b/src/client/elm/LoggedIn/View/Price.elm new file mode 100644 index 0000000..e8b4c58 --- /dev/null +++ b/src/client/elm/LoggedIn/View/Price.elm @@ -0,0 +1,38 @@ +module LoggedIn.View.Price + ( price + ) where + +import String exposing (..) + +import Model exposing (Model) +import Model.Translations exposing (getMessage) + +price : Model -> Int -> String +price model amount = + ( formatInt amount + ++ " " + ++ model.conf.currency + ) + +formatInt : Int -> String +formatInt n = + abs n + |> toString + |> toList + |> List.reverse + |> group 3 + |> List.intersperse [' '] + |> List.concat + |> List.reverse + |> fromList + |> append (if n < 0 then "-" else "") + +group : Int -> List a -> List (List a) +group n xs = + if List.length xs <= n + then + [xs] + else + let take = List.take n xs + drop = List.drop n xs + in take :: (group n drop) diff --git a/src/client/elm/LoggedIn/View/Table.elm b/src/client/elm/LoggedIn/View/Table.elm index 7a156af..57167be 100644 --- a/src/client/elm/LoggedIn/View/Table.elm +++ b/src/client/elm/LoggedIn/View/Table.elm @@ -13,6 +13,8 @@ import Html.Events exposing (..) import LoggedIn.Action as LoggedInAction import LoggedIn.Model as LoggedInModel +import LoggedIn.View.Date exposing (..) +import LoggedIn.View.Price exposing (price) import Model exposing (Model) import Model.User exposing (getUserName) @@ -21,8 +23,6 @@ import Model.Translations exposing (getMessage) import Action exposing (..) import View.Icon exposing (renderIcon) -import View.Date exposing (..) -import View.Price exposing (price) paymentsTable : Address Action -> Model -> LoggedInModel.Model -> Html paymentsTable address model loggedInModel = -- cgit v1.2.3