From 09182b51eb2200e3c52cc896057717b5169b4a1d Mon Sep 17 00:00:00 2001 From: Pavel Murygin Date: Wed, 30 Jun 2021 23:59:37 +0300 Subject: [PATCH] services displayed everywhere --- src/Pages/BlueprintPage.elm | 17 ++--------------- src/Pages/Hub.elm | 23 +++++++++++++---------- src/Services/ServiceRow.elm | 29 +++++++++++++++++++++++++++-- src/Services/ServicesTable.elm | 15 ++++++++++++++- 4 files changed, 56 insertions(+), 28 deletions(-) diff --git a/src/Pages/BlueprintPage.elm b/src/Pages/BlueprintPage.elm index 364ad7a..f720547 100644 --- a/src/Pages/BlueprintPage.elm +++ b/src/Pages/BlueprintPage.elm @@ -10,6 +10,7 @@ import List.Unique exposing (..) import Maybe.Extra as Maybe import Msg exposing (Msg(..)) import Palette exposing (classes, darkRed, redFont) +import Services.ServiceRow import Services.ServicesTable import Utils.Html exposing (..) @@ -43,21 +44,7 @@ fromCache cache id = Dict.get id cache.servicesByBlueprintId |> Maybe.withDefault Array.empty |> Array.toList - |> List.map - (\mbSrvId -> - Dict.get mbSrvId cache.servicesById - |> Maybe.map - (\srv -> - { -- name = "srv.name" - blueprintName = bp |> Maybe.map .name |> Maybe.withDefault "" - , blueprintId = id - , serviceId = srv.id - , peerId = "peerId" - , ip = "id" - } - ) - ) - |> Maybe.values + |> Services.ServicesTable.fromCache cache res = Maybe.map diff --git a/src/Pages/Hub.elm b/src/Pages/Hub.elm index a8187ec..16b8af7 100644 --- a/src/Pages/Hub.elm +++ b/src/Pages/Hub.elm @@ -2,9 +2,13 @@ module Pages.Hub exposing (Model, fromCache, init, view) import Blueprints.BlueprintsList import Cache +import Dict import Html exposing (Html, a, div, span, text) import Html.Attributes exposing (attribute) +import Maybe.Extra as Maybe import Palette exposing (classes, redFont) +import Services.ServiceRow +import Services.ServicesTable @@ -15,14 +19,10 @@ type alias FmModel = {} -type alias ServicesModel = - {} - - type alias Model = { featuredBlueprints : Blueprints.BlueprintsList.Model , featuredModules : FmModel - , services : ServicesModel + , services : Services.ServicesTable.Model } @@ -30,7 +30,7 @@ init : Model init = { featuredBlueprints = [] , featuredModules = {} - , services = {} + , services = [] } @@ -38,7 +38,10 @@ fromCache : Cache.Model -> Model fromCache cache = { featuredBlueprints = Blueprints.BlueprintsList.fromCache cache , featuredModules = {} - , services = {} + , services = + cache.servicesById + |> Dict.keys + |> Services.ServicesTable.fromCache cache } @@ -56,9 +59,9 @@ view model = , div [ classes "pt4 f3 fw5 pb4" ] [ text "Featured Modules" ] --, Modules.View.view model - , div [ classes "pt4 f3 fw5 pb4" ] [ text "Services" ] - - --, Tuple.second (Instances.View.view model (\_ -> True)) + , div [ classes "pt4 f3 fw5 pb4" ] + [ text "Services" ] + , Services.ServicesTable.view model.services ] diff --git a/src/Services/ServiceRow.elm b/src/Services/ServiceRow.elm index a6ed8cf..665af4e 100644 --- a/src/Services/ServiceRow.elm +++ b/src/Services/ServiceRow.elm @@ -1,6 +1,7 @@ -module Services.ServiceRow exposing (Model, view) +module Services.ServiceRow exposing (Model, fromCache, view) -import Cache exposing (BlueprintId) +import Cache exposing (BlueprintId, ServiceId) +import Dict exposing (Dict) import Html exposing (..) import Html.Attributes exposing (..) import Palette exposing (classes, shortHashRaw) @@ -19,6 +20,30 @@ type alias Model = } +fromCache : Cache.Model -> ServiceId -> Maybe Model +fromCache cache id = + let + srv = + Dict.get id cache.servicesById + + bp = + srv |> Maybe.andThen (\x -> Dict.get x.blueprintId cache.blueprintsById) + + res = + srv + |> Maybe.map + (\x -> + { blueprintName = bp |> Maybe.map .name |> Maybe.withDefault "" + , blueprintId = bp |> Maybe.map .id |> Maybe.withDefault "" + , serviceId = id + , peerId = "peerId" + , ip = "id" + } + ) + in + res + + -- view diff --git a/src/Services/ServicesTable.elm b/src/Services/ServicesTable.elm index bb5ba75..b636c2a 100644 --- a/src/Services/ServicesTable.elm +++ b/src/Services/ServicesTable.elm @@ -1,8 +1,10 @@ -module Services.ServicesTable exposing (Model, view) +module Services.ServicesTable exposing (Model, fromCache, view) import Cache exposing (ServiceId) import Html exposing (..) import Html.Attributes exposing (..) +import Maybe.Extra as Maybe +import Msg exposing (Msg(..)) import Palette exposing (classes) import Services.ServiceRow @@ -15,6 +17,17 @@ type alias Model = List Services.ServiceRow.Model +fromCache : Cache.Model -> List ServiceId -> Model +fromCache cache services = + services + |> List.map (Services.ServiceRow.fromCache cache) + |> Maybe.values + + + +-- view + + view : Model -> Html msg view model = div [ classes "pa1 bg-white br3 overflow-auto" ]