module Customers.View exposing (..) import Html exposing (..) import Html.Attributes exposing (colspan, href) import Css.Admin exposing (..) import Css.Classes as C import RemoteData exposing (..) import List import Common.Customer.Types exposing (..) import Customers.Types exposing (..) import Date.Extra exposing (toFormattedString) customerLink : String -> Html Msg customerLink id = a [ href ("/#customer/" ++ id) ] [ text (String.left 8 id) ] maybeText : Maybe String -> Html Msg maybeText maybeString = text (Maybe.withDefault "" maybeString) rowView : Customer -> Html Msg rowView customer = tr [ class [] ] [ td [] [ customerLink customer.id ] , td [] [ text (toFormattedString "yyyy-MM-dd HH:mm" customer.created) ] , td [] [ maybeText customer.phone ] , td [] [ maybeText customer.name ] , td [] [ maybeText customer.status ] ] tableView : Customers -> Html Msg tableView customers = if List.isEmpty customers then div [] [ text "No customers yet." ] else div [] [ h1 [] [ text "Customers" ] , table [ class [ C.TxTable ] ] [ thead [] [ tr [] [ td [] [ text "Id" ] , td [] [ text "Created" ] , td [] [ text "Phone" ] , td [] [ text "Name" ] , td [] [ text "Status" ] ] ] , tbody [] (List.map rowView customers) ] ] view : Model -> Html Msg view model = case model of NotAsked -> div [] [] Loading -> div [] [ text "Loading..." ] Failure err -> div [] [ text (toString err) ] Success customers -> div [] [ tableView customers ]