module View.Payments.Table ( paymentsTable ) where import Html exposing (..) import Html.Attributes exposing (..) import Html.Events exposing (..) import Date import Date exposing (Date) import String exposing (append) import Model exposing (Model) import Model.Payment exposing (Payments, Payment) import Model.View.PaymentView exposing (PaymentView) import Update exposing (..) import Update.Payment exposing (..) import View.Icon exposing (renderIcon) import View.Date exposing (renderDate) paymentsTable : Model -> PaymentView -> Html paymentsTable model paymentView = div [ class "table" ] ([ div [ class "header" ] [ div [ class "cell category" ] [ renderIcon "shopping-cart" ] , div [ class "cell cost" ] [ renderIcon "euro" ] , div [ class "cell user" ] [ renderIcon "user" ] , div [ class "cell date" ] [ renderIcon "calendar" ] ] ] ++ (paymentLines model paymentView)) paymentLines : Model -> PaymentView -> List Html paymentLines model paymentView = paymentView.payments |> List.sortBy (Date.toTime << .creation) |> List.reverse |> List.map (paymentLine model paymentView) paymentLine : Model -> PaymentView -> Payment -> Html paymentLine model paymentView payment = a [ class ("row " ++ (if paymentView.edition == Just payment.id then "edition" else "")) , onClick actions.address (UpdatePayment (ToggleEdit payment.id)) ] [ div [ class "cell" ] [ text payment.name ] , div [ class "cell" ] [ text ((toString payment.cost) ++ " €") ] , div [ class "cell" ] [ text payment.userName ] , div [ class "cell" ] [ text (renderDate payment.creation model.translations) ] ]