From 09aa127f01c8fc4622566c141b5a87ea9073ddb1 Mon Sep 17 00:00:00 2001 From: Antoine Augusti Date: Wed, 19 Feb 2025 09:50:17 +0100 Subject: [PATCH] Dataset#details : ajout modal pour conversion auto NeTEx --- .../components/_dataset-details.scss | 9 ++++++ .../templates/dataset/_conversions.html.heex | 13 ++++++++- .../dataset/_netex_conversion_modal.html.heex | 29 +++++++++++++++++++ .../en/LC_MESSAGES/page-dataset-details.po | 16 ++++++++++ .../fr/LC_MESSAGES/page-dataset-details.po | 16 ++++++++++ .../priv/gettext/page-dataset-details.pot | 16 ++++++++++ .../controllers/dataset_controller_test.exs | 21 ++++++++++++-- 7 files changed, 116 insertions(+), 4 deletions(-) create mode 100644 apps/transport/lib/transport_web/templates/dataset/_netex_conversion_modal.html.heex diff --git a/apps/transport/client/stylesheets/components/_dataset-details.scss b/apps/transport/client/stylesheets/components/_dataset-details.scss index c00cd2c8ee..ee8afdc85f 100644 --- a/apps/transport/client/stylesheets/components/_dataset-details.scss +++ b/apps/transport/client/stylesheets/components/_dataset-details.scss @@ -635,3 +635,12 @@ hr { } } } + +.modal .button__group { + a.button:hover { + background-color: var(--theme-secondary-darken) !important; + } + a.button.secondary:hover { + background-color: var(--darkest-grey) !important; + } +} diff --git a/apps/transport/lib/transport_web/templates/dataset/_conversions.html.heex b/apps/transport/lib/transport_web/templates/dataset/_conversions.html.heex index 44003bf494..8c7613d107 100644 --- a/apps/transport/lib/transport_web/templates/dataset/_conversions.html.heex +++ b/apps/transport/lib/transport_web/templates/dataset/_conversions.html.heex @@ -4,11 +4,22 @@
<%= for {_, %{format: human_format, stable_url: stable_url}} <- Enum.sort_by(conversions, fn {_, %{format: format}} -> format end, :asc) do %> - + <% + modal_id = "modal-netex-conversion-#{:erlang.phash2(stable_url)}" + href = if human_format == "NeTEx", do: "#" <> modal_id, else: stable_url + %> + + + <%= if human_format == "NeTEx" do + render(TransportWeb.DatasetView, "_netex_conversion_modal.html", + stable_url: stable_url, + modal_id: modal_id + ) + end %> <% end %>
diff --git a/apps/transport/lib/transport_web/templates/dataset/_netex_conversion_modal.html.heex b/apps/transport/lib/transport_web/templates/dataset/_netex_conversion_modal.html.heex new file mode 100644 index 0000000000..0f46b101a0 --- /dev/null +++ b/apps/transport/lib/transport_web/templates/dataset/_netex_conversion_modal.html.heex @@ -0,0 +1,29 @@ + diff --git a/apps/transport/priv/gettext/en/LC_MESSAGES/page-dataset-details.po b/apps/transport/priv/gettext/en/LC_MESSAGES/page-dataset-details.po index fbe6516336..3b44e9572a 100644 --- a/apps/transport/priv/gettext/en/LC_MESSAGES/page-dataset-details.po +++ b/apps/transport/priv/gettext/en/LC_MESSAGES/page-dataset-details.po @@ -721,3 +721,19 @@ msgstr "" #, elixir-autogen, elixir-format msgid "This unofficial dataset is provided experimentally. Do not use it for travel information purpose." msgstr "" + +#, elixir-autogen, elixir-format +msgid "Automatic NeTEx conversion are created from the associated GTFS file and don't contain additional information which can be described in NeTEx." +msgstr "" + +#, elixir-autogen, elixir-format +msgid "Automatic NeTEx conversions will not be available after 2025-06-01." +msgstr "" + +#, elixir-autogen, elixir-format +msgid "Cancel" +msgstr "" + +#, elixir-autogen, elixir-format +msgid "Download the automatic NeTEx conversion" +msgstr "" diff --git a/apps/transport/priv/gettext/fr/LC_MESSAGES/page-dataset-details.po b/apps/transport/priv/gettext/fr/LC_MESSAGES/page-dataset-details.po index b49c24f951..d597eb0025 100644 --- a/apps/transport/priv/gettext/fr/LC_MESSAGES/page-dataset-details.po +++ b/apps/transport/priv/gettext/fr/LC_MESSAGES/page-dataset-details.po @@ -721,3 +721,19 @@ msgstr "Données sous la responsabilité de" #, elixir-autogen, elixir-format msgid "This unofficial dataset is provided experimentally. Do not use it for travel information purpose." msgstr "Ce jeu de données non officiel est publié à titre expérimental. Veuillez ne pas le réutiliser à des fins d’information voyageur." + +#, elixir-autogen, elixir-format +msgid "Automatic NeTEx conversion are created from the associated GTFS file and don't contain additional information which can be described in NeTEx." +msgstr "Les conversions automatiques NeTEx sont générées à partir du fichier GTFS associé et ne contiennent pas d'informations supplémentaires qui peuvent être décrites en NeTEx." + +#, elixir-autogen, elixir-format +msgid "Automatic NeTEx conversions will not be available after 2025-06-01." +msgstr "Les conversions automatiques NeTEx ne seront plus disponibles après le 01/06/2025." + +#, elixir-autogen, elixir-format +msgid "Cancel" +msgstr "Annuler" + +#, elixir-autogen, elixir-format +msgid "Download the automatic NeTEx conversion" +msgstr "Télécharger la conversion automatique NeTEx" diff --git a/apps/transport/priv/gettext/page-dataset-details.pot b/apps/transport/priv/gettext/page-dataset-details.pot index 43d6d175dd..d44699ffef 100644 --- a/apps/transport/priv/gettext/page-dataset-details.pot +++ b/apps/transport/priv/gettext/page-dataset-details.pot @@ -721,3 +721,19 @@ msgstr "" #, elixir-autogen, elixir-format msgid "This unofficial dataset is provided experimentally. Do not use it for travel information purpose." msgstr "" + +#, elixir-autogen, elixir-format +msgid "Automatic NeTEx conversion are created from the associated GTFS file and don't contain additional information which can be described in NeTEx." +msgstr "" + +#, elixir-autogen, elixir-format +msgid "Automatic NeTEx conversions will not be available after 2025-06-01." +msgstr "" + +#, elixir-autogen, elixir-format +msgid "Cancel" +msgstr "" + +#, elixir-autogen, elixir-format +msgid "Download the automatic NeTEx conversion" +msgstr "" diff --git a/apps/transport/test/transport_web/controllers/dataset_controller_test.exs b/apps/transport/test/transport_web/controllers/dataset_controller_test.exs index c57436d36e..db1a2c9de9 100644 --- a/apps/transport/test/transport_web/controllers/dataset_controller_test.exs +++ b/apps/transport/test/transport_web/controllers/dataset_controller_test.exs @@ -61,7 +61,7 @@ defmodule TransportWeb.DatasetControllerTest do convert_from: "GTFS", convert_to: "NeTEx", converter: DB.DataConversion.converter_to_use("NeTEx"), - payload: %{"permanent_url" => conversion_url = "https://super-cellar-url.com/netex"} + payload: %{"permanent_url" => other_conversion_url = "https://super-cellar-url.com/netex"} ) Transport.History.Fetcher.Mock @@ -77,8 +77,23 @@ defmodule TransportWeb.DatasetControllerTest do html_response = conn |> get(dataset_path(conn, :details, dataset.slug)) |> html_response(200) assert html_response =~ "Conversions automatiques" assert html_response =~ "NeTEx" - assert html_response =~ conversion_path(conn, :get, resource.id, :NeTEx) - refute html_response =~ conversion_url + + # NeTEx conversion's URL is displayed in a modal with 2 buttons + netex_url = conversion_url(TransportWeb.Endpoint, :get, resource.id, :NeTEx) + + assert [ + {"a", [{"class", "classic button"}, {"rel", "nofollow"}, {"href", ^netex_url}], + [ + {"i", _, []}, + "Télécharger la conversion automatique NeTEx\n " + ]}, + {"a", [{"href", "#"}, {"class", "classic button secondary"}], ["\nAnnuler\n "]} + ] = + html_response + |> Floki.parse_document!() + |> Floki.find(".modal .button__group .button") + + refute html_response =~ other_conversion_url refute html_response =~ "GeoJSON" end end