Skip to content
Draft
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Run "mix format"
  • Loading branch information
thbar committed Sep 4, 2025
commit efaa37c857948da1257da7524901723c6df0f237
Original file line number Diff line number Diff line change
Expand Up @@ -5,22 +5,22 @@
<h3>Statistiques</h3>

<ul>
<li>Taille du cache : <%= @stats.cache_size_binary %></li>
<li>Nombre de clés : <%= Helpers.format_number(@stats.nb_records) %></li>
<li>Nombre de clés expirées : <%= @stats.nb_expired_keys %></li>
<li>Taille du cache : {@stats.cache_size_binary}</li>
<li>Nombre de clés : {Helpers.format_number(@stats.nb_records)}</li>
<li>Nombre de clés expirées : {@stats.nb_expired_keys}</li>
<li>
Dernière exécution <a href="https://hexdocs.pm/cachex/ttl-implementation.html">du Janitor</a>
: <%= @stats.last_janitor_execution %>
: {@stats.last_janitor_execution}
</li>
<li :if={Enum.count(@stats.expired_keys) > 0}>Clés expirées : <%= Enum.join(@stats.expired_keys, ", ") %></li>
<li :if={Enum.count(@stats.expired_keys) > 0}>Clés expirées : {Enum.join(@stats.expired_keys, ", ")}</li>
</ul>

<h3>Clés actives</h3>

<div class="pb-24">
<.form :let={f} for={%{}} as={@search_key_name} phx-change="filter" class="no-margin">
<%= label(f, "Filtrer par nom de clé") %>
<%= text_input(f, :filter_key_name, value: @filter_key_name) %>
{label(f, "Filtrer par nom de clé")}
{text_input(f, :filter_key_name, value: @filter_key_name)}
</.form>
</div>

Expand All @@ -35,8 +35,8 @@
<tbody>
<%= for item <- @stats.keys do %>
<tr>
<td><%= item.name %></td>
<td><%= format_ttl(item.ttl) %></td>
<td>{item.name}</td>
<td>{format_ttl(item.ttl)}</td>
<td>
<a href="#" phx-click="delete_key" phx-value-key_name={item.name}>
Supprimer
Expand All @@ -48,9 +48,9 @@
</table>

<p :if={Enum.count(@stats.keys) != nb_non_expired_keys}>
<%= Helpers.format_number(nb_non_expired_keys - Enum.count(@stats.keys)) %> clés sont masquées par le filtre courant.
{Helpers.format_number(nb_non_expired_keys - Enum.count(@stats.keys))} clés sont masquées par le filtre courant.
</p>

<p class="small">Dernière mise à jour: <%= @last_updated_at %></p>
<p class="small">Dernière mise à jour: {@last_updated_at}</p>
</section>
<script defer type="text/javascript" src={static_path(@socket, "/js/app.js")} />
Original file line number Diff line number Diff line change
Expand Up @@ -9,28 +9,28 @@ defmodule TransportWeb.CustomTagsLive do
<div class="pb-6">
<%= for {tag, index} <- Enum.with_index(@custom_tags) do %>
<span class="label custom-tag">
<%= tag %> <span class="delete-tag" phx-click="remove_tag" phx-value-tag={tag} phx-target={@myself}></span>
{tag} <span class="delete-tag" phx-click="remove_tag" phx-value-tag={tag} phx-target={@myself}></span>
</span>
<%= Phoenix.HTML.Form.hidden_input(@form, "custom_tags[#{index}]", value: tag) %>
{Phoenix.HTML.Form.hidden_input(@form, "custom_tags[#{index}]", value: tag)}
<% end %>
</div>
<%= InputHelpers.text_input(@form, :tag_input,
{InputHelpers.text_input(@form, :tag_input,
placeholder: "Ajouter un tag",
list: "suggestions",
phx_keydown: "add_tag",
id: "custom_tag",
phx_target: @myself
) %>
)}
<datalist id="suggestions" phx-keydown="add_tag">
<%= for suggestion <- @tag_suggestions do %>
<option value={suggestion}><%= suggestion %></option>
<option value={suggestion}>{suggestion}</option>
<% end %>
</datalist>
<details class="pt-12">
<summary>Tags liés à des fonctionnalités</summary>
<ul>
<%= for tag_doc <- Enum.sort_by(@tags_documentation, & &1.name) do %>
<li><span class="label"><%= tag_doc.name %></span><%= tag_doc.doc %></li>
<li><span class="label">{tag_doc.name}</span>{tag_doc.doc}</li>
<% end %>
</ul>
</details>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,14 @@
<h2>Rapport du dernier batch import GTFS</h2>
<div class="pb-24">
<%= if @last_updated_at do %>
<p>Mis à jour à <%= @last_updated_at %></p>
<p>Mis à jour à {@last_updated_at}</p>
<% end %>
<button class="button" phx-click="refresh" disabled={@job_running}>
<%= if @job_running, do: "En cours…", else: "Rafraîchir" %>
{if @job_running, do: "En cours…", else: "Rafraîchir"}
</button>
<a target="_blank" href="/backoffice/gtfs-export"><button class="button">Export</button></a>
<%= if @stats do %>
<p>Résumé : <%= @stats %></p>
<p>Résumé : {@stats}</p>
<% end %>
</div>
<table class="table">
Expand All @@ -24,11 +24,11 @@
</thead>
<%= for item <- @result do %>
<tr>
<td><a href={resource_path(@socket, :details, item["resource_id"])}><%= item["resource_id"] %></a></td>
<td><%= item["resource_history_id"] %></td>
<td><%= item["status"] %></td>
<td><%= item["error_struct"] %></td>
<td><%= item["error_message"] || item["error"] %></td>
<td><a href={resource_path(@socket, :details, item["resource_id"])}>{item["resource_id"]}</a></td>
<td>{item["resource_history_id"]}</td>
<td>{item["status"]}</td>
<td>{item["error_struct"]}</td>
<td>{item["error_message"] || item["error"]}</td>
</tr>
<% end %>
</table>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,17 +7,17 @@ defmodule TransportWeb.DeclarativeSpatialAreasLive do
~H"""
<div class="pt-24">
<label>
<%= dgettext("backoffice", "spatial areas label") %>
{dgettext("backoffice", "spatial areas label")}
</label>
<br />
<%= InputHelpers.text_input(
{InputHelpers.text_input(
@form,
:spatial_areas_search_input,
placeholder: "Recherchez votre territoire…",
phx_keydown: "search_division",
phx_target: @myself,
id: "spatial_areas_search_input"
) %>
)}
<div
:if={@administrative_division_search_matches != []}
class="autoCompleteResultsField"
Expand All @@ -30,9 +30,9 @@ defmodule TransportWeb.DeclarativeSpatialAreasLive do
<%= for match <- @administrative_division_search_matches do %>
<li class="autoComplete_result" phx-target={@myself} phx-click="select_division" phx-value-id={match.id} }>
<div>
<span class="autocomplete_name"><%= match.nom %></span>
<span class="autocomplete_name">{match.nom}</span>
<span class="autocomplete_type">
<%= match.insee %> – <%= DB.AdministrativeDivision.display_type(match) %>
{match.insee} – {DB.AdministrativeDivision.display_type(match)}
</span>
</div>
</li>
Expand All @@ -43,10 +43,10 @@ defmodule TransportWeb.DeclarativeSpatialAreasLive do

<div :for={{division, index} <- Enum.with_index(@declarative_spatial_areas)} class="pt-6">
<span class={["label", "custom-tag"] ++ [color_class(division)]}>
<%= division.nom %> (<%= division.insee %> – <%= DB.AdministrativeDivision.display_type(division) %>)
{division.nom} ({division.insee} – {DB.AdministrativeDivision.display_type(division)})
<span class="delete-tag" phx-click="remove_division" phx-value-id={division.id} phx-target={@myself}></span>
</span>
<%= Phoenix.HTML.Form.hidden_input(@form, "declarative_spatial_area_#{index}", value: division.id) %>
{Phoenix.HTML.Form.hidden_input(@form, "declarative_spatial_area_#{index}", value: division.id)}
</div>

<script nonce={@nonce}>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,15 +10,15 @@
>
<h1>
<%= if is_nil(@dataset) do %>
<%= dgettext("backoffice", "Add a dataset") %>
{dgettext("backoffice", "Add a dataset")}
<% else %>
<%= dgettext("backoffice", "Edit a dataset") %>
{dgettext("backoffice", "Edit a dataset")}
<% end %>
</h1>
<%= unless is_nil(assigns[:dataset]) do %>
<div class="pb-24">
<i class="fa fa-external-link-alt"></i>
<%= link(dgettext("backoffice", "See dataset on website"), to: dataset_path(@socket, :details, @dataset.id)) %>
{link(dgettext("backoffice", "See dataset on website"), to: dataset_path(@socket, :details, @dataset.id))}
</div>
<% end %>

Expand All @@ -27,7 +27,7 @@
</p>

<div class="pt-24">
<%= InputHelpers.text_input(f, :url, placeholder: dgettext("backoffice", "Dataset's url")) %>
{InputHelpers.text_input(f, :url, placeholder: dgettext("backoffice", "Dataset's url"))}

<%= if assigns[:datagouv_infos] do %>
<% dataset_datagouv_id = @datagouv_infos[:dataset_datagouv_id] %>
Expand All @@ -36,32 +36,32 @@
<%= if is_nil(dataset_datagouv_id) do %>
Impossible de trouver ce jeu de données sur data.gouv
<% else %>
<div>Jeu de données <strong>"<%= @datagouv_infos[:datagouv_title] %>"</strong></div>
<div>Jeu de données <strong>"{@datagouv_infos[:datagouv_title]}"</strong></div>
<div class="pt-12">
Son identifiant data.gouv est <code><%= @datagouv_infos[:dataset_datagouv_id] %></code>
Son identifiant data.gouv est <code>{@datagouv_infos[:dataset_datagouv_id]}</code>
</div>
<div class="pt-12">
<%= if @datagouv_infos[:dataset_id] do %>
⚠️ Ce jeu de données est déjà référencé <%= link("sur le PAN",
⚠️ Ce jeu de données est déjà référencé {link("sur le PAN",
to: backoffice_page_path(@socket, :edit, @datagouv_infos[:dataset_id]),
target: "_blank"
) %>, il n'est pas possible de le référencer une seconde fois.
)}, il n'est pas possible de le référencer une seconde fois.
<% else %>
Ce jeu n'est pas encore référencé chez nous ✅
<% end %>
</div>
<% end %>
</div>
<% end %>
<%= InputHelpers.text_input(f, :custom_title, placeholder: dgettext("backoffice", "name")) %>
<%= InputHelpers.select(f, :type, @dataset_types,
{InputHelpers.text_input(f, :custom_title, placeholder: dgettext("backoffice", "name"))}
{InputHelpers.select(f, :type, @dataset_types,
selected:
if not is_nil(@dataset) do
@dataset.type
else
"public-transit"
end
) %>
)}
</div>

<.live_component module={TransportWeb.CustomTagsLive} id="custom_tags" form={f} custom_tags={@custom_tags} />
Expand All @@ -72,41 +72,41 @@

<div :if={@dataset_organization} class="panel mt-48">
<div class="panel-explanation">
<%= dgettext("backoffice", "published by") %>
{dgettext("backoffice", "published by")}
</div>
<h4><%= @dataset_organization %></h4>
<%= select(f, :organization_type, @organization_types,
<h4>{@dataset_organization}</h4>
{select(f, :organization_type, @organization_types,
selected:
if not is_nil(@dataset) do
@dataset.organization_type
else
""
end,
prompt: dgettext("backoffice", "Publisher type")
) %>
)}
</div>

<div class="panel mt-48">
<div class="panel-explanation">
<%= dgettext("backoffice", "Legal owners") %>
{dgettext("backoffice", "Legal owners")}
</div>
<.live_component module={TransportWeb.LegalOwnerSelectLive} id="owners_selection" form={f} owners={@legal_owners} />
<div class="pt-12"><%= dgettext("backoffice", "or") %></div>
<div class="pt-12">{dgettext("backoffice", "or")}</div>
<div class="pt-12">
<label>
<%= dgettext("backoffice", "Company SIREN code") %>
<%= InputHelpers.text_input(f, :legal_owner_company_siren,
{dgettext("backoffice", "Company SIREN code")}
{InputHelpers.text_input(f, :legal_owner_company_siren,
placeholder: "821611431",
pattern: "\\d{9,9}"
) %>
)}
</label>
</div>
</div>

<div class="panel mt-48">
<div class="panel__header">
<h4>
<%= dgettext("backoffice", "Spatial area (new)") %>
{dgettext("backoffice", "Spatial area (new)")}
</h4>
</div>
<.live_component
Expand All @@ -121,61 +121,61 @@
<div class="panel mt-48">
<div class="panel__header">
<h4>
<%= dgettext("backoffice", "Spatial area (legacy)") %>
{dgettext("backoffice", "Spatial area (legacy)")}
</h4>
<%= dgettext("backoffice", "Choose one") %>
{dgettext("backoffice", "Choose one")}
</div>
<div class="panel__content">
<%= checkbox(f, :national_dataset) %><%= dgettext(
{checkbox(f, :national_dataset)}{dgettext(
"backoffice",
"National dataset"
) %>
)}
</div>
<p class="separator">
- <%= dgettext("resource", "or") %> -
- {dgettext("resource", "or")} -
</p>
<div class="panel__content">
<%= dgettext("backoffice", "Dataset linked to a region") %>
<%= select(f, :region_id, @regions,
{dgettext("backoffice", "Dataset linked to a region")}
{select(f, :region_id, @regions,
selected:
if not is_nil(@dataset) do
@dataset.region_id
else
""
end,
prompt: "Pas un jeu de données régional"
) %>
)}
</div>
<p class="separator">
- <%= dgettext("resource", "or") %> -
- {dgettext("resource", "or")} -
</p>
<%= dgettext("backoffice", "Dataset linked to an AOM") %>
{dgettext("backoffice", "Dataset linked to an AOM")}
<div class="panel__content">
<div>
<%= InputHelpers.text_input(f, :insee,
{InputHelpers.text_input(f, :insee,
placeholder: "Commune faisant partie de l'AOM (code INSEE ou nom)",
phx_keyup: "suggest_communes",
list: "communes-matches",
autoComplete: "off",
id: "communes_q"
) %>
)}
<datalist id="communes-matches">
<%= for match <- @matches do %>
<option value={match.insee}><%= "#{match.nom} #{match.insee}" %></option>
<option value={match.insee}>{"#{match.nom} #{match.insee}"}</option>
<% end %>
</datalist>
</div>
</div>
<p class="separator">
- <%= dgettext("resource", "or") %> -
- {dgettext("resource", "or")} -
</p>
<div class="panel__content">
<%= dgettext("backoffice", "Dataset linked to a list of cities in data.gouv.fr") %>
{dgettext("backoffice", "Dataset linked to a list of cities in data.gouv.fr")}
<div>
<div class="pt-12">
<%= InputHelpers.text_input(f, :associated_territory_name,
{InputHelpers.text_input(f, :associated_territory_name,
placeholder: dgettext("backoffice", "Name of the associtated territory (used in the title of the dataset)")
) %>
)}
</div>
</div>
</div>
Expand All @@ -184,15 +184,15 @@
<div id="backoffice_dataset_submit_buttons" class={if is_nil(@dataset), do: "pb-48"}>
<div>
<%= if is_nil(@dataset) do %>
<%= hidden_input(f, :action, value: "new") %>
<%= InputHelpers.submit(dgettext("backoffice", "Add")) %>
{hidden_input(f, :action, value: "new")}
{InputHelpers.submit(dgettext("backoffice", "Add"))}
<% else %>
<%= hidden_input(f, :action, value: "edit") %>
<%= InputHelpers.submit(dgettext("backoffice", "Save")) %>
{hidden_input(f, :action, value: "edit")}
{InputHelpers.submit(dgettext("backoffice", "Save"))}
<% end %>
</div>
<div>
<%= link(dgettext("backoffice", "Cancel"), to: backoffice_page_path(@socket, :index)) %>
{link(dgettext("backoffice", "Cancel"), to: backoffice_page_path(@socket, :index))}
</div>
</div>
</.form>
Loading