forked from shibao/cannery
use shot group table component instead
This commit is contained in:
parent
45da547f62
commit
58b32817ba
117
lib/cannery_web/components/shot_group_table_component.ex
Normal file
117
lib/cannery_web/components/shot_group_table_component.ex
Normal file
@ -0,0 +1,117 @@
|
|||||||
|
defmodule CanneryWeb.Components.ShotGroupTableComponent do
|
||||||
|
@moduledoc """
|
||||||
|
A component that displays a list of shot groups
|
||||||
|
"""
|
||||||
|
use CanneryWeb, :live_component
|
||||||
|
alias Cannery.{Accounts.User, ActivityLog.ShotGroup, Repo}
|
||||||
|
alias Ecto.UUID
|
||||||
|
alias Phoenix.LiveView.{Rendered, Socket}
|
||||||
|
|
||||||
|
@impl true
|
||||||
|
@spec update(
|
||||||
|
%{
|
||||||
|
required(:id) => UUID.t(),
|
||||||
|
required(:current_user) => User.t(),
|
||||||
|
optional(:shot_groups) => [ShotGroup.t()],
|
||||||
|
optional(:actions) => Rendered.t(),
|
||||||
|
optional(any()) => any()
|
||||||
|
},
|
||||||
|
Socket.t()
|
||||||
|
) :: {:ok, Socket.t()}
|
||||||
|
def update(%{id: _id, shot_groups: _shot_groups, current_user: _current_user} = assigns, socket) do
|
||||||
|
socket =
|
||||||
|
socket
|
||||||
|
|> assign(assigns)
|
||||||
|
|> assign_new(:actions, fn -> [] end)
|
||||||
|
|> display_shot_groups()
|
||||||
|
|
||||||
|
{:ok, socket}
|
||||||
|
end
|
||||||
|
|
||||||
|
defp display_shot_groups(
|
||||||
|
%{
|
||||||
|
assigns: %{
|
||||||
|
shot_groups: shot_groups,
|
||||||
|
current_user: current_user,
|
||||||
|
actions: actions
|
||||||
|
}
|
||||||
|
} = socket
|
||||||
|
) do
|
||||||
|
columns = [
|
||||||
|
%{label: gettext("Ammo"), key: :name},
|
||||||
|
%{label: gettext("Rounds shot"), key: :count},
|
||||||
|
%{label: gettext("Notes"), key: :notes},
|
||||||
|
%{label: gettext("Date"), key: :date},
|
||||||
|
%{label: nil, key: :actions, sortable: false}
|
||||||
|
]
|
||||||
|
|
||||||
|
extra_data = %{current_user: current_user, actions: actions}
|
||||||
|
|
||||||
|
rows =
|
||||||
|
shot_groups
|
||||||
|
|> Enum.map(fn shot_group ->
|
||||||
|
shot_group |> get_row_data_for_shot_group(columns, extra_data)
|
||||||
|
end)
|
||||||
|
|
||||||
|
socket
|
||||||
|
|> assign(
|
||||||
|
columns: columns,
|
||||||
|
rows: rows
|
||||||
|
)
|
||||||
|
end
|
||||||
|
|
||||||
|
@impl true
|
||||||
|
def render(assigns) do
|
||||||
|
~H"""
|
||||||
|
<div id={@id} class="w-full">
|
||||||
|
<.live_component
|
||||||
|
module={CanneryWeb.Components.TableComponent}
|
||||||
|
id={"table-#{@id}"}
|
||||||
|
columns={@columns}
|
||||||
|
rows={@rows}
|
||||||
|
initial_key={:date}
|
||||||
|
initial_sort_mode={:desc}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
"""
|
||||||
|
end
|
||||||
|
|
||||||
|
@spec get_row_data_for_shot_group(ShotGroup.t(), columns :: [map()], extra_data :: map()) ::
|
||||||
|
map()
|
||||||
|
defp get_row_data_for_shot_group(shot_group, columns, extra_data) do
|
||||||
|
shot_group = shot_group |> Repo.preload(ammo_group: :ammo_type)
|
||||||
|
|
||||||
|
columns
|
||||||
|
|> Map.new(fn %{key: key} ->
|
||||||
|
{key, get_row_value(key, shot_group, extra_data)}
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
|
||||||
|
defp get_row_value(
|
||||||
|
:name,
|
||||||
|
%{ammo_group: %{ammo_type: %{name: ammo_type_name} = ammo_group}},
|
||||||
|
_extra_data
|
||||||
|
) do
|
||||||
|
assigns = %{ammo_group: ammo_group, ammo_type_name: ammo_type_name}
|
||||||
|
|
||||||
|
name_block = ~H"""
|
||||||
|
<.link navigate={Routes.ammo_group_show_path(Endpoint, :show, @ammo_group)} class="link">
|
||||||
|
<%= @ammo_type_name %>
|
||||||
|
</.link>
|
||||||
|
"""
|
||||||
|
|
||||||
|
{ammo_type_name, name_block}
|
||||||
|
end
|
||||||
|
|
||||||
|
defp get_row_value(:date, %{date: date}, _extra_data), do: date |> display_date()
|
||||||
|
|
||||||
|
defp get_row_value(:actions, shot_group, %{actions: actions}) do
|
||||||
|
assigns = %{actions: actions, shot_group: shot_group}
|
||||||
|
|
||||||
|
~H"""
|
||||||
|
<%= render_slot(@actions, @shot_group) %>
|
||||||
|
"""
|
||||||
|
end
|
||||||
|
|
||||||
|
defp get_row_value(key, shot_group, _extra_data), do: shot_group |> Map.get(key)
|
||||||
|
end
|
@ -112,26 +112,11 @@ defmodule CanneryWeb.RangeLive.Index do
|
|||||||
|> Repo.preload(ammo_group: :ammo_type)
|
|> Repo.preload(ammo_group: :ammo_type)
|
||||||
|
|
||||||
ammo_groups = Ammo.list_staged_ammo_groups(current_user)
|
ammo_groups = Ammo.list_staged_ammo_groups(current_user)
|
||||||
|
|
||||||
columns = [
|
|
||||||
%{label: gettext("Ammo"), key: :name},
|
|
||||||
%{label: gettext("Rounds shot"), key: :count},
|
|
||||||
%{label: gettext("Notes"), key: :notes},
|
|
||||||
%{label: gettext("Date"), key: :date},
|
|
||||||
%{label: nil, key: :actions, sortable: false}
|
|
||||||
]
|
|
||||||
|
|
||||||
rows =
|
|
||||||
shot_groups
|
|
||||||
|> Enum.map(fn shot_group -> shot_group |> get_row_data_for_shot_group(columns) end)
|
|
||||||
|
|
||||||
chart_data = shot_groups |> get_chart_data_for_shot_group()
|
chart_data = shot_groups |> get_chart_data_for_shot_group()
|
||||||
|
|
||||||
socket
|
socket
|
||||||
|> assign(
|
|> assign(
|
||||||
ammo_groups: ammo_groups,
|
ammo_groups: ammo_groups,
|
||||||
columns: columns,
|
|
||||||
rows: rows,
|
|
||||||
chart_data: chart_data,
|
chart_data: chart_data,
|
||||||
shot_groups: shot_groups
|
shot_groups: shot_groups
|
||||||
)
|
)
|
||||||
@ -153,59 +138,4 @@ defmodule CanneryWeb.RangeLive.Index do
|
|||||||
end)
|
end)
|
||||||
|> Enum.sort_by(fn %{date: date} -> date end, Date)
|
|> Enum.sort_by(fn %{date: date} -> date end, Date)
|
||||||
end
|
end
|
||||||
|
|
||||||
@spec get_row_data_for_shot_group(ShotGroup.t(), [map()]) :: map()
|
|
||||||
defp get_row_data_for_shot_group(%{date: date} = shot_group, columns) do
|
|
||||||
shot_group = shot_group |> Repo.preload(ammo_group: :ammo_type)
|
|
||||||
assigns = %{shot_group: shot_group}
|
|
||||||
|
|
||||||
columns
|
|
||||||
|> Map.new(fn %{key: key} ->
|
|
||||||
value =
|
|
||||||
case key do
|
|
||||||
:name ->
|
|
||||||
{shot_group.ammo_group.ammo_type.name,
|
|
||||||
~H"""
|
|
||||||
<.link
|
|
||||||
navigate={Routes.ammo_group_show_path(Endpoint, :show, @shot_group.ammo_group)}
|
|
||||||
class="link"
|
|
||||||
>
|
|
||||||
<%= @shot_group.ammo_group.ammo_type.name %>
|
|
||||||
</.link>
|
|
||||||
"""}
|
|
||||||
|
|
||||||
:date ->
|
|
||||||
date |> display_date()
|
|
||||||
|
|
||||||
:actions ->
|
|
||||||
~H"""
|
|
||||||
<div class="px-4 py-2 space-x-4 flex justify-center items-center">
|
|
||||||
<.link
|
|
||||||
patch={Routes.range_index_path(Endpoint, :edit, @shot_group)}
|
|
||||||
class="text-primary-600 link"
|
|
||||||
data-qa={"edit-#{@shot_group.id}"}
|
|
||||||
>
|
|
||||||
<i class="fa-fw fa-lg fas fa-edit"></i>
|
|
||||||
</.link>
|
|
||||||
|
|
||||||
<.link
|
|
||||||
href="#"
|
|
||||||
class="text-primary-600 link"
|
|
||||||
phx-click="delete"
|
|
||||||
phx-value-id={@shot_group.id}
|
|
||||||
data-confirm={dgettext("prompts", "Are you sure you want to delete this shot record?")}
|
|
||||||
data-qa={"delete-#{@shot_group.id}"}
|
|
||||||
>
|
|
||||||
<i class="fa-fw fa-lg fas fa-trash"></i>
|
|
||||||
</.link>
|
|
||||||
</div>
|
|
||||||
"""
|
|
||||||
|
|
||||||
key ->
|
|
||||||
shot_group |> Map.get(key)
|
|
||||||
end
|
|
||||||
|
|
||||||
{key, value}
|
|
||||||
end)
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
@ -92,13 +92,36 @@
|
|||||||
</h1>
|
</h1>
|
||||||
<% else %>
|
<% else %>
|
||||||
<.live_component
|
<.live_component
|
||||||
module={CanneryWeb.Components.TableComponent}
|
module={CanneryWeb.Components.ShotGroupTableComponent}
|
||||||
id="shot_groups_index_table"
|
id="shot_groups_index_table"
|
||||||
columns={@columns}
|
shot_groups={@shot_groups}
|
||||||
rows={@rows}
|
current_user={@current_user}
|
||||||
initial_key={:date}
|
>
|
||||||
initial_sort_mode={:desc}
|
<:actions :let={shot_group}>
|
||||||
/>
|
<div class="px-4 py-2 space-x-4 flex justify-center items-center">
|
||||||
|
<.link
|
||||||
|
patch={Routes.range_index_path(Endpoint, :edit, shot_group)}
|
||||||
|
class="text-primary-600 link"
|
||||||
|
data-qa={"edit-#{shot_group.id}"}
|
||||||
|
>
|
||||||
|
<i class="fa-fw fa-lg fas fa-edit"></i>
|
||||||
|
</.link>
|
||||||
|
|
||||||
|
<.link
|
||||||
|
href="#"
|
||||||
|
class="text-primary-600 link"
|
||||||
|
phx-click="delete"
|
||||||
|
phx-value-id={shot_group.id}
|
||||||
|
data-confirm={
|
||||||
|
dgettext("prompts", "Are you sure you want to delete this shot record?")
|
||||||
|
}
|
||||||
|
data-qa={"delete-#{shot_group.id}"}
|
||||||
|
>
|
||||||
|
<i class="fa-fw fa-lg fas fa-trash"></i>
|
||||||
|
</.link>
|
||||||
|
</div>
|
||||||
|
</:actions>
|
||||||
|
</.live_component>
|
||||||
<% end %>
|
<% end %>
|
||||||
<% end %>
|
<% end %>
|
||||||
</div>
|
</div>
|
||||||
|
@ -45,11 +45,11 @@ msgstr "Admins"
|
|||||||
msgid "Admins:"
|
msgid "Admins:"
|
||||||
msgstr "Admins:"
|
msgstr "Admins:"
|
||||||
|
|
||||||
|
#: lib/cannery_web/components/shot_group_table_component.ex:41
|
||||||
#: lib/cannery_web/components/topbar.ex:73
|
#: lib/cannery_web/components/topbar.ex:73
|
||||||
#: lib/cannery_web/live/ammo_group_live/index.ex:70
|
#: lib/cannery_web/live/ammo_group_live/index.ex:70
|
||||||
#: lib/cannery_web/live/ammo_group_live/index.ex:79
|
#: lib/cannery_web/live/ammo_group_live/index.ex:79
|
||||||
#: lib/cannery_web/live/ammo_group_live/index.html.heex:3
|
#: lib/cannery_web/live/ammo_group_live/index.html.heex:3
|
||||||
#: lib/cannery_web/live/range_live/index.ex:117
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Ammo"
|
msgid "Ammo"
|
||||||
msgstr "Munition"
|
msgstr "Munition"
|
||||||
@ -313,10 +313,10 @@ msgstr "Keine Tags"
|
|||||||
|
|
||||||
#: lib/cannery_web/components/add_shot_group_component.html.heex:37
|
#: lib/cannery_web/components/add_shot_group_component.html.heex:37
|
||||||
#: lib/cannery_web/components/ammo_group_table_component.ex:81
|
#: lib/cannery_web/components/ammo_group_table_component.ex:81
|
||||||
|
#: lib/cannery_web/components/shot_group_table_component.ex:43
|
||||||
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:49
|
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:49
|
||||||
#: lib/cannery_web/live/ammo_group_live/show.ex:93
|
#: lib/cannery_web/live/ammo_group_live/show.ex:93
|
||||||
#: lib/cannery_web/live/range_live/form_component.html.heex:29
|
#: lib/cannery_web/live/range_live/form_component.html.heex:29
|
||||||
#: lib/cannery_web/live/range_live/index.ex:119
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Notes"
|
msgid "Notes"
|
||||||
msgstr "Bemerkungen"
|
msgstr "Bemerkungen"
|
||||||
@ -478,9 +478,9 @@ msgid "Range day"
|
|||||||
msgstr "Range Day"
|
msgstr "Range Day"
|
||||||
|
|
||||||
#: lib/cannery_web/components/add_shot_group_component.html.heex:45
|
#: lib/cannery_web/components/add_shot_group_component.html.heex:45
|
||||||
|
#: lib/cannery_web/components/shot_group_table_component.ex:44
|
||||||
#: lib/cannery_web/live/ammo_group_live/show.ex:94
|
#: lib/cannery_web/live/ammo_group_live/show.ex:94
|
||||||
#: lib/cannery_web/live/range_live/form_component.html.heex:36
|
#: lib/cannery_web/live/range_live/form_component.html.heex:36
|
||||||
#: lib/cannery_web/live/range_live/index.ex:120
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Date"
|
msgid "Date"
|
||||||
msgstr "Datum"
|
msgstr "Datum"
|
||||||
@ -524,8 +524,8 @@ msgstr "Keine Schüsse dokumentiert"
|
|||||||
msgid "Rounds left"
|
msgid "Rounds left"
|
||||||
msgstr "Patronen verbleibend"
|
msgstr "Patronen verbleibend"
|
||||||
|
|
||||||
|
#: lib/cannery_web/components/shot_group_table_component.ex:42
|
||||||
#: lib/cannery_web/live/ammo_group_live/show.ex:92
|
#: lib/cannery_web/live/ammo_group_live/show.ex:92
|
||||||
#: lib/cannery_web/live/range_live/index.ex:118
|
|
||||||
#: lib/cannery_web/live/range_live/index.html.heex:62
|
#: lib/cannery_web/live/range_live/index.html.heex:62
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Rounds shot"
|
msgid "Rounds shot"
|
||||||
@ -862,7 +862,7 @@ msgstr ""
|
|||||||
msgid "%{percentage}%"
|
msgid "%{percentage}%"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/cannery_web/live/range_live/index.ex:151
|
#: lib/cannery_web/live/range_live/index.ex:136
|
||||||
#, elixir-autogen, elixir-format, fuzzy
|
#, elixir-autogen, elixir-format, fuzzy
|
||||||
msgid "Rounds shot: %{count}"
|
msgid "Rounds shot: %{count}"
|
||||||
msgstr "Patronen abgefeuert"
|
msgstr "Patronen abgefeuert"
|
||||||
|
@ -209,7 +209,7 @@ msgid "Are you sure you want to unstage this ammo?"
|
|||||||
msgstr "Sind sie sicher, dass Sie diese Munition demarkieren möchten?"
|
msgstr "Sind sie sicher, dass Sie diese Munition demarkieren möchten?"
|
||||||
|
|
||||||
#: lib/cannery_web/live/ammo_group_live/show.ex:137
|
#: lib/cannery_web/live/ammo_group_live/show.ex:137
|
||||||
#: lib/cannery_web/live/range_live/index.ex:196
|
#: lib/cannery_web/live/range_live/index.html.heex:116
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Are you sure you want to delete this shot record?"
|
msgid "Are you sure you want to delete this shot record?"
|
||||||
msgstr "Sind sie sicher, dass sie die Schießkladde löschen möchten?"
|
msgstr "Sind sie sicher, dass sie die Schießkladde löschen möchten?"
|
||||||
|
@ -30,11 +30,11 @@ msgstr ""
|
|||||||
msgid "Admins:"
|
msgid "Admins:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/cannery_web/components/shot_group_table_component.ex:41
|
||||||
#: lib/cannery_web/components/topbar.ex:73
|
#: lib/cannery_web/components/topbar.ex:73
|
||||||
#: lib/cannery_web/live/ammo_group_live/index.ex:70
|
#: lib/cannery_web/live/ammo_group_live/index.ex:70
|
||||||
#: lib/cannery_web/live/ammo_group_live/index.ex:79
|
#: lib/cannery_web/live/ammo_group_live/index.ex:79
|
||||||
#: lib/cannery_web/live/ammo_group_live/index.html.heex:3
|
#: lib/cannery_web/live/ammo_group_live/index.html.heex:3
|
||||||
#: lib/cannery_web/live/range_live/index.ex:117
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Ammo"
|
msgid "Ammo"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -298,10 +298,10 @@ msgstr ""
|
|||||||
|
|
||||||
#: lib/cannery_web/components/add_shot_group_component.html.heex:37
|
#: lib/cannery_web/components/add_shot_group_component.html.heex:37
|
||||||
#: lib/cannery_web/components/ammo_group_table_component.ex:81
|
#: lib/cannery_web/components/ammo_group_table_component.ex:81
|
||||||
|
#: lib/cannery_web/components/shot_group_table_component.ex:43
|
||||||
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:49
|
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:49
|
||||||
#: lib/cannery_web/live/ammo_group_live/show.ex:93
|
#: lib/cannery_web/live/ammo_group_live/show.ex:93
|
||||||
#: lib/cannery_web/live/range_live/form_component.html.heex:29
|
#: lib/cannery_web/live/range_live/form_component.html.heex:29
|
||||||
#: lib/cannery_web/live/range_live/index.ex:119
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Notes"
|
msgid "Notes"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -461,9 +461,9 @@ msgid "Range day"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/cannery_web/components/add_shot_group_component.html.heex:45
|
#: lib/cannery_web/components/add_shot_group_component.html.heex:45
|
||||||
|
#: lib/cannery_web/components/shot_group_table_component.ex:44
|
||||||
#: lib/cannery_web/live/ammo_group_live/show.ex:94
|
#: lib/cannery_web/live/ammo_group_live/show.ex:94
|
||||||
#: lib/cannery_web/live/range_live/form_component.html.heex:36
|
#: lib/cannery_web/live/range_live/form_component.html.heex:36
|
||||||
#: lib/cannery_web/live/range_live/index.ex:120
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Date"
|
msgid "Date"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -507,8 +507,8 @@ msgstr ""
|
|||||||
msgid "Rounds left"
|
msgid "Rounds left"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/cannery_web/components/shot_group_table_component.ex:42
|
||||||
#: lib/cannery_web/live/ammo_group_live/show.ex:92
|
#: lib/cannery_web/live/ammo_group_live/show.ex:92
|
||||||
#: lib/cannery_web/live/range_live/index.ex:118
|
|
||||||
#: lib/cannery_web/live/range_live/index.html.heex:62
|
#: lib/cannery_web/live/range_live/index.html.heex:62
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Rounds shot"
|
msgid "Rounds shot"
|
||||||
@ -845,7 +845,7 @@ msgstr ""
|
|||||||
msgid "%{percentage}%"
|
msgid "%{percentage}%"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/cannery_web/live/range_live/index.ex:151
|
#: lib/cannery_web/live/range_live/index.ex:136
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Rounds shot: %{count}"
|
msgid "Rounds shot: %{count}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -31,11 +31,11 @@ msgstr ""
|
|||||||
msgid "Admins:"
|
msgid "Admins:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/cannery_web/components/shot_group_table_component.ex:41
|
||||||
#: lib/cannery_web/components/topbar.ex:73
|
#: lib/cannery_web/components/topbar.ex:73
|
||||||
#: lib/cannery_web/live/ammo_group_live/index.ex:70
|
#: lib/cannery_web/live/ammo_group_live/index.ex:70
|
||||||
#: lib/cannery_web/live/ammo_group_live/index.ex:79
|
#: lib/cannery_web/live/ammo_group_live/index.ex:79
|
||||||
#: lib/cannery_web/live/ammo_group_live/index.html.heex:3
|
#: lib/cannery_web/live/ammo_group_live/index.html.heex:3
|
||||||
#: lib/cannery_web/live/range_live/index.ex:117
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Ammo"
|
msgid "Ammo"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -299,10 +299,10 @@ msgstr ""
|
|||||||
|
|
||||||
#: lib/cannery_web/components/add_shot_group_component.html.heex:37
|
#: lib/cannery_web/components/add_shot_group_component.html.heex:37
|
||||||
#: lib/cannery_web/components/ammo_group_table_component.ex:81
|
#: lib/cannery_web/components/ammo_group_table_component.ex:81
|
||||||
|
#: lib/cannery_web/components/shot_group_table_component.ex:43
|
||||||
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:49
|
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:49
|
||||||
#: lib/cannery_web/live/ammo_group_live/show.ex:93
|
#: lib/cannery_web/live/ammo_group_live/show.ex:93
|
||||||
#: lib/cannery_web/live/range_live/form_component.html.heex:29
|
#: lib/cannery_web/live/range_live/form_component.html.heex:29
|
||||||
#: lib/cannery_web/live/range_live/index.ex:119
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Notes"
|
msgid "Notes"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -462,9 +462,9 @@ msgid "Range day"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/cannery_web/components/add_shot_group_component.html.heex:45
|
#: lib/cannery_web/components/add_shot_group_component.html.heex:45
|
||||||
|
#: lib/cannery_web/components/shot_group_table_component.ex:44
|
||||||
#: lib/cannery_web/live/ammo_group_live/show.ex:94
|
#: lib/cannery_web/live/ammo_group_live/show.ex:94
|
||||||
#: lib/cannery_web/live/range_live/form_component.html.heex:36
|
#: lib/cannery_web/live/range_live/form_component.html.heex:36
|
||||||
#: lib/cannery_web/live/range_live/index.ex:120
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Date"
|
msgid "Date"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -508,8 +508,8 @@ msgstr ""
|
|||||||
msgid "Rounds left"
|
msgid "Rounds left"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/cannery_web/components/shot_group_table_component.ex:42
|
||||||
#: lib/cannery_web/live/ammo_group_live/show.ex:92
|
#: lib/cannery_web/live/ammo_group_live/show.ex:92
|
||||||
#: lib/cannery_web/live/range_live/index.ex:118
|
|
||||||
#: lib/cannery_web/live/range_live/index.html.heex:62
|
#: lib/cannery_web/live/range_live/index.html.heex:62
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Rounds shot"
|
msgid "Rounds shot"
|
||||||
@ -846,7 +846,7 @@ msgstr ""
|
|||||||
msgid "%{percentage}%"
|
msgid "%{percentage}%"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/cannery_web/live/range_live/index.ex:151
|
#: lib/cannery_web/live/range_live/index.ex:136
|
||||||
#, elixir-autogen, elixir-format, fuzzy
|
#, elixir-autogen, elixir-format, fuzzy
|
||||||
msgid "Rounds shot: %{count}"
|
msgid "Rounds shot: %{count}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -189,7 +189,7 @@ msgid "Are you sure you want to unstage this ammo?"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/cannery_web/live/ammo_group_live/show.ex:137
|
#: lib/cannery_web/live/ammo_group_live/show.ex:137
|
||||||
#: lib/cannery_web/live/range_live/index.ex:196
|
#: lib/cannery_web/live/range_live/index.html.heex:116
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Are you sure you want to delete this shot record?"
|
msgid "Are you sure you want to delete this shot record?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -45,11 +45,11 @@ msgstr ""
|
|||||||
msgid "Admins:"
|
msgid "Admins:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/cannery_web/components/shot_group_table_component.ex:41
|
||||||
#: lib/cannery_web/components/topbar.ex:73
|
#: lib/cannery_web/components/topbar.ex:73
|
||||||
#: lib/cannery_web/live/ammo_group_live/index.ex:70
|
#: lib/cannery_web/live/ammo_group_live/index.ex:70
|
||||||
#: lib/cannery_web/live/ammo_group_live/index.ex:79
|
#: lib/cannery_web/live/ammo_group_live/index.ex:79
|
||||||
#: lib/cannery_web/live/ammo_group_live/index.html.heex:3
|
#: lib/cannery_web/live/ammo_group_live/index.html.heex:3
|
||||||
#: lib/cannery_web/live/range_live/index.ex:117
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Ammo"
|
msgid "Ammo"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -313,10 +313,10 @@ msgstr ""
|
|||||||
|
|
||||||
#: lib/cannery_web/components/add_shot_group_component.html.heex:37
|
#: lib/cannery_web/components/add_shot_group_component.html.heex:37
|
||||||
#: lib/cannery_web/components/ammo_group_table_component.ex:81
|
#: lib/cannery_web/components/ammo_group_table_component.ex:81
|
||||||
|
#: lib/cannery_web/components/shot_group_table_component.ex:43
|
||||||
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:49
|
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:49
|
||||||
#: lib/cannery_web/live/ammo_group_live/show.ex:93
|
#: lib/cannery_web/live/ammo_group_live/show.ex:93
|
||||||
#: lib/cannery_web/live/range_live/form_component.html.heex:29
|
#: lib/cannery_web/live/range_live/form_component.html.heex:29
|
||||||
#: lib/cannery_web/live/range_live/index.ex:119
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Notes"
|
msgid "Notes"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -476,9 +476,9 @@ msgid "Range day"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/cannery_web/components/add_shot_group_component.html.heex:45
|
#: lib/cannery_web/components/add_shot_group_component.html.heex:45
|
||||||
|
#: lib/cannery_web/components/shot_group_table_component.ex:44
|
||||||
#: lib/cannery_web/live/ammo_group_live/show.ex:94
|
#: lib/cannery_web/live/ammo_group_live/show.ex:94
|
||||||
#: lib/cannery_web/live/range_live/form_component.html.heex:36
|
#: lib/cannery_web/live/range_live/form_component.html.heex:36
|
||||||
#: lib/cannery_web/live/range_live/index.ex:120
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Date"
|
msgid "Date"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -522,8 +522,8 @@ msgstr ""
|
|||||||
msgid "Rounds left"
|
msgid "Rounds left"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/cannery_web/components/shot_group_table_component.ex:42
|
||||||
#: lib/cannery_web/live/ammo_group_live/show.ex:92
|
#: lib/cannery_web/live/ammo_group_live/show.ex:92
|
||||||
#: lib/cannery_web/live/range_live/index.ex:118
|
|
||||||
#: lib/cannery_web/live/range_live/index.html.heex:62
|
#: lib/cannery_web/live/range_live/index.html.heex:62
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Rounds shot"
|
msgid "Rounds shot"
|
||||||
@ -860,7 +860,7 @@ msgstr ""
|
|||||||
msgid "%{percentage}%"
|
msgid "%{percentage}%"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/cannery_web/live/range_live/index.ex:151
|
#: lib/cannery_web/live/range_live/index.ex:136
|
||||||
#, elixir-autogen, elixir-format, fuzzy
|
#, elixir-autogen, elixir-format, fuzzy
|
||||||
msgid "Rounds shot: %{count}"
|
msgid "Rounds shot: %{count}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -208,7 +208,7 @@ msgid "Are you sure you want to unstage this ammo?"
|
|||||||
msgstr "Está seguro que desea desmontar esta munición?"
|
msgstr "Está seguro que desea desmontar esta munición?"
|
||||||
|
|
||||||
#: lib/cannery_web/live/ammo_group_live/show.ex:137
|
#: lib/cannery_web/live/ammo_group_live/show.ex:137
|
||||||
#: lib/cannery_web/live/range_live/index.ex:196
|
#: lib/cannery_web/live/range_live/index.html.heex:116
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Are you sure you want to delete this shot record?"
|
msgid "Are you sure you want to delete this shot record?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -45,11 +45,11 @@ msgstr "Administrateur·ices"
|
|||||||
msgid "Admins:"
|
msgid "Admins:"
|
||||||
msgstr "Administrateur·ices :"
|
msgstr "Administrateur·ices :"
|
||||||
|
|
||||||
|
#: lib/cannery_web/components/shot_group_table_component.ex:41
|
||||||
#: lib/cannery_web/components/topbar.ex:73
|
#: lib/cannery_web/components/topbar.ex:73
|
||||||
#: lib/cannery_web/live/ammo_group_live/index.ex:70
|
#: lib/cannery_web/live/ammo_group_live/index.ex:70
|
||||||
#: lib/cannery_web/live/ammo_group_live/index.ex:79
|
#: lib/cannery_web/live/ammo_group_live/index.ex:79
|
||||||
#: lib/cannery_web/live/ammo_group_live/index.html.heex:3
|
#: lib/cannery_web/live/ammo_group_live/index.html.heex:3
|
||||||
#: lib/cannery_web/live/range_live/index.ex:117
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Ammo"
|
msgid "Ammo"
|
||||||
msgstr "Munition"
|
msgstr "Munition"
|
||||||
@ -313,10 +313,10 @@ msgstr "Aucun tag"
|
|||||||
|
|
||||||
#: lib/cannery_web/components/add_shot_group_component.html.heex:37
|
#: lib/cannery_web/components/add_shot_group_component.html.heex:37
|
||||||
#: lib/cannery_web/components/ammo_group_table_component.ex:81
|
#: lib/cannery_web/components/ammo_group_table_component.ex:81
|
||||||
|
#: lib/cannery_web/components/shot_group_table_component.ex:43
|
||||||
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:49
|
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:49
|
||||||
#: lib/cannery_web/live/ammo_group_live/show.ex:93
|
#: lib/cannery_web/live/ammo_group_live/show.ex:93
|
||||||
#: lib/cannery_web/live/range_live/form_component.html.heex:29
|
#: lib/cannery_web/live/range_live/form_component.html.heex:29
|
||||||
#: lib/cannery_web/live/range_live/index.ex:119
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Notes"
|
msgid "Notes"
|
||||||
msgstr "Notes"
|
msgstr "Notes"
|
||||||
@ -480,9 +480,9 @@ msgid "Range day"
|
|||||||
msgstr "Journée de stand"
|
msgstr "Journée de stand"
|
||||||
|
|
||||||
#: lib/cannery_web/components/add_shot_group_component.html.heex:45
|
#: lib/cannery_web/components/add_shot_group_component.html.heex:45
|
||||||
|
#: lib/cannery_web/components/shot_group_table_component.ex:44
|
||||||
#: lib/cannery_web/live/ammo_group_live/show.ex:94
|
#: lib/cannery_web/live/ammo_group_live/show.ex:94
|
||||||
#: lib/cannery_web/live/range_live/form_component.html.heex:36
|
#: lib/cannery_web/live/range_live/form_component.html.heex:36
|
||||||
#: lib/cannery_web/live/range_live/index.ex:120
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Date"
|
msgid "Date"
|
||||||
msgstr "Date"
|
msgstr "Date"
|
||||||
@ -526,8 +526,8 @@ msgstr "Aucun tir enregistré"
|
|||||||
msgid "Rounds left"
|
msgid "Rounds left"
|
||||||
msgstr "Cartouches restantes"
|
msgstr "Cartouches restantes"
|
||||||
|
|
||||||
|
#: lib/cannery_web/components/shot_group_table_component.ex:42
|
||||||
#: lib/cannery_web/live/ammo_group_live/show.ex:92
|
#: lib/cannery_web/live/ammo_group_live/show.ex:92
|
||||||
#: lib/cannery_web/live/range_live/index.ex:118
|
|
||||||
#: lib/cannery_web/live/range_live/index.html.heex:62
|
#: lib/cannery_web/live/range_live/index.html.heex:62
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Rounds shot"
|
msgid "Rounds shot"
|
||||||
@ -865,7 +865,7 @@ msgstr ""
|
|||||||
msgid "%{percentage}%"
|
msgid "%{percentage}%"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/cannery_web/live/range_live/index.ex:151
|
#: lib/cannery_web/live/range_live/index.ex:136
|
||||||
#, elixir-autogen, elixir-format, fuzzy
|
#, elixir-autogen, elixir-format, fuzzy
|
||||||
msgid "Rounds shot: %{count}"
|
msgid "Rounds shot: %{count}"
|
||||||
msgstr "Cartouches tirées"
|
msgstr "Cartouches tirées"
|
||||||
|
@ -210,7 +210,7 @@ msgid "Are you sure you want to unstage this ammo?"
|
|||||||
msgstr "Êtes-vous certain·e de vouloir désélectionner cette munition ?"
|
msgstr "Êtes-vous certain·e de vouloir désélectionner cette munition ?"
|
||||||
|
|
||||||
#: lib/cannery_web/live/ammo_group_live/show.ex:137
|
#: lib/cannery_web/live/ammo_group_live/show.ex:137
|
||||||
#: lib/cannery_web/live/range_live/index.ex:196
|
#: lib/cannery_web/live/range_live/index.html.heex:116
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Are you sure you want to delete this shot record?"
|
msgid "Are you sure you want to delete this shot record?"
|
||||||
msgstr "Êtes-vous certain·e de vouloir supprimer cet enregistrement de tir ?"
|
msgstr "Êtes-vous certain·e de vouloir supprimer cet enregistrement de tir ?"
|
||||||
|
@ -41,11 +41,11 @@ msgstr ""
|
|||||||
msgid "Admins:"
|
msgid "Admins:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/cannery_web/components/shot_group_table_component.ex:41
|
||||||
#: lib/cannery_web/components/topbar.ex:73
|
#: lib/cannery_web/components/topbar.ex:73
|
||||||
#: lib/cannery_web/live/ammo_group_live/index.ex:70
|
#: lib/cannery_web/live/ammo_group_live/index.ex:70
|
||||||
#: lib/cannery_web/live/ammo_group_live/index.ex:79
|
#: lib/cannery_web/live/ammo_group_live/index.ex:79
|
||||||
#: lib/cannery_web/live/ammo_group_live/index.html.heex:3
|
#: lib/cannery_web/live/ammo_group_live/index.html.heex:3
|
||||||
#: lib/cannery_web/live/range_live/index.ex:117
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Ammo"
|
msgid "Ammo"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -309,10 +309,10 @@ msgstr ""
|
|||||||
|
|
||||||
#: lib/cannery_web/components/add_shot_group_component.html.heex:37
|
#: lib/cannery_web/components/add_shot_group_component.html.heex:37
|
||||||
#: lib/cannery_web/components/ammo_group_table_component.ex:81
|
#: lib/cannery_web/components/ammo_group_table_component.ex:81
|
||||||
|
#: lib/cannery_web/components/shot_group_table_component.ex:43
|
||||||
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:49
|
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:49
|
||||||
#: lib/cannery_web/live/ammo_group_live/show.ex:93
|
#: lib/cannery_web/live/ammo_group_live/show.ex:93
|
||||||
#: lib/cannery_web/live/range_live/form_component.html.heex:29
|
#: lib/cannery_web/live/range_live/form_component.html.heex:29
|
||||||
#: lib/cannery_web/live/range_live/index.ex:119
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Notes"
|
msgid "Notes"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -472,9 +472,9 @@ msgid "Range day"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/cannery_web/components/add_shot_group_component.html.heex:45
|
#: lib/cannery_web/components/add_shot_group_component.html.heex:45
|
||||||
|
#: lib/cannery_web/components/shot_group_table_component.ex:44
|
||||||
#: lib/cannery_web/live/ammo_group_live/show.ex:94
|
#: lib/cannery_web/live/ammo_group_live/show.ex:94
|
||||||
#: lib/cannery_web/live/range_live/form_component.html.heex:36
|
#: lib/cannery_web/live/range_live/form_component.html.heex:36
|
||||||
#: lib/cannery_web/live/range_live/index.ex:120
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Date"
|
msgid "Date"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -518,8 +518,8 @@ msgstr ""
|
|||||||
msgid "Rounds left"
|
msgid "Rounds left"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/cannery_web/components/shot_group_table_component.ex:42
|
||||||
#: lib/cannery_web/live/ammo_group_live/show.ex:92
|
#: lib/cannery_web/live/ammo_group_live/show.ex:92
|
||||||
#: lib/cannery_web/live/range_live/index.ex:118
|
|
||||||
#: lib/cannery_web/live/range_live/index.html.heex:62
|
#: lib/cannery_web/live/range_live/index.html.heex:62
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Rounds shot"
|
msgid "Rounds shot"
|
||||||
@ -856,7 +856,7 @@ msgstr ""
|
|||||||
msgid "%{percentage}%"
|
msgid "%{percentage}%"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/cannery_web/live/range_live/index.ex:151
|
#: lib/cannery_web/live/range_live/index.ex:136
|
||||||
#, elixir-autogen, elixir-format, fuzzy
|
#, elixir-autogen, elixir-format, fuzzy
|
||||||
msgid "Rounds shot: %{count}"
|
msgid "Rounds shot: %{count}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -199,7 +199,7 @@ msgid "Are you sure you want to unstage this ammo?"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/cannery_web/live/ammo_group_live/show.ex:137
|
#: lib/cannery_web/live/ammo_group_live/show.ex:137
|
||||||
#: lib/cannery_web/live/range_live/index.ex:196
|
#: lib/cannery_web/live/range_live/index.html.heex:116
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Are you sure you want to delete this shot record?"
|
msgid "Are you sure you want to delete this shot record?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -188,7 +188,7 @@ msgid "Are you sure you want to unstage this ammo?"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/cannery_web/live/ammo_group_live/show.ex:137
|
#: lib/cannery_web/live/ammo_group_live/show.ex:137
|
||||||
#: lib/cannery_web/live/range_live/index.ex:196
|
#: lib/cannery_web/live/range_live/index.html.heex:116
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Are you sure you want to delete this shot record?"
|
msgid "Are you sure you want to delete this shot record?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
Loading…
Reference in New Issue
Block a user