From 0ef75fa71dcba2e903465ee64734c51d0ba9716a Mon Sep 17 00:00:00 2001 From: Rok Garbas Date: Mon, 24 Aug 2020 12:11:53 +0200 Subject: [PATCH] allways display default value for fields in result details (#155) fixes #154 --- src/Page/Options.elm | 52 +++++++--------- src/Page/Packages.elm | 137 ++++++++++++++++++++++-------------------- 2 files changed, 95 insertions(+), 94 deletions(-) diff --git a/src/Page/Options.elm b/src/Page/Options.elm index 32c654e..296f46d 100644 --- a/src/Page/Options.elm +++ b/src/Page/Options.elm @@ -13,6 +13,7 @@ import Html exposing ( Html , a + , code , dd , div , dl @@ -205,9 +206,12 @@ viewResultItemDetails channel item = Err _ -> [] - asCode value = + asPre value = pre [] [ text value ] + asCode value = + code [] [ text value ] + githubUrlPrefix branch = "https://github.com/NixOS/nixpkgs-channels/blob/" ++ branch ++ "/" @@ -235,43 +239,31 @@ viewResultItemDetails channel item = _ -> wrapWith value + + withEmpty wrapWith maybe = + case maybe of + Nothing -> + asPre default + + Just "" -> + asPre default + + Just value -> + wrapWith value in dl [ class "dl-horizontal" ] [ dt [] [ text "Name" ] - , dd [] - [ item.source.name - |> asText - ] + , dd [] [ withEmpty asText (Just item.source.name) ] , dt [] [ text "Description" ] - , dd [] - [ item.source.description - |> Maybe.withDefault default - |> asText - ] + , dd [] [ withEmpty asText item.source.description ] , dt [] [ text "Default value" ] - , dd [] - [ item.source.default - |> Maybe.withDefault default - |> wrapped asCode - ] + , dd [] [ withEmpty asCode item.source.default ] , dt [] [ text "Type" ] - , dd [] - [ item.source.type_ - |> Maybe.withDefault default - |> asCode - ] + , dd [] [ withEmpty asPre item.source.type_ ] , dt [] [ text "Example value" ] - , dd [] - [ item.source.example - |> Maybe.withDefault default - |> wrapped asCode - ] + , dd [] [ withEmpty (wrapped asCode) item.source.example ] , dt [] [ text "Declared in" ] - , dd [] - [ item.source.source - |> Maybe.withDefault default - |> asGithubLink - ] + , dd [] [ withEmpty asGithubLink item.source.source ] ] diff --git a/src/Page/Packages.elm b/src/Page/Packages.elm index d051fc3..637755f 100644 --- a/src/Page/Packages.elm +++ b/src/Page/Packages.elm @@ -19,6 +19,7 @@ import Html , dl , dt , li + , pre , table , tbody , td @@ -265,17 +266,6 @@ viewResultItemDetails channel item = Nothing -> text <| cleanPosition value - withDefault wrapWith maybe = - case maybe of - Nothing -> - text default - - Just "" -> - text default - - Just value -> - wrapWith value - mainPlatforms platform = List.member platform [ "x86_64-linux" @@ -299,81 +289,100 @@ viewResultItemDetails channel item = |> List.map (showPlatform hydra) showPlatform hydra platform = - li [] - [ case - ( getHydraDetailsForPlatform hydra platform - , Search.channelDetailsFromId channel - ) - of - ( Just hydraDetails, _ ) -> - a - [ href <| "https://hydra.nixos.org/build/" ++ String.fromInt hydraDetails.build_id - ] - [ text platform - ] + case + ( getHydraDetailsForPlatform hydra platform + , Search.channelDetailsFromId channel + ) + of + ( Just hydraDetails, _ ) -> + a + [ href <| "https://hydra.nixos.org/build/" ++ String.fromInt hydraDetails.build_id + ] + [ text platform + ] - ( Nothing, Just channelDetails ) -> - a - [ href <| "https://hydra.nixos.org/job/" ++ channelDetails.jobset ++ "/nixpkgs." ++ item.source.attr_name ++ "." ++ platform - ] - [ text platform - ] + ( Nothing, Just channelDetails ) -> + a + [ href <| "https://hydra.nixos.org/job/" ++ channelDetails.jobset ++ "/nixpkgs." ++ item.source.attr_name ++ "." ++ platform + ] + [ text platform + ] - ( _, _ ) -> - text platform - ] + ( _, _ ) -> + text platform showLicence license = - li [] - [ case ( license.fullName, license.url ) of - ( Nothing, Nothing ) -> - text default + case ( license.fullName, license.url ) of + ( Nothing, Nothing ) -> + text default - ( Just fullName, Nothing ) -> - text fullName + ( Just fullName, Nothing ) -> + text fullName - ( Nothing, Just url ) -> - a [ href url ] [ text default ] + ( Nothing, Just url ) -> + a [ href url ] [ text default ] - ( Just fullName, Just url ) -> - a [ href url ] [ text fullName ] - ] + ( Just fullName, Just url ) -> + a [ href url ] [ text fullName ] showMaintainer maintainer = - li [] - [ a - [ href <| - case maintainer.github of - Just github -> - "https://github.com/" ++ github + a + [ href <| + case maintainer.github of + Just github -> + "https://github.com/" ++ github - Nothing -> - "#" - ] - [ text <| maintainer.name ++ " <" ++ maintainer.email ++ ">" ] + Nothing -> + "#" ] + [ text <| maintainer.name ++ " <" ++ maintainer.email ++ ">" ] + + asPre value = + pre [] [ text value ] + + asCode value = + code [] [ text value ] + + asList list = + case list of + [] -> + asPre default + + _ -> + ul [ class "inline" ] <| List.map (\i -> li [] [ i ]) list + + withEmpty wrapWith maybe = + case maybe of + Nothing -> + asPre default + + Just "" -> + asPre default + + Just value -> + wrapWith value in dl [ class "dl-horizontal" ] [ dt [] [ text "Attribute Name" ] - , dd [] [ asText item.source.attr_name ] + , dd [] [ withEmpty asText (Just item.source.attr_name) ] , dt [] [ text "Name" ] - , dd [] [ asText item.source.pname ] + , dd [] [ withEmpty asText (Just item.source.pname) ] , dt [] [ text "Install command" ] - , dd [] [ code [] [ text <| "nix-env -iA nixos." ++ item.source.attr_name ] ] - , dt [] [ text <| "Nix expression" ] - , dd [] [ withDefault asGithubLink item.source.position ] + , dd [] [ withEmpty asCode (Just ("nix-env -iA nixos." ++ item.source.attr_name)) ] + , dt [] [ text "Nix expression" ] + , dd [] [ withEmpty asGithubLink item.source.position ] , dt [] [ text "Platforms" ] - , dd [] [ ul [ class "inline" ] <| showPlatforms item.source.hydra item.source.platforms ] + , dd [] [ asList (showPlatforms item.source.hydra item.source.platforms) ] , dt [] [ text "Homepage" ] - , dd [] [ withDefault asLink item.source.homepage ] + , dd [] [ withEmpty asLink item.source.homepage ] , dt [] [ text "Licenses" ] - , dd [] [ ul [ class "inline" ] <| List.map showLicence item.source.licenses ] + , dd [] [ asList (List.map showLicence item.source.licenses) ] , dt [] [ text "Maintainers" ] - , dd [] [ ul [ class "inline" ] <| List.map showMaintainer item.source.maintainers ] + , dd [] [ asList (List.map showMaintainer item.source.maintainers) ] , dt [] [ text "Description" ] - , dd [] [ withDefault asText item.source.description ] + , dd [] [ withEmpty asText item.source.description ] , dt [] [ text "Long description" ] - , dd [] [ withDefault asText item.source.longDescription ] + , dd [] [ withEmpty asText item.source.longDescription ] ]