diff --git a/lib/cannery_web/components/ammo_type_table_component.ex b/lib/cannery_web/components/ammo_type_table_component.ex
new file mode 100644
index 00000000..85b97efe
--- /dev/null
+++ b/lib/cannery_web/components/ammo_type_table_component.ex
@@ -0,0 +1,208 @@
+defmodule CanneryWeb.Components.AmmoTypeTableComponent do
+ @moduledoc """
+ A component that displays a list of ammo type
+ """
+ use CanneryWeb, :live_component
+ alias Cannery.{Accounts.User, Ammo, Ammo.AmmoType}
+ alias Ecto.UUID
+ alias Phoenix.LiveView.{Rendered, Socket}
+
+ @impl true
+ @spec update(
+ %{
+ required(:id) => UUID.t(),
+ required(:current_user) => User.t(),
+ optional(:show_used) => boolean(),
+ optional(:ammo_types) => [AmmoType.t()],
+ optional(:actions) => Rendered.t(),
+ optional(any()) => any()
+ },
+ Socket.t()
+ ) :: {:ok, Socket.t()}
+ def update(%{id: _id, ammo_types: _ammo_types, current_user: _current_user} = assigns, socket) do
+ socket =
+ socket
+ |> assign(assigns)
+ |> assign_new(:show_used, fn -> false end)
+ |> assign_new(:actions, fn -> [] end)
+ |> display_ammo_types()
+
+ {:ok, socket}
+ end
+
+ defp display_ammo_types(
+ %{
+ assigns: %{
+ ammo_types: ammo_types,
+ current_user: current_user,
+ show_used: show_used,
+ actions: actions
+ }
+ } = socket
+ ) do
+ columns =
+ [
+ %{label: gettext("Name"), key: :name, type: :name},
+ %{label: gettext("Bullet type"), key: :bullet_type, type: :string},
+ %{label: gettext("Bullet core"), key: :bullet_core, type: :string},
+ %{label: gettext("Cartridge"), key: :cartridge, type: :string},
+ %{label: gettext("Caliber"), key: :caliber, type: :string},
+ %{label: gettext("Case material"), key: :case_material, type: :string},
+ %{label: gettext("Jacket type"), key: :jacket_type, type: :string},
+ %{label: gettext("Muzzle velocity"), key: :muzzle_velocity, type: :string},
+ %{label: gettext("Powder type"), key: :powder_type, type: :string},
+ %{
+ label: gettext("Powder grains per charge"),
+ key: :powder_grains_per_charge,
+ type: :string
+ },
+ %{label: gettext("Grains"), key: :grains, type: :string},
+ %{label: gettext("Pressure"), key: :pressure, type: :string},
+ %{label: gettext("Primer type"), key: :primer_type, type: :string},
+ %{label: gettext("Firing type"), key: :firing_type, type: :string},
+ %{label: gettext("Tracer"), key: :tracer, type: :boolean},
+ %{label: gettext("Incendiary"), key: :incendiary, type: :boolean},
+ %{label: gettext("Blank"), key: :blank, type: :boolean},
+ %{label: gettext("Corrosive"), key: :corrosive, type: :boolean},
+ %{label: gettext("Manufacturer"), key: :manufacturer, type: :string},
+ %{label: gettext("UPC"), key: "upc", type: :string}
+ ]
+ |> Enum.filter(fn %{key: key, type: type} ->
+ # remove columns if all values match defaults
+ default_value = if type == :boolean, do: false, else: nil
+
+ ammo_types
+ |> Enum.any?(fn ammo_type ->
+ not (ammo_type |> Map.get(key) == default_value)
+ end)
+ end)
+ |> Kernel.++([
+ %{label: gettext("Rounds"), key: :round_count, type: :round_count}
+ ])
+ |> Kernel.++(
+ if show_used do
+ [
+ %{
+ label: gettext("Used rounds"),
+ key: :used_round_count,
+ type: :used_round_count
+ },
+ %{
+ label: gettext("Total ever rounds"),
+ key: :historical_round_count,
+ type: :historical_round_count
+ }
+ ]
+ else
+ []
+ end
+ )
+ |> Kernel.++([%{label: gettext("Packs"), key: :ammo_count, type: :ammo_count}])
+ |> Kernel.++(
+ if show_used do
+ [
+ %{
+ label: gettext("Used packs"),
+ key: :used_ammo_count,
+ type: :used_ammo_count
+ },
+ %{
+ label: gettext("Total ever packs"),
+ key: :historical_ammo_count,
+ type: :historical_ammo_count
+ }
+ ]
+ else
+ []
+ end
+ )
+ |> Kernel.++([
+ %{label: gettext("Average CPR"), key: :avg_price_paid, type: :avg_price_paid},
+ %{label: nil, key: "actions", type: :actions, sortable: false}
+ ])
+
+ rows =
+ ammo_types
+ |> Enum.map(fn ammo_type ->
+ ammo_type
+ |> get_ammo_type_values(columns, %{actions: actions, current_user: current_user})
+ end)
+
+ socket |> assign(columns: columns, rows: rows)
+ end
+
+ @impl true
+ def render(assigns) do
+ ~H"""
+
+ <.live_component
+ module={CanneryWeb.Components.TableComponent}
+ id={"table-#{@id}"}
+ columns={@columns}
+ rows={@rows}
+ />
+
+ """
+ end
+
+ defp get_ammo_type_values(ammo_type, columns, extra_data) do
+ columns
+ |> Map.new(fn %{key: key, type: type} ->
+ {key, get_ammo_type_value(type, key, ammo_type, extra_data)}
+ end)
+ end
+
+ defp get_ammo_type_value(:boolean, key, ammo_type, _other_data),
+ do: ammo_type |> Map.get(key) |> humanize()
+
+ defp get_ammo_type_value(:round_count, _key, ammo_type, %{current_user: current_user}),
+ do: ammo_type |> Ammo.get_round_count_for_ammo_type(current_user)
+
+ defp get_ammo_type_value(:historical_round_count, _key, ammo_type, %{current_user: current_user}),
+ do: ammo_type |> Ammo.get_historical_count_for_ammo_type(current_user)
+
+ defp get_ammo_type_value(:used_round_count, _key, ammo_type, %{current_user: current_user}),
+ do: ammo_type |> Ammo.get_used_count_for_ammo_type(current_user)
+
+ defp get_ammo_type_value(:historical_ammo_count, _key, ammo_type, %{current_user: current_user}),
+ do: ammo_type |> Ammo.get_ammo_groups_count_for_type(current_user, true)
+
+ defp get_ammo_type_value(:used_ammo_count, _key, ammo_type, %{current_user: current_user}),
+ do: ammo_type |> Ammo.get_used_ammo_groups_count_for_type(current_user)
+
+ defp get_ammo_type_value(:ammo_count, _key, ammo_type, %{current_user: current_user}),
+ do: ammo_type |> Ammo.get_ammo_groups_count_for_type(current_user)
+
+ defp get_ammo_type_value(:avg_price_paid, _key, ammo_type, %{current_user: current_user}) do
+ case ammo_type |> Ammo.get_average_cost_for_ammo_type!(current_user) do
+ nil -> gettext("No cost information")
+ count -> gettext("$%{amount}", amount: count |> :erlang.float_to_binary(decimals: 2))
+ end
+ end
+
+ defp get_ammo_type_value(:name, _key, ammo_type, _other_data) do
+ assigns = %{ammo_type: ammo_type}
+
+ ~H"""
+ <.link
+ navigate={Routes.ammo_type_show_path(Endpoint, :show, @ammo_type)}
+ class="link"
+ data-qa={"view-name-#{@ammo_type.id}"}
+ >
+ <%= @ammo_type.name %>
+
+ """
+ end
+
+ defp get_ammo_type_value(:actions, _key, ammo_type, %{actions: actions}) do
+ assigns = %{actions: actions, ammo_type: ammo_type}
+
+ ~H"""
+ <%= render_slot(@actions, @ammo_type) %>
+ """
+ end
+
+ defp get_ammo_type_value(nil, _key, _ammo_type, _other_data), do: nil
+
+ defp get_ammo_type_value(_other, key, ammo_type, _other_data), do: ammo_type |> Map.get(key)
+end
diff --git a/lib/cannery_web/live/ammo_type_live/index.ex b/lib/cannery_web/live/ammo_type_live/index.ex
index 9a2b22ea..18e215ba 100644
--- a/lib/cannery_web/live/ammo_type_live/index.ex
+++ b/lib/cannery_web/live/ammo_type_live/index.ex
@@ -90,198 +90,7 @@ defmodule CanneryWeb.AmmoTypeLive.Index do
socket |> push_patch(to: Routes.ammo_type_index_path(Endpoint, :search, search_term))}
end
- defp list_ammo_types(
- %{assigns: %{search: search, current_user: current_user, show_used: show_used}} = socket
- ) do
- ammo_types = Ammo.list_ammo_types(search, current_user)
-
- columns =
- [
- %{label: gettext("Name"), key: :name, type: :name},
- %{label: gettext("Bullet type"), key: :bullet_type, type: :string},
- %{label: gettext("Bullet core"), key: :bullet_core, type: :string},
- %{label: gettext("Cartridge"), key: :cartridge, type: :string},
- %{label: gettext("Caliber"), key: :caliber, type: :string},
- %{label: gettext("Case material"), key: :case_material, type: :string},
- %{label: gettext("Jacket type"), key: :jacket_type, type: :string},
- %{label: gettext("Muzzle velocity"), key: :muzzle_velocity, type: :string},
- %{label: gettext("Powder type"), key: :powder_type, type: :string},
- %{
- label: gettext("Powder grains per charge"),
- key: :powder_grains_per_charge,
- type: :string
- },
- %{label: gettext("Grains"), key: :grains, type: :string},
- %{label: gettext("Pressure"), key: :pressure, type: :string},
- %{label: gettext("Primer type"), key: :primer_type, type: :string},
- %{label: gettext("Firing type"), key: :firing_type, type: :string},
- %{label: gettext("Tracer"), key: :tracer, type: :boolean},
- %{label: gettext("Incendiary"), key: :incendiary, type: :boolean},
- %{label: gettext("Blank"), key: :blank, type: :boolean},
- %{label: gettext("Corrosive"), key: :corrosive, type: :boolean},
- %{label: gettext("Manufacturer"), key: :manufacturer, type: :string},
- %{label: gettext("UPC"), key: "upc", type: :string}
- ]
- |> Enum.filter(fn %{key: key, type: type} ->
- # remove columns if all values match defaults
- default_value = if type == :boolean, do: false, else: nil
-
- ammo_types
- |> Enum.any?(fn ammo_type ->
- not (ammo_type |> Map.get(key) == default_value)
- end)
- end)
- |> Kernel.++([
- %{label: gettext("Rounds"), key: :round_count, type: :round_count}
- ])
- |> Kernel.++(
- if show_used do
- [
- %{
- label: gettext("Used rounds"),
- key: :used_round_count,
- type: :used_round_count
- },
- %{
- label: gettext("Total ever rounds"),
- key: :historical_round_count,
- type: :historical_round_count
- }
- ]
- else
- []
- end
- )
- |> Kernel.++([%{label: gettext("Packs"), key: :ammo_count, type: :ammo_count}])
- |> Kernel.++(
- if show_used do
- [
- %{
- label: gettext("Used packs"),
- key: :used_ammo_count,
- type: :used_ammo_count
- },
- %{
- label: gettext("Total ever packs"),
- key: :historical_ammo_count,
- type: :historical_ammo_count
- }
- ]
- else
- []
- end
- )
- |> Kernel.++([
- %{label: gettext("Average CPR"), key: :avg_price_paid, type: :avg_price_paid},
- %{label: nil, key: "actions", type: :actions, sortable: false}
- ])
-
- rows =
- ammo_types
- |> Enum.map(fn ammo_type -> ammo_type |> get_ammo_type_values(columns, current_user) end)
-
- socket |> assign(columns: columns, rows: rows)
+ defp list_ammo_types(%{assigns: %{search: search, current_user: current_user}} = socket) do
+ socket |> assign(ammo_types: Ammo.list_ammo_types(search, current_user))
end
-
- defp get_ammo_type_values(ammo_type, columns, current_user) do
- columns
- |> Map.new(fn %{key: key, type: type} ->
- {key, get_ammo_type_value(type, key, ammo_type, current_user)}
- end)
- end
-
- defp get_ammo_type_value(:boolean, key, ammo_type, _current_user),
- do: ammo_type |> Map.get(key) |> humanize()
-
- defp get_ammo_type_value(:round_count, _key, ammo_type, current_user),
- do: ammo_type |> Ammo.get_round_count_for_ammo_type(current_user)
-
- defp get_ammo_type_value(:historical_round_count, _key, ammo_type, current_user),
- do: ammo_type |> Ammo.get_historical_count_for_ammo_type(current_user)
-
- defp get_ammo_type_value(:used_round_count, _key, ammo_type, current_user),
- do: ammo_type |> Ammo.get_used_count_for_ammo_type(current_user)
-
- defp get_ammo_type_value(:historical_ammo_count, _key, ammo_type, current_user),
- do: ammo_type |> Ammo.get_ammo_groups_count_for_type(current_user, true)
-
- defp get_ammo_type_value(:used_ammo_count, _key, ammo_type, current_user),
- do: ammo_type |> Ammo.get_used_ammo_groups_count_for_type(current_user)
-
- defp get_ammo_type_value(:ammo_count, _key, ammo_type, current_user),
- do: ammo_type |> Ammo.get_ammo_groups_count_for_type(current_user)
-
- defp get_ammo_type_value(:avg_price_paid, _key, ammo_type, current_user) do
- case ammo_type |> Ammo.get_average_cost_for_ammo_type!(current_user) do
- nil -> gettext("No cost information")
- count -> gettext("$%{amount}", amount: count |> :erlang.float_to_binary(decimals: 2))
- end
- end
-
- defp get_ammo_type_value(:name, _key, ammo_type, _current_user) do
- assigns = %{ammo_type: ammo_type}
-
- ~H"""
- <.link
- navigate={Routes.ammo_type_show_path(Endpoint, :show, @ammo_type)}
- class="link"
- data-qa={"view-name-#{@ammo_type.id}"}
- >
- <%= @ammo_type.name %>
-
- """
- end
-
- defp get_ammo_type_value(:actions, _key, ammo_type, _current_user) do
- assigns = %{ammo_type: ammo_type}
-
- ~H"""
-
- <.link
- navigate={Routes.ammo_type_show_path(Endpoint, :show, @ammo_type)}
- class="text-primary-600 link"
- data-qa={"view-#{@ammo_type.id}"}
- >
-
-
-
- <.link
- patch={Routes.ammo_type_index_path(Endpoint, :edit, @ammo_type)}
- class="text-primary-600 link"
- data-qa={"edit-#{@ammo_type.id}"}
- >
-
-
-
- <.link
- patch={Routes.ammo_type_index_path(Endpoint, :clone, @ammo_type)}
- class="text-primary-600 link"
- data-qa={"clone-#{@ammo_type.id}"}
- >
-
-
-
- <.link
- href="#"
- class="text-primary-600 link"
- phx-click="delete"
- phx-value-id={@ammo_type.id}
- data-confirm={
- dgettext(
- "prompts",
- "Are you sure you want to delete %{name}? This will delete all %{name} type ammo as well!",
- name: @ammo_type.name
- )
- }
- data-qa={"delete-#{@ammo_type.id}"}
- >
-
-
-
- """
- end
-
- defp get_ammo_type_value(nil, _key, _ammo_type, _current_user), do: nil
-
- defp get_ammo_type_value(_other, key, ammo_type, _current_user), do: ammo_type |> Map.get(key)
end
diff --git a/lib/cannery_web/live/ammo_type_live/index.html.heex b/lib/cannery_web/live/ammo_type_live/index.html.heex
index bab4d7e7..67a85f33 100644
--- a/lib/cannery_web/live/ammo_type_live/index.html.heex
+++ b/lib/cannery_web/live/ammo_type_live/index.html.heex
@@ -3,7 +3,7 @@
<%= gettext("Catalog") %>
- <%= if @rows |> Enum.empty?() do %>
+ <%= if @ammo_types |> Enum.empty?() and @search |> is_nil() do %>
<%= gettext("No Ammo types") %>
<%= display_emoji("😔") %>
@@ -41,13 +41,66 @@
- <.live_component
- module={CanneryWeb.Components.TableComponent}
- id="ammo_types_index_table"
- action={@live_action}
- columns={@columns}
- rows={@rows}
- />
+ <%= if @ammo_types |> Enum.empty?() do %>
+
+ <%= gettext("No Ammo types") %>
+ <%= display_emoji("😔") %>
+
+ <% else %>
+ <.live_component
+ module={CanneryWeb.Components.AmmoTypeTableComponent}
+ id="ammo_types_index_table"
+ action={@live_action}
+ ammo_types={@ammo_types}
+ current_user={@current_user}
+ show_used={@show_used}
+ >
+ <:actions :let={ammo_type}>
+
+ <.link
+ navigate={Routes.ammo_type_show_path(Endpoint, :show, ammo_type)}
+ class="text-primary-600 link"
+ data-qa={"view-#{ammo_type.id}"}
+ >
+
+
+
+ <.link
+ patch={Routes.ammo_type_index_path(Endpoint, :edit, ammo_type)}
+ class="text-primary-600 link"
+ data-qa={"edit-#{ammo_type.id}"}
+ >
+
+
+
+ <.link
+ patch={Routes.ammo_type_index_path(Endpoint, :clone, ammo_type)}
+ class="text-primary-600 link"
+ data-qa={"clone-#{ammo_type.id}"}
+ >
+
+
+
+ <.link
+ href="#"
+ class="text-primary-600 link"
+ phx-click="delete"
+ phx-value-id={ammo_type.id}
+ data-confirm={
+ dgettext(
+ "prompts",
+ "Are you sure you want to delete %{name}? This will delete all %{name} type ammo as well!",
+ name: ammo_type.name
+ )
+ }
+ data-qa={"delete-#{ammo_type.id}"}
+ >
+
+
+
+
+
+ <% end %>
<% end %>
diff --git a/priv/gettext/de/LC_MESSAGES/default.po b/priv/gettext/de/LC_MESSAGES/default.po
index c8eaba50..bae16150 100644
--- a/priv/gettext/de/LC_MESSAGES/default.po
+++ b/priv/gettext/de/LC_MESSAGES/default.po
@@ -64,8 +64,8 @@ msgstr "Munitionsarten"
msgid "Background color"
msgstr "Hintergrundfarbe"
+#: lib/cannery_web/components/ammo_type_table_component.ex:65
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:140
-#: lib/cannery_web/live/ammo_type_live/index.ex:120
#, elixir-autogen, elixir-format
msgid "Blank"
msgstr "Knallpatrone"
@@ -75,32 +75,32 @@ msgstr "Knallpatrone"
msgid "Brass"
msgstr "Messing"
+#: lib/cannery_web/components/ammo_type_table_component.ex:47
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:44
-#: lib/cannery_web/live/ammo_type_live/index.ex:102
#, elixir-autogen, elixir-format
msgid "Bullet core"
msgstr "Projektilkern"
+#: lib/cannery_web/components/ammo_type_table_component.ex:46
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:37
-#: lib/cannery_web/live/ammo_type_live/index.ex:101
#, elixir-autogen, elixir-format
msgid "Bullet type"
msgstr "Patronenart"
+#: lib/cannery_web/components/ammo_type_table_component.ex:49
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:58
-#: lib/cannery_web/live/ammo_type_live/index.ex:104
#, elixir-autogen, elixir-format
msgid "Caliber"
msgstr "Kaliber"
+#: lib/cannery_web/components/ammo_type_table_component.ex:48
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:51
-#: lib/cannery_web/live/ammo_type_live/index.ex:103
#, elixir-autogen, elixir-format
msgid "Cartridge"
msgstr "Patrone"
+#: lib/cannery_web/components/ammo_type_table_component.ex:50
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:65
-#: lib/cannery_web/live/ammo_type_live/index.ex:105
#, elixir-autogen, elixir-format
msgid "Case material"
msgstr "Gehäusematerial"
@@ -120,8 +120,8 @@ msgstr "Behälter"
msgid "Containers"
msgstr "Behälter"
+#: lib/cannery_web/components/ammo_type_table_component.ex:66
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:144
-#: lib/cannery_web/live/ammo_type_live/index.ex:121
#, elixir-autogen, elixir-format
msgid "Corrosive"
msgstr "Korrosiv"
@@ -176,14 +176,14 @@ msgstr "Beispiel Munitionstyp Abkürzungen"
msgid "FMJ"
msgstr "VM"
+#: lib/cannery_web/components/ammo_type_table_component.ex:59
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:103
-#: lib/cannery_web/live/ammo_type_live/index.ex:114
#, elixir-autogen, elixir-format
msgid "Grains"
msgstr "Körner"
+#: lib/cannery_web/components/ammo_type_table_component.ex:64
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:136
-#: lib/cannery_web/live/ammo_type_live/index.ex:119
#, elixir-autogen, elixir-format
msgid "Incendiary"
msgstr "Brandmunition"
@@ -233,8 +233,8 @@ msgstr "Standort:"
msgid "Magazine, Clip, Ammo Box, etc"
msgstr "Magazin, Ladestreifen, Munitionskiste usw."
+#: lib/cannery_web/components/ammo_type_table_component.ex:67
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:148
-#: lib/cannery_web/live/ammo_type_live/index.ex:122
#, elixir-autogen, elixir-format
msgid "Manufacturer"
msgstr "Hersteller"
@@ -249,8 +249,8 @@ msgstr "Metallene Munitionskiste mit Anime-Girl-Sticker"
msgid "My cool ammo can"
msgstr "Meine coole Munitionskiste"
+#: lib/cannery_web/components/ammo_type_table_component.ex:45
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:20
-#: lib/cannery_web/live/ammo_type_live/index.ex:100
#: lib/cannery_web/live/container_live/form_component.html.heex:20
#: lib/cannery_web/live/container_live/index.ex:121
#: lib/cannery_web/live/invite_live/form_component.html.heex:20
@@ -328,8 +328,8 @@ msgstr "Bemerkungen:"
msgid "On the bookshelf"
msgstr "Auf dem Bücherregal"
+#: lib/cannery_web/components/ammo_type_table_component.ex:60
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:111
-#: lib/cannery_web/live/ammo_type_live/index.ex:115
#, elixir-autogen, elixir-format
msgid "Pressure"
msgstr "Druck"
@@ -345,8 +345,8 @@ msgstr "Kaufpreis"
msgid "Price paid:"
msgstr "Kaufpreis:"
+#: lib/cannery_web/components/ammo_type_table_component.ex:61
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:118
-#: lib/cannery_web/live/ammo_type_live/index.ex:116
#, elixir-autogen, elixir-format
msgid "Primer type"
msgstr "Zündertyp"
@@ -412,8 +412,8 @@ msgstr "Textfarbe"
msgid "The self-hosted firearm tracker website"
msgstr "Die selbst-gehostete Website zur Verwaltung von Schusswaffen"
+#: lib/cannery_web/components/ammo_type_table_component.ex:63
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:132
-#: lib/cannery_web/live/ammo_type_live/index.ex:118
#, elixir-autogen, elixir-format
msgid "Tracer"
msgstr "Leuchtspur"
@@ -550,9 +550,9 @@ msgstr "Schießkladde"
#: lib/cannery_web/components/ammo_group_card.ex:78
#: lib/cannery_web/components/ammo_group_table_component.ex:152
#: lib/cannery_web/components/ammo_group_table_component.ex:224
+#: lib/cannery_web/components/ammo_type_table_component.ex:179
#: lib/cannery_web/live/ammo_group_live/show.html.heex:37
#: lib/cannery_web/live/ammo_group_live/show.html.heex:44
-#: lib/cannery_web/live/ammo_type_live/index.ex:217
#: lib/cannery_web/live/ammo_type_live/show.html.heex:136
#, elixir-autogen, elixir-format
msgid "$%{amount}"
@@ -563,32 +563,32 @@ msgstr "$%{amount}"
msgid "Bimetal"
msgstr "Bimetall"
+#: lib/cannery_web/components/ammo_type_table_component.ex:51
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:72
-#: lib/cannery_web/live/ammo_type_live/index.ex:106
#, elixir-autogen, elixir-format
msgid "Jacket type"
msgstr "Patronenhülse"
+#: lib/cannery_web/components/ammo_type_table_component.ex:52
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:79
-#: lib/cannery_web/live/ammo_type_live/index.ex:107
#, elixir-autogen, elixir-format
msgid "Muzzle velocity"
msgstr "Mündungsgeschwindigkeit"
+#: lib/cannery_web/components/ammo_type_table_component.ex:55
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:93
-#: lib/cannery_web/live/ammo_type_live/index.ex:110
#, elixir-autogen, elixir-format
msgid "Powder grains per charge"
msgstr "Pulverkörner pro Ladung"
+#: lib/cannery_web/components/ammo_type_table_component.ex:53
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:89
-#: lib/cannery_web/live/ammo_type_live/index.ex:108
#, elixir-autogen, elixir-format
msgid "Powder type"
msgstr "Pulverart"
+#: lib/cannery_web/components/ammo_type_table_component.ex:68
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:152
-#: lib/cannery_web/live/ammo_type_live/index.ex:123
#, elixir-autogen, elixir-format
msgid "UPC"
msgstr "UPC"
@@ -619,8 +619,8 @@ msgstr "Markiert"
msgid "Unstage"
msgstr "Demarkiert"
+#: lib/cannery_web/components/ammo_type_table_component.ex:62
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:125
-#: lib/cannery_web/live/ammo_type_live/index.ex:117
#, elixir-autogen, elixir-format
msgid "Firing type"
msgstr "Patronenhülsenform"
@@ -655,7 +655,7 @@ msgid "Rounds:"
msgstr "Patronen:"
#: lib/cannery_web/components/ammo_group_table_component.ex:221
-#: lib/cannery_web/live/ammo_type_live/index.ex:216
+#: lib/cannery_web/components/ammo_type_table_component.ex:178
#: lib/cannery_web/live/ammo_type_live/show.html.heex:142
#, elixir-autogen, elixir-format
msgid "No cost information"
@@ -860,13 +860,13 @@ msgstr ""
msgid "Rounds shot: %{count}"
msgstr "Patronen abgefeuert"
-#: lib/cannery_web/live/ammo_type_live/index.ex:155
+#: lib/cannery_web/components/ammo_type_table_component.ex:100
#: lib/cannery_web/live/container_live/index.ex:125
#, elixir-autogen, elixir-format, fuzzy
msgid "Packs"
msgstr ""
-#: lib/cannery_web/live/ammo_type_live/index.ex:135
+#: lib/cannery_web/components/ammo_type_table_component.ex:80
#: lib/cannery_web/live/container_live/index.ex:126
#, elixir-autogen, elixir-format, fuzzy
msgid "Rounds"
@@ -879,7 +879,7 @@ msgstr "Patronen:"
msgid "View as table"
msgstr ""
-#: lib/cannery_web/live/ammo_type_live/index.ex:165
+#: lib/cannery_web/components/ammo_type_table_component.ex:110
#, elixir-autogen, elixir-format
msgid "Total ever packs"
msgstr ""
@@ -889,7 +889,7 @@ msgstr ""
msgid "Total ever packs:"
msgstr ""
-#: lib/cannery_web/live/ammo_type_live/index.ex:146
+#: lib/cannery_web/components/ammo_type_table_component.ex:91
#, elixir-autogen, elixir-format, fuzzy
msgid "Total ever rounds"
msgstr "Summe aller Patronen"
@@ -899,7 +899,7 @@ msgstr "Summe aller Patronen"
msgid "Total ever rounds:"
msgstr "Summe abgegebener Schüsse:"
-#: lib/cannery_web/live/ammo_type_live/index.ex:160
+#: lib/cannery_web/components/ammo_type_table_component.ex:105
#, elixir-autogen, elixir-format
msgid "Used packs"
msgstr ""
@@ -909,7 +909,7 @@ msgstr ""
msgid "Used packs:"
msgstr ""
-#: lib/cannery_web/live/ammo_type_live/index.ex:141
+#: lib/cannery_web/components/ammo_type_table_component.ex:86
#, elixir-autogen, elixir-format, fuzzy
msgid "Used rounds"
msgstr ""
@@ -1024,7 +1024,7 @@ msgstr "Leuchtspur"
msgid "UPC:"
msgstr "UPC"
-#: lib/cannery_web/live/ammo_type_live/index.ex:175
+#: lib/cannery_web/components/ammo_type_table_component.ex:120
#: lib/cannery_web/live/ammo_type_live/show.html.heex:132
#, elixir-autogen, elixir-format
msgid "Average CPR"
@@ -1110,6 +1110,7 @@ msgid "Edit ammo"
msgstr "Munitionstyp bearbeiten"
#: lib/cannery_web/live/ammo_type_live/index.html.heex:8
+#: lib/cannery_web/live/ammo_type_live/index.html.heex:46
#, elixir-autogen, elixir-format, fuzzy
msgid "No Ammo types"
msgstr "Keine Munitionsarten"
diff --git a/priv/gettext/de/LC_MESSAGES/prompts.po b/priv/gettext/de/LC_MESSAGES/prompts.po
index 662ddc30..49b66f5f 100644
--- a/priv/gettext/de/LC_MESSAGES/prompts.po
+++ b/priv/gettext/de/LC_MESSAGES/prompts.po
@@ -289,7 +289,7 @@ msgid_plural "Ammo added successfully"
msgstr[0] "Munitionsgruppe erfolgreich aktualisiert"
msgstr[1] "Munitionsgruppe erfolgreich aktualisiert"
-#: lib/cannery_web/live/ammo_type_live/index.ex:270
+#: lib/cannery_web/live/ammo_type_live/index.html.heex:90
#: lib/cannery_web/live/ammo_type_live/show.html.heex:28
#, elixir-autogen, elixir-format, fuzzy
msgid "Are you sure you want to delete %{name}? This will delete all %{name} type ammo as well!"
diff --git a/priv/gettext/default.pot b/priv/gettext/default.pot
index 749bde23..a7278b61 100644
--- a/priv/gettext/default.pot
+++ b/priv/gettext/default.pot
@@ -49,8 +49,8 @@ msgstr ""
msgid "Background color"
msgstr ""
+#: lib/cannery_web/components/ammo_type_table_component.ex:65
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:140
-#: lib/cannery_web/live/ammo_type_live/index.ex:120
#, elixir-autogen, elixir-format
msgid "Blank"
msgstr ""
@@ -60,32 +60,32 @@ msgstr ""
msgid "Brass"
msgstr ""
+#: lib/cannery_web/components/ammo_type_table_component.ex:47
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:44
-#: lib/cannery_web/live/ammo_type_live/index.ex:102
#, elixir-autogen, elixir-format
msgid "Bullet core"
msgstr ""
+#: lib/cannery_web/components/ammo_type_table_component.ex:46
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:37
-#: lib/cannery_web/live/ammo_type_live/index.ex:101
#, elixir-autogen, elixir-format
msgid "Bullet type"
msgstr ""
+#: lib/cannery_web/components/ammo_type_table_component.ex:49
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:58
-#: lib/cannery_web/live/ammo_type_live/index.ex:104
#, elixir-autogen, elixir-format
msgid "Caliber"
msgstr ""
+#: lib/cannery_web/components/ammo_type_table_component.ex:48
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:51
-#: lib/cannery_web/live/ammo_type_live/index.ex:103
#, elixir-autogen, elixir-format
msgid "Cartridge"
msgstr ""
+#: lib/cannery_web/components/ammo_type_table_component.ex:50
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:65
-#: lib/cannery_web/live/ammo_type_live/index.ex:105
#, elixir-autogen, elixir-format
msgid "Case material"
msgstr ""
@@ -105,8 +105,8 @@ msgstr ""
msgid "Containers"
msgstr ""
+#: lib/cannery_web/components/ammo_type_table_component.ex:66
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:144
-#: lib/cannery_web/live/ammo_type_live/index.ex:121
#, elixir-autogen, elixir-format
msgid "Corrosive"
msgstr ""
@@ -161,14 +161,14 @@ msgstr ""
msgid "FMJ"
msgstr ""
+#: lib/cannery_web/components/ammo_type_table_component.ex:59
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:103
-#: lib/cannery_web/live/ammo_type_live/index.ex:114
#, elixir-autogen, elixir-format
msgid "Grains"
msgstr ""
+#: lib/cannery_web/components/ammo_type_table_component.ex:64
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:136
-#: lib/cannery_web/live/ammo_type_live/index.ex:119
#, elixir-autogen, elixir-format
msgid "Incendiary"
msgstr ""
@@ -218,8 +218,8 @@ msgstr ""
msgid "Magazine, Clip, Ammo Box, etc"
msgstr ""
+#: lib/cannery_web/components/ammo_type_table_component.ex:67
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:148
-#: lib/cannery_web/live/ammo_type_live/index.ex:122
#, elixir-autogen, elixir-format
msgid "Manufacturer"
msgstr ""
@@ -234,8 +234,8 @@ msgstr ""
msgid "My cool ammo can"
msgstr ""
+#: lib/cannery_web/components/ammo_type_table_component.ex:45
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:20
-#: lib/cannery_web/live/ammo_type_live/index.ex:100
#: lib/cannery_web/live/container_live/form_component.html.heex:20
#: lib/cannery_web/live/container_live/index.ex:121
#: lib/cannery_web/live/invite_live/form_component.html.heex:20
@@ -313,8 +313,8 @@ msgstr ""
msgid "On the bookshelf"
msgstr ""
+#: lib/cannery_web/components/ammo_type_table_component.ex:60
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:111
-#: lib/cannery_web/live/ammo_type_live/index.ex:115
#, elixir-autogen, elixir-format
msgid "Pressure"
msgstr ""
@@ -330,8 +330,8 @@ msgstr ""
msgid "Price paid:"
msgstr ""
+#: lib/cannery_web/components/ammo_type_table_component.ex:61
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:118
-#: lib/cannery_web/live/ammo_type_live/index.ex:116
#, elixir-autogen, elixir-format
msgid "Primer type"
msgstr ""
@@ -395,8 +395,8 @@ msgstr ""
msgid "The self-hosted firearm tracker website"
msgstr ""
+#: lib/cannery_web/components/ammo_type_table_component.ex:63
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:132
-#: lib/cannery_web/live/ammo_type_live/index.ex:118
#, elixir-autogen, elixir-format
msgid "Tracer"
msgstr ""
@@ -533,9 +533,9 @@ msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:78
#: lib/cannery_web/components/ammo_group_table_component.ex:152
#: lib/cannery_web/components/ammo_group_table_component.ex:224
+#: lib/cannery_web/components/ammo_type_table_component.ex:179
#: lib/cannery_web/live/ammo_group_live/show.html.heex:37
#: lib/cannery_web/live/ammo_group_live/show.html.heex:44
-#: lib/cannery_web/live/ammo_type_live/index.ex:217
#: lib/cannery_web/live/ammo_type_live/show.html.heex:136
#, elixir-autogen, elixir-format
msgid "$%{amount}"
@@ -546,32 +546,32 @@ msgstr ""
msgid "Bimetal"
msgstr ""
+#: lib/cannery_web/components/ammo_type_table_component.ex:51
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:72
-#: lib/cannery_web/live/ammo_type_live/index.ex:106
#, elixir-autogen, elixir-format
msgid "Jacket type"
msgstr ""
+#: lib/cannery_web/components/ammo_type_table_component.ex:52
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:79
-#: lib/cannery_web/live/ammo_type_live/index.ex:107
#, elixir-autogen, elixir-format
msgid "Muzzle velocity"
msgstr ""
+#: lib/cannery_web/components/ammo_type_table_component.ex:55
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:93
-#: lib/cannery_web/live/ammo_type_live/index.ex:110
#, elixir-autogen, elixir-format
msgid "Powder grains per charge"
msgstr ""
+#: lib/cannery_web/components/ammo_type_table_component.ex:53
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:89
-#: lib/cannery_web/live/ammo_type_live/index.ex:108
#, elixir-autogen, elixir-format
msgid "Powder type"
msgstr ""
+#: lib/cannery_web/components/ammo_type_table_component.ex:68
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:152
-#: lib/cannery_web/live/ammo_type_live/index.ex:123
#, elixir-autogen, elixir-format
msgid "UPC"
msgstr ""
@@ -602,8 +602,8 @@ msgstr ""
msgid "Unstage"
msgstr ""
+#: lib/cannery_web/components/ammo_type_table_component.ex:62
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:125
-#: lib/cannery_web/live/ammo_type_live/index.ex:117
#, elixir-autogen, elixir-format
msgid "Firing type"
msgstr ""
@@ -638,7 +638,7 @@ msgid "Rounds:"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:221
-#: lib/cannery_web/live/ammo_type_live/index.ex:216
+#: lib/cannery_web/components/ammo_type_table_component.ex:178
#: lib/cannery_web/live/ammo_type_live/show.html.heex:142
#, elixir-autogen, elixir-format
msgid "No cost information"
@@ -843,13 +843,13 @@ msgstr ""
msgid "Rounds shot: %{count}"
msgstr ""
-#: lib/cannery_web/live/ammo_type_live/index.ex:155
+#: lib/cannery_web/components/ammo_type_table_component.ex:100
#: lib/cannery_web/live/container_live/index.ex:125
#, elixir-autogen, elixir-format
msgid "Packs"
msgstr ""
-#: lib/cannery_web/live/ammo_type_live/index.ex:135
+#: lib/cannery_web/components/ammo_type_table_component.ex:80
#: lib/cannery_web/live/container_live/index.ex:126
#, elixir-autogen, elixir-format
msgid "Rounds"
@@ -862,7 +862,7 @@ msgstr ""
msgid "View as table"
msgstr ""
-#: lib/cannery_web/live/ammo_type_live/index.ex:165
+#: lib/cannery_web/components/ammo_type_table_component.ex:110
#, elixir-autogen, elixir-format
msgid "Total ever packs"
msgstr ""
@@ -872,7 +872,7 @@ msgstr ""
msgid "Total ever packs:"
msgstr ""
-#: lib/cannery_web/live/ammo_type_live/index.ex:146
+#: lib/cannery_web/components/ammo_type_table_component.ex:91
#, elixir-autogen, elixir-format
msgid "Total ever rounds"
msgstr ""
@@ -882,7 +882,7 @@ msgstr ""
msgid "Total ever rounds:"
msgstr ""
-#: lib/cannery_web/live/ammo_type_live/index.ex:160
+#: lib/cannery_web/components/ammo_type_table_component.ex:105
#, elixir-autogen, elixir-format
msgid "Used packs"
msgstr ""
@@ -892,7 +892,7 @@ msgstr ""
msgid "Used packs:"
msgstr ""
-#: lib/cannery_web/live/ammo_type_live/index.ex:141
+#: lib/cannery_web/components/ammo_type_table_component.ex:86
#, elixir-autogen, elixir-format
msgid "Used rounds"
msgstr ""
@@ -1007,7 +1007,7 @@ msgstr ""
msgid "UPC:"
msgstr ""
-#: lib/cannery_web/live/ammo_type_live/index.ex:175
+#: lib/cannery_web/components/ammo_type_table_component.ex:120
#: lib/cannery_web/live/ammo_type_live/show.html.heex:132
#, elixir-autogen, elixir-format
msgid "Average CPR"
@@ -1093,6 +1093,7 @@ msgid "Edit ammo"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.html.heex:8
+#: lib/cannery_web/live/ammo_type_live/index.html.heex:46
#, elixir-autogen, elixir-format
msgid "No Ammo types"
msgstr ""
diff --git a/priv/gettext/en/LC_MESSAGES/default.po b/priv/gettext/en/LC_MESSAGES/default.po
index 99b1da79..1f443b25 100644
--- a/priv/gettext/en/LC_MESSAGES/default.po
+++ b/priv/gettext/en/LC_MESSAGES/default.po
@@ -50,8 +50,8 @@ msgstr ""
msgid "Background color"
msgstr ""
+#: lib/cannery_web/components/ammo_type_table_component.ex:65
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:140
-#: lib/cannery_web/live/ammo_type_live/index.ex:120
#, elixir-autogen, elixir-format
msgid "Blank"
msgstr ""
@@ -61,32 +61,32 @@ msgstr ""
msgid "Brass"
msgstr ""
+#: lib/cannery_web/components/ammo_type_table_component.ex:47
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:44
-#: lib/cannery_web/live/ammo_type_live/index.ex:102
#, elixir-autogen, elixir-format
msgid "Bullet core"
msgstr ""
+#: lib/cannery_web/components/ammo_type_table_component.ex:46
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:37
-#: lib/cannery_web/live/ammo_type_live/index.ex:101
#, elixir-autogen, elixir-format
msgid "Bullet type"
msgstr ""
+#: lib/cannery_web/components/ammo_type_table_component.ex:49
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:58
-#: lib/cannery_web/live/ammo_type_live/index.ex:104
#, elixir-autogen, elixir-format
msgid "Caliber"
msgstr ""
+#: lib/cannery_web/components/ammo_type_table_component.ex:48
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:51
-#: lib/cannery_web/live/ammo_type_live/index.ex:103
#, elixir-autogen, elixir-format
msgid "Cartridge"
msgstr ""
+#: lib/cannery_web/components/ammo_type_table_component.ex:50
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:65
-#: lib/cannery_web/live/ammo_type_live/index.ex:105
#, elixir-autogen, elixir-format
msgid "Case material"
msgstr ""
@@ -106,8 +106,8 @@ msgstr ""
msgid "Containers"
msgstr ""
+#: lib/cannery_web/components/ammo_type_table_component.ex:66
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:144
-#: lib/cannery_web/live/ammo_type_live/index.ex:121
#, elixir-autogen, elixir-format
msgid "Corrosive"
msgstr ""
@@ -162,14 +162,14 @@ msgstr ""
msgid "FMJ"
msgstr ""
+#: lib/cannery_web/components/ammo_type_table_component.ex:59
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:103
-#: lib/cannery_web/live/ammo_type_live/index.ex:114
#, elixir-autogen, elixir-format
msgid "Grains"
msgstr ""
+#: lib/cannery_web/components/ammo_type_table_component.ex:64
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:136
-#: lib/cannery_web/live/ammo_type_live/index.ex:119
#, elixir-autogen, elixir-format
msgid "Incendiary"
msgstr ""
@@ -219,8 +219,8 @@ msgstr ""
msgid "Magazine, Clip, Ammo Box, etc"
msgstr ""
+#: lib/cannery_web/components/ammo_type_table_component.ex:67
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:148
-#: lib/cannery_web/live/ammo_type_live/index.ex:122
#, elixir-autogen, elixir-format
msgid "Manufacturer"
msgstr ""
@@ -235,8 +235,8 @@ msgstr ""
msgid "My cool ammo can"
msgstr ""
+#: lib/cannery_web/components/ammo_type_table_component.ex:45
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:20
-#: lib/cannery_web/live/ammo_type_live/index.ex:100
#: lib/cannery_web/live/container_live/form_component.html.heex:20
#: lib/cannery_web/live/container_live/index.ex:121
#: lib/cannery_web/live/invite_live/form_component.html.heex:20
@@ -314,8 +314,8 @@ msgstr ""
msgid "On the bookshelf"
msgstr ""
+#: lib/cannery_web/components/ammo_type_table_component.ex:60
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:111
-#: lib/cannery_web/live/ammo_type_live/index.ex:115
#, elixir-autogen, elixir-format
msgid "Pressure"
msgstr ""
@@ -331,8 +331,8 @@ msgstr ""
msgid "Price paid:"
msgstr ""
+#: lib/cannery_web/components/ammo_type_table_component.ex:61
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:118
-#: lib/cannery_web/live/ammo_type_live/index.ex:116
#, elixir-autogen, elixir-format
msgid "Primer type"
msgstr ""
@@ -396,8 +396,8 @@ msgstr ""
msgid "The self-hosted firearm tracker website"
msgstr ""
+#: lib/cannery_web/components/ammo_type_table_component.ex:63
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:132
-#: lib/cannery_web/live/ammo_type_live/index.ex:118
#, elixir-autogen, elixir-format
msgid "Tracer"
msgstr ""
@@ -534,9 +534,9 @@ msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:78
#: lib/cannery_web/components/ammo_group_table_component.ex:152
#: lib/cannery_web/components/ammo_group_table_component.ex:224
+#: lib/cannery_web/components/ammo_type_table_component.ex:179
#: lib/cannery_web/live/ammo_group_live/show.html.heex:37
#: lib/cannery_web/live/ammo_group_live/show.html.heex:44
-#: lib/cannery_web/live/ammo_type_live/index.ex:217
#: lib/cannery_web/live/ammo_type_live/show.html.heex:136
#, elixir-autogen, elixir-format
msgid "$%{amount}"
@@ -547,32 +547,32 @@ msgstr ""
msgid "Bimetal"
msgstr ""
+#: lib/cannery_web/components/ammo_type_table_component.ex:51
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:72
-#: lib/cannery_web/live/ammo_type_live/index.ex:106
#, elixir-autogen, elixir-format
msgid "Jacket type"
msgstr ""
+#: lib/cannery_web/components/ammo_type_table_component.ex:52
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:79
-#: lib/cannery_web/live/ammo_type_live/index.ex:107
#, elixir-autogen, elixir-format
msgid "Muzzle velocity"
msgstr ""
+#: lib/cannery_web/components/ammo_type_table_component.ex:55
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:93
-#: lib/cannery_web/live/ammo_type_live/index.ex:110
#, elixir-autogen, elixir-format
msgid "Powder grains per charge"
msgstr ""
+#: lib/cannery_web/components/ammo_type_table_component.ex:53
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:89
-#: lib/cannery_web/live/ammo_type_live/index.ex:108
#, elixir-autogen, elixir-format
msgid "Powder type"
msgstr ""
+#: lib/cannery_web/components/ammo_type_table_component.ex:68
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:152
-#: lib/cannery_web/live/ammo_type_live/index.ex:123
#, elixir-autogen, elixir-format
msgid "UPC"
msgstr ""
@@ -603,8 +603,8 @@ msgstr ""
msgid "Unstage"
msgstr ""
+#: lib/cannery_web/components/ammo_type_table_component.ex:62
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:125
-#: lib/cannery_web/live/ammo_type_live/index.ex:117
#, elixir-autogen, elixir-format
msgid "Firing type"
msgstr ""
@@ -639,7 +639,7 @@ msgid "Rounds:"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:221
-#: lib/cannery_web/live/ammo_type_live/index.ex:216
+#: lib/cannery_web/components/ammo_type_table_component.ex:178
#: lib/cannery_web/live/ammo_type_live/show.html.heex:142
#, elixir-autogen, elixir-format
msgid "No cost information"
@@ -844,13 +844,13 @@ msgstr ""
msgid "Rounds shot: %{count}"
msgstr ""
-#: lib/cannery_web/live/ammo_type_live/index.ex:155
+#: lib/cannery_web/components/ammo_type_table_component.ex:100
#: lib/cannery_web/live/container_live/index.ex:125
#, elixir-autogen, elixir-format, fuzzy
msgid "Packs"
msgstr ""
-#: lib/cannery_web/live/ammo_type_live/index.ex:135
+#: lib/cannery_web/components/ammo_type_table_component.ex:80
#: lib/cannery_web/live/container_live/index.ex:126
#, elixir-autogen, elixir-format, fuzzy
msgid "Rounds"
@@ -863,7 +863,7 @@ msgstr ""
msgid "View as table"
msgstr ""
-#: lib/cannery_web/live/ammo_type_live/index.ex:165
+#: lib/cannery_web/components/ammo_type_table_component.ex:110
#, elixir-autogen, elixir-format
msgid "Total ever packs"
msgstr ""
@@ -873,7 +873,7 @@ msgstr ""
msgid "Total ever packs:"
msgstr ""
-#: lib/cannery_web/live/ammo_type_live/index.ex:146
+#: lib/cannery_web/components/ammo_type_table_component.ex:91
#, elixir-autogen, elixir-format, fuzzy
msgid "Total ever rounds"
msgstr ""
@@ -883,7 +883,7 @@ msgstr ""
msgid "Total ever rounds:"
msgstr ""
-#: lib/cannery_web/live/ammo_type_live/index.ex:160
+#: lib/cannery_web/components/ammo_type_table_component.ex:105
#, elixir-autogen, elixir-format
msgid "Used packs"
msgstr ""
@@ -893,7 +893,7 @@ msgstr ""
msgid "Used packs:"
msgstr ""
-#: lib/cannery_web/live/ammo_type_live/index.ex:141
+#: lib/cannery_web/components/ammo_type_table_component.ex:86
#, elixir-autogen, elixir-format, fuzzy
msgid "Used rounds"
msgstr ""
@@ -1008,7 +1008,7 @@ msgstr ""
msgid "UPC:"
msgstr ""
-#: lib/cannery_web/live/ammo_type_live/index.ex:175
+#: lib/cannery_web/components/ammo_type_table_component.ex:120
#: lib/cannery_web/live/ammo_type_live/show.html.heex:132
#, elixir-autogen, elixir-format
msgid "Average CPR"
@@ -1094,6 +1094,7 @@ msgid "Edit ammo"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.html.heex:8
+#: lib/cannery_web/live/ammo_type_live/index.html.heex:46
#, elixir-autogen, elixir-format, fuzzy
msgid "No Ammo types"
msgstr ""
diff --git a/priv/gettext/en/LC_MESSAGES/prompts.po b/priv/gettext/en/LC_MESSAGES/prompts.po
index 7852dcbd..32b70332 100644
--- a/priv/gettext/en/LC_MESSAGES/prompts.po
+++ b/priv/gettext/en/LC_MESSAGES/prompts.po
@@ -269,7 +269,7 @@ msgid_plural "Ammo added successfully"
msgstr[0] ""
msgstr[1] ""
-#: lib/cannery_web/live/ammo_type_live/index.ex:270
+#: lib/cannery_web/live/ammo_type_live/index.html.heex:90
#: lib/cannery_web/live/ammo_type_live/show.html.heex:28
#, elixir-autogen, elixir-format, fuzzy
msgid "Are you sure you want to delete %{name}? This will delete all %{name} type ammo as well!"
diff --git a/priv/gettext/es/LC_MESSAGES/default.po b/priv/gettext/es/LC_MESSAGES/default.po
index 670b96a2..b02cde3a 100644
--- a/priv/gettext/es/LC_MESSAGES/default.po
+++ b/priv/gettext/es/LC_MESSAGES/default.po
@@ -64,8 +64,8 @@ msgstr ""
msgid "Background color"
msgstr ""
+#: lib/cannery_web/components/ammo_type_table_component.ex:65
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:140
-#: lib/cannery_web/live/ammo_type_live/index.ex:120
#, elixir-autogen, elixir-format
msgid "Blank"
msgstr ""
@@ -75,32 +75,32 @@ msgstr ""
msgid "Brass"
msgstr ""
+#: lib/cannery_web/components/ammo_type_table_component.ex:47
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:44
-#: lib/cannery_web/live/ammo_type_live/index.ex:102
#, elixir-autogen, elixir-format
msgid "Bullet core"
msgstr ""
+#: lib/cannery_web/components/ammo_type_table_component.ex:46
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:37
-#: lib/cannery_web/live/ammo_type_live/index.ex:101
#, elixir-autogen, elixir-format
msgid "Bullet type"
msgstr ""
+#: lib/cannery_web/components/ammo_type_table_component.ex:49
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:58
-#: lib/cannery_web/live/ammo_type_live/index.ex:104
#, elixir-autogen, elixir-format
msgid "Caliber"
msgstr ""
+#: lib/cannery_web/components/ammo_type_table_component.ex:48
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:51
-#: lib/cannery_web/live/ammo_type_live/index.ex:103
#, elixir-autogen, elixir-format
msgid "Cartridge"
msgstr ""
+#: lib/cannery_web/components/ammo_type_table_component.ex:50
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:65
-#: lib/cannery_web/live/ammo_type_live/index.ex:105
#, elixir-autogen, elixir-format
msgid "Case material"
msgstr ""
@@ -120,8 +120,8 @@ msgstr ""
msgid "Containers"
msgstr ""
+#: lib/cannery_web/components/ammo_type_table_component.ex:66
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:144
-#: lib/cannery_web/live/ammo_type_live/index.ex:121
#, elixir-autogen, elixir-format
msgid "Corrosive"
msgstr ""
@@ -176,14 +176,14 @@ msgstr ""
msgid "FMJ"
msgstr ""
+#: lib/cannery_web/components/ammo_type_table_component.ex:59
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:103
-#: lib/cannery_web/live/ammo_type_live/index.ex:114
#, elixir-autogen, elixir-format
msgid "Grains"
msgstr ""
+#: lib/cannery_web/components/ammo_type_table_component.ex:64
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:136
-#: lib/cannery_web/live/ammo_type_live/index.ex:119
#, elixir-autogen, elixir-format
msgid "Incendiary"
msgstr ""
@@ -233,8 +233,8 @@ msgstr ""
msgid "Magazine, Clip, Ammo Box, etc"
msgstr ""
+#: lib/cannery_web/components/ammo_type_table_component.ex:67
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:148
-#: lib/cannery_web/live/ammo_type_live/index.ex:122
#, elixir-autogen, elixir-format
msgid "Manufacturer"
msgstr ""
@@ -249,8 +249,8 @@ msgstr ""
msgid "My cool ammo can"
msgstr ""
+#: lib/cannery_web/components/ammo_type_table_component.ex:45
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:20
-#: lib/cannery_web/live/ammo_type_live/index.ex:100
#: lib/cannery_web/live/container_live/form_component.html.heex:20
#: lib/cannery_web/live/container_live/index.ex:121
#: lib/cannery_web/live/invite_live/form_component.html.heex:20
@@ -328,8 +328,8 @@ msgstr ""
msgid "On the bookshelf"
msgstr ""
+#: lib/cannery_web/components/ammo_type_table_component.ex:60
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:111
-#: lib/cannery_web/live/ammo_type_live/index.ex:115
#, elixir-autogen, elixir-format
msgid "Pressure"
msgstr ""
@@ -345,8 +345,8 @@ msgstr ""
msgid "Price paid:"
msgstr ""
+#: lib/cannery_web/components/ammo_type_table_component.ex:61
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:118
-#: lib/cannery_web/live/ammo_type_live/index.ex:116
#, elixir-autogen, elixir-format
msgid "Primer type"
msgstr ""
@@ -410,8 +410,8 @@ msgstr ""
msgid "The self-hosted firearm tracker website"
msgstr ""
+#: lib/cannery_web/components/ammo_type_table_component.ex:63
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:132
-#: lib/cannery_web/live/ammo_type_live/index.ex:118
#, elixir-autogen, elixir-format
msgid "Tracer"
msgstr ""
@@ -548,9 +548,9 @@ msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:78
#: lib/cannery_web/components/ammo_group_table_component.ex:152
#: lib/cannery_web/components/ammo_group_table_component.ex:224
+#: lib/cannery_web/components/ammo_type_table_component.ex:179
#: lib/cannery_web/live/ammo_group_live/show.html.heex:37
#: lib/cannery_web/live/ammo_group_live/show.html.heex:44
-#: lib/cannery_web/live/ammo_type_live/index.ex:217
#: lib/cannery_web/live/ammo_type_live/show.html.heex:136
#, elixir-autogen, elixir-format
msgid "$%{amount}"
@@ -561,32 +561,32 @@ msgstr ""
msgid "Bimetal"
msgstr ""
+#: lib/cannery_web/components/ammo_type_table_component.ex:51
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:72
-#: lib/cannery_web/live/ammo_type_live/index.ex:106
#, elixir-autogen, elixir-format
msgid "Jacket type"
msgstr ""
+#: lib/cannery_web/components/ammo_type_table_component.ex:52
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:79
-#: lib/cannery_web/live/ammo_type_live/index.ex:107
#, elixir-autogen, elixir-format
msgid "Muzzle velocity"
msgstr ""
+#: lib/cannery_web/components/ammo_type_table_component.ex:55
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:93
-#: lib/cannery_web/live/ammo_type_live/index.ex:110
#, elixir-autogen, elixir-format
msgid "Powder grains per charge"
msgstr ""
+#: lib/cannery_web/components/ammo_type_table_component.ex:53
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:89
-#: lib/cannery_web/live/ammo_type_live/index.ex:108
#, elixir-autogen, elixir-format
msgid "Powder type"
msgstr ""
+#: lib/cannery_web/components/ammo_type_table_component.ex:68
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:152
-#: lib/cannery_web/live/ammo_type_live/index.ex:123
#, elixir-autogen, elixir-format
msgid "UPC"
msgstr ""
@@ -617,8 +617,8 @@ msgstr ""
msgid "Unstage"
msgstr ""
+#: lib/cannery_web/components/ammo_type_table_component.ex:62
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:125
-#: lib/cannery_web/live/ammo_type_live/index.ex:117
#, elixir-autogen, elixir-format
msgid "Firing type"
msgstr ""
@@ -653,7 +653,7 @@ msgid "Rounds:"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:221
-#: lib/cannery_web/live/ammo_type_live/index.ex:216
+#: lib/cannery_web/components/ammo_type_table_component.ex:178
#: lib/cannery_web/live/ammo_type_live/show.html.heex:142
#, elixir-autogen, elixir-format
msgid "No cost information"
@@ -858,13 +858,13 @@ msgstr ""
msgid "Rounds shot: %{count}"
msgstr ""
-#: lib/cannery_web/live/ammo_type_live/index.ex:155
+#: lib/cannery_web/components/ammo_type_table_component.ex:100
#: lib/cannery_web/live/container_live/index.ex:125
#, elixir-autogen, elixir-format, fuzzy
msgid "Packs"
msgstr ""
-#: lib/cannery_web/live/ammo_type_live/index.ex:135
+#: lib/cannery_web/components/ammo_type_table_component.ex:80
#: lib/cannery_web/live/container_live/index.ex:126
#, elixir-autogen, elixir-format, fuzzy
msgid "Rounds"
@@ -877,7 +877,7 @@ msgstr ""
msgid "View as table"
msgstr ""
-#: lib/cannery_web/live/ammo_type_live/index.ex:165
+#: lib/cannery_web/components/ammo_type_table_component.ex:110
#, elixir-autogen, elixir-format
msgid "Total ever packs"
msgstr ""
@@ -887,7 +887,7 @@ msgstr ""
msgid "Total ever packs:"
msgstr ""
-#: lib/cannery_web/live/ammo_type_live/index.ex:146
+#: lib/cannery_web/components/ammo_type_table_component.ex:91
#, elixir-autogen, elixir-format, fuzzy
msgid "Total ever rounds"
msgstr ""
@@ -897,7 +897,7 @@ msgstr ""
msgid "Total ever rounds:"
msgstr ""
-#: lib/cannery_web/live/ammo_type_live/index.ex:160
+#: lib/cannery_web/components/ammo_type_table_component.ex:105
#, elixir-autogen, elixir-format
msgid "Used packs"
msgstr ""
@@ -907,7 +907,7 @@ msgstr ""
msgid "Used packs:"
msgstr ""
-#: lib/cannery_web/live/ammo_type_live/index.ex:141
+#: lib/cannery_web/components/ammo_type_table_component.ex:86
#, elixir-autogen, elixir-format, fuzzy
msgid "Used rounds"
msgstr ""
@@ -1022,7 +1022,7 @@ msgstr ""
msgid "UPC:"
msgstr ""
-#: lib/cannery_web/live/ammo_type_live/index.ex:175
+#: lib/cannery_web/components/ammo_type_table_component.ex:120
#: lib/cannery_web/live/ammo_type_live/show.html.heex:132
#, elixir-autogen, elixir-format
msgid "Average CPR"
@@ -1108,6 +1108,7 @@ msgid "Edit ammo"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.html.heex:8
+#: lib/cannery_web/live/ammo_type_live/index.html.heex:46
#, elixir-autogen, elixir-format, fuzzy
msgid "No Ammo types"
msgstr ""
diff --git a/priv/gettext/es/LC_MESSAGES/prompts.po b/priv/gettext/es/LC_MESSAGES/prompts.po
index eee8cd9a..f5f7d425 100644
--- a/priv/gettext/es/LC_MESSAGES/prompts.po
+++ b/priv/gettext/es/LC_MESSAGES/prompts.po
@@ -288,7 +288,7 @@ msgid_plural "Ammo added successfully"
msgstr[0] ""
msgstr[1] ""
-#: lib/cannery_web/live/ammo_type_live/index.ex:270
+#: lib/cannery_web/live/ammo_type_live/index.html.heex:90
#: lib/cannery_web/live/ammo_type_live/show.html.heex:28
#, elixir-autogen, elixir-format, fuzzy
msgid "Are you sure you want to delete %{name}? This will delete all %{name} type ammo as well!"
diff --git a/priv/gettext/fr/LC_MESSAGES/default.po b/priv/gettext/fr/LC_MESSAGES/default.po
index 23e73105..7fd506b4 100644
--- a/priv/gettext/fr/LC_MESSAGES/default.po
+++ b/priv/gettext/fr/LC_MESSAGES/default.po
@@ -64,8 +64,8 @@ msgstr "Type de munition"
msgid "Background color"
msgstr "Couleur de fond"
+#: lib/cannery_web/components/ammo_type_table_component.ex:65
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:140
-#: lib/cannery_web/live/ammo_type_live/index.ex:120
#, elixir-autogen, elixir-format
msgid "Blank"
msgstr "Vide"
@@ -75,32 +75,32 @@ msgstr "Vide"
msgid "Brass"
msgstr "Cuivre"
+#: lib/cannery_web/components/ammo_type_table_component.ex:47
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:44
-#: lib/cannery_web/live/ammo_type_live/index.ex:102
#, elixir-autogen, elixir-format
msgid "Bullet core"
msgstr "Noyau de balle"
+#: lib/cannery_web/components/ammo_type_table_component.ex:46
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:37
-#: lib/cannery_web/live/ammo_type_live/index.ex:101
#, elixir-autogen, elixir-format
msgid "Bullet type"
msgstr "Type de balle"
+#: lib/cannery_web/components/ammo_type_table_component.ex:49
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:58
-#: lib/cannery_web/live/ammo_type_live/index.ex:104
#, elixir-autogen, elixir-format
msgid "Caliber"
msgstr "Calibre"
+#: lib/cannery_web/components/ammo_type_table_component.ex:48
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:51
-#: lib/cannery_web/live/ammo_type_live/index.ex:103
#, elixir-autogen, elixir-format
msgid "Cartridge"
msgstr "Cartouche"
+#: lib/cannery_web/components/ammo_type_table_component.ex:50
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:65
-#: lib/cannery_web/live/ammo_type_live/index.ex:105
#, elixir-autogen, elixir-format
msgid "Case material"
msgstr "Matériau de la caisse"
@@ -120,8 +120,8 @@ msgstr "Conteneur"
msgid "Containers"
msgstr "Conteneurs"
+#: lib/cannery_web/components/ammo_type_table_component.ex:66
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:144
-#: lib/cannery_web/live/ammo_type_live/index.ex:121
#, elixir-autogen, elixir-format
msgid "Corrosive"
msgstr "Corrosive"
@@ -176,14 +176,14 @@ msgstr "Exemple d’abréviations de type de balle"
msgid "FMJ"
msgstr "FMJ"
+#: lib/cannery_web/components/ammo_type_table_component.ex:59
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:103
-#: lib/cannery_web/live/ammo_type_live/index.ex:114
#, elixir-autogen, elixir-format
msgid "Grains"
msgstr "Graines"
+#: lib/cannery_web/components/ammo_type_table_component.ex:64
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:136
-#: lib/cannery_web/live/ammo_type_live/index.ex:119
#, elixir-autogen, elixir-format
msgid "Incendiary"
msgstr "Incendiaire"
@@ -233,8 +233,8 @@ msgstr "Localisation :"
msgid "Magazine, Clip, Ammo Box, etc"
msgstr "Chargeur, lame-chargeur, boite de munition, etc."
+#: lib/cannery_web/components/ammo_type_table_component.ex:67
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:148
-#: lib/cannery_web/live/ammo_type_live/index.ex:122
#, elixir-autogen, elixir-format
msgid "Manufacturer"
msgstr "Fabricant"
@@ -249,8 +249,8 @@ msgstr "Boite de munition avec le sticker de fille d’animation"
msgid "My cool ammo can"
msgstr "Ma superbe boite de munition"
+#: lib/cannery_web/components/ammo_type_table_component.ex:45
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:20
-#: lib/cannery_web/live/ammo_type_live/index.ex:100
#: lib/cannery_web/live/container_live/form_component.html.heex:20
#: lib/cannery_web/live/container_live/index.ex:121
#: lib/cannery_web/live/invite_live/form_component.html.heex:20
@@ -328,8 +328,8 @@ msgstr "Notes :"
msgid "On the bookshelf"
msgstr "Sur l’étagère"
+#: lib/cannery_web/components/ammo_type_table_component.ex:60
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:111
-#: lib/cannery_web/live/ammo_type_live/index.ex:115
#, elixir-autogen, elixir-format
msgid "Pressure"
msgstr "Pression"
@@ -345,8 +345,8 @@ msgstr "Prix payé"
msgid "Price paid:"
msgstr "Prix payé :"
+#: lib/cannery_web/components/ammo_type_table_component.ex:61
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:118
-#: lib/cannery_web/live/ammo_type_live/index.ex:116
#, elixir-autogen, elixir-format
msgid "Primer type"
msgstr "Type d’amorce"
@@ -414,8 +414,8 @@ msgstr "Couleur du texte"
msgid "The self-hosted firearm tracker website"
msgstr "Le site web de suivi d’arme à feux auto-hébergé"
+#: lib/cannery_web/components/ammo_type_table_component.ex:63
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:132
-#: lib/cannery_web/live/ammo_type_live/index.ex:118
#, elixir-autogen, elixir-format
msgid "Tracer"
msgstr "Traceuse"
@@ -552,9 +552,9 @@ msgstr "Évènements de tir"
#: lib/cannery_web/components/ammo_group_card.ex:78
#: lib/cannery_web/components/ammo_group_table_component.ex:152
#: lib/cannery_web/components/ammo_group_table_component.ex:224
+#: lib/cannery_web/components/ammo_type_table_component.ex:179
#: lib/cannery_web/live/ammo_group_live/show.html.heex:37
#: lib/cannery_web/live/ammo_group_live/show.html.heex:44
-#: lib/cannery_web/live/ammo_type_live/index.ex:217
#: lib/cannery_web/live/ammo_type_live/show.html.heex:136
#, elixir-autogen, elixir-format
msgid "$%{amount}"
@@ -565,32 +565,32 @@ msgstr "%{amount} $"
msgid "Bimetal"
msgstr "Bi-métal"
+#: lib/cannery_web/components/ammo_type_table_component.ex:51
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:72
-#: lib/cannery_web/live/ammo_type_live/index.ex:106
#, elixir-autogen, elixir-format
msgid "Jacket type"
msgstr "Type de douille"
+#: lib/cannery_web/components/ammo_type_table_component.ex:52
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:79
-#: lib/cannery_web/live/ammo_type_live/index.ex:107
#, elixir-autogen, elixir-format
msgid "Muzzle velocity"
msgstr "Vélocité du canon"
+#: lib/cannery_web/components/ammo_type_table_component.ex:55
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:93
-#: lib/cannery_web/live/ammo_type_live/index.ex:110
#, elixir-autogen, elixir-format
msgid "Powder grains per charge"
msgstr "Graines de poudre par charge"
+#: lib/cannery_web/components/ammo_type_table_component.ex:53
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:89
-#: lib/cannery_web/live/ammo_type_live/index.ex:108
#, elixir-autogen, elixir-format
msgid "Powder type"
msgstr "Type de poudre"
+#: lib/cannery_web/components/ammo_type_table_component.ex:68
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:152
-#: lib/cannery_web/live/ammo_type_live/index.ex:123
#, elixir-autogen, elixir-format
msgid "UPC"
msgstr "UPC"
@@ -621,8 +621,8 @@ msgstr "Sélectionné"
msgid "Unstage"
msgstr "Désélectionner"
+#: lib/cannery_web/components/ammo_type_table_component.ex:62
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:125
-#: lib/cannery_web/live/ammo_type_live/index.ex:117
#, elixir-autogen, elixir-format
msgid "Firing type"
msgstr "Type d’allumage"
@@ -657,7 +657,7 @@ msgid "Rounds:"
msgstr "Cartouches :"
#: lib/cannery_web/components/ammo_group_table_component.ex:221
-#: lib/cannery_web/live/ammo_type_live/index.ex:216
+#: lib/cannery_web/components/ammo_type_table_component.ex:178
#: lib/cannery_web/live/ammo_type_live/show.html.heex:142
#, elixir-autogen, elixir-format
msgid "No cost information"
@@ -863,13 +863,13 @@ msgstr ""
msgid "Rounds shot: %{count}"
msgstr "Cartouches tirées"
-#: lib/cannery_web/live/ammo_type_live/index.ex:155
+#: lib/cannery_web/components/ammo_type_table_component.ex:100
#: lib/cannery_web/live/container_live/index.ex:125
#, elixir-autogen, elixir-format, fuzzy
msgid "Packs"
msgstr "Packages :"
-#: lib/cannery_web/live/ammo_type_live/index.ex:135
+#: lib/cannery_web/components/ammo_type_table_component.ex:80
#: lib/cannery_web/live/container_live/index.ex:126
#, elixir-autogen, elixir-format, fuzzy
msgid "Rounds"
@@ -882,7 +882,7 @@ msgstr "Cartouches :"
msgid "View as table"
msgstr ""
-#: lib/cannery_web/live/ammo_type_live/index.ex:165
+#: lib/cannery_web/components/ammo_type_table_component.ex:110
#, elixir-autogen, elixir-format
msgid "Total ever packs"
msgstr ""
@@ -892,7 +892,7 @@ msgstr ""
msgid "Total ever packs:"
msgstr ""
-#: lib/cannery_web/live/ammo_type_live/index.ex:146
+#: lib/cannery_web/components/ammo_type_table_component.ex:91
#, elixir-autogen, elixir-format, fuzzy
msgid "Total ever rounds"
msgstr "Quantité de cartouches"
@@ -902,7 +902,7 @@ msgstr "Quantité de cartouches"
msgid "Total ever rounds:"
msgstr "Nombre totale de cartouches tirées :"
-#: lib/cannery_web/live/ammo_type_live/index.ex:160
+#: lib/cannery_web/components/ammo_type_table_component.ex:105
#, elixir-autogen, elixir-format
msgid "Used packs"
msgstr ""
@@ -912,7 +912,7 @@ msgstr ""
msgid "Used packs:"
msgstr ""
-#: lib/cannery_web/live/ammo_type_live/index.ex:141
+#: lib/cannery_web/components/ammo_type_table_component.ex:86
#, elixir-autogen, elixir-format, fuzzy
msgid "Used rounds"
msgstr ""
@@ -1027,7 +1027,7 @@ msgstr "Traceuse"
msgid "UPC:"
msgstr "UPC"
-#: lib/cannery_web/live/ammo_type_live/index.ex:175
+#: lib/cannery_web/components/ammo_type_table_component.ex:120
#: lib/cannery_web/live/ammo_type_live/show.html.heex:132
#, elixir-autogen, elixir-format
msgid "Average CPR"
@@ -1113,6 +1113,7 @@ msgid "Edit ammo"
msgstr "Éditer le type de munition"
#: lib/cannery_web/live/ammo_type_live/index.html.heex:8
+#: lib/cannery_web/live/ammo_type_live/index.html.heex:46
#, elixir-autogen, elixir-format, fuzzy
msgid "No Ammo types"
msgstr "Aucun type de munition"
diff --git a/priv/gettext/fr/LC_MESSAGES/prompts.po b/priv/gettext/fr/LC_MESSAGES/prompts.po
index 1b400ced..2f53165e 100644
--- a/priv/gettext/fr/LC_MESSAGES/prompts.po
+++ b/priv/gettext/fr/LC_MESSAGES/prompts.po
@@ -290,7 +290,7 @@ msgid_plural "Ammo added successfully"
msgstr[0] "Groupe de munition mis à jour avec succès"
msgstr[1] "Groupe de munition mis à jour avec succès"
-#: lib/cannery_web/live/ammo_type_live/index.ex:270
+#: lib/cannery_web/live/ammo_type_live/index.html.heex:90
#: lib/cannery_web/live/ammo_type_live/show.html.heex:28
#, elixir-autogen, elixir-format, fuzzy
msgid "Are you sure you want to delete %{name}? This will delete all %{name} type ammo as well!"
diff --git a/priv/gettext/ga/LC_MESSAGES/default.po b/priv/gettext/ga/LC_MESSAGES/default.po
index 3ab1dcf6..89d8d64f 100644
--- a/priv/gettext/ga/LC_MESSAGES/default.po
+++ b/priv/gettext/ga/LC_MESSAGES/default.po
@@ -60,8 +60,8 @@ msgstr ""
msgid "Background color"
msgstr ""
+#: lib/cannery_web/components/ammo_type_table_component.ex:65
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:140
-#: lib/cannery_web/live/ammo_type_live/index.ex:120
#, elixir-autogen, elixir-format
msgid "Blank"
msgstr ""
@@ -71,32 +71,32 @@ msgstr ""
msgid "Brass"
msgstr ""
+#: lib/cannery_web/components/ammo_type_table_component.ex:47
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:44
-#: lib/cannery_web/live/ammo_type_live/index.ex:102
#, elixir-autogen, elixir-format
msgid "Bullet core"
msgstr ""
+#: lib/cannery_web/components/ammo_type_table_component.ex:46
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:37
-#: lib/cannery_web/live/ammo_type_live/index.ex:101
#, elixir-autogen, elixir-format
msgid "Bullet type"
msgstr ""
+#: lib/cannery_web/components/ammo_type_table_component.ex:49
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:58
-#: lib/cannery_web/live/ammo_type_live/index.ex:104
#, elixir-autogen, elixir-format
msgid "Caliber"
msgstr ""
+#: lib/cannery_web/components/ammo_type_table_component.ex:48
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:51
-#: lib/cannery_web/live/ammo_type_live/index.ex:103
#, elixir-autogen, elixir-format
msgid "Cartridge"
msgstr ""
+#: lib/cannery_web/components/ammo_type_table_component.ex:50
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:65
-#: lib/cannery_web/live/ammo_type_live/index.ex:105
#, elixir-autogen, elixir-format
msgid "Case material"
msgstr ""
@@ -116,8 +116,8 @@ msgstr ""
msgid "Containers"
msgstr ""
+#: lib/cannery_web/components/ammo_type_table_component.ex:66
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:144
-#: lib/cannery_web/live/ammo_type_live/index.ex:121
#, elixir-autogen, elixir-format
msgid "Corrosive"
msgstr ""
@@ -172,14 +172,14 @@ msgstr ""
msgid "FMJ"
msgstr ""
+#: lib/cannery_web/components/ammo_type_table_component.ex:59
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:103
-#: lib/cannery_web/live/ammo_type_live/index.ex:114
#, elixir-autogen, elixir-format
msgid "Grains"
msgstr ""
+#: lib/cannery_web/components/ammo_type_table_component.ex:64
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:136
-#: lib/cannery_web/live/ammo_type_live/index.ex:119
#, elixir-autogen, elixir-format
msgid "Incendiary"
msgstr ""
@@ -229,8 +229,8 @@ msgstr ""
msgid "Magazine, Clip, Ammo Box, etc"
msgstr ""
+#: lib/cannery_web/components/ammo_type_table_component.ex:67
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:148
-#: lib/cannery_web/live/ammo_type_live/index.ex:122
#, elixir-autogen, elixir-format
msgid "Manufacturer"
msgstr ""
@@ -245,8 +245,8 @@ msgstr ""
msgid "My cool ammo can"
msgstr ""
+#: lib/cannery_web/components/ammo_type_table_component.ex:45
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:20
-#: lib/cannery_web/live/ammo_type_live/index.ex:100
#: lib/cannery_web/live/container_live/form_component.html.heex:20
#: lib/cannery_web/live/container_live/index.ex:121
#: lib/cannery_web/live/invite_live/form_component.html.heex:20
@@ -324,8 +324,8 @@ msgstr ""
msgid "On the bookshelf"
msgstr ""
+#: lib/cannery_web/components/ammo_type_table_component.ex:60
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:111
-#: lib/cannery_web/live/ammo_type_live/index.ex:115
#, elixir-autogen, elixir-format
msgid "Pressure"
msgstr ""
@@ -341,8 +341,8 @@ msgstr ""
msgid "Price paid:"
msgstr ""
+#: lib/cannery_web/components/ammo_type_table_component.ex:61
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:118
-#: lib/cannery_web/live/ammo_type_live/index.ex:116
#, elixir-autogen, elixir-format
msgid "Primer type"
msgstr ""
@@ -406,8 +406,8 @@ msgstr ""
msgid "The self-hosted firearm tracker website"
msgstr ""
+#: lib/cannery_web/components/ammo_type_table_component.ex:63
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:132
-#: lib/cannery_web/live/ammo_type_live/index.ex:118
#, elixir-autogen, elixir-format
msgid "Tracer"
msgstr ""
@@ -544,9 +544,9 @@ msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:78
#: lib/cannery_web/components/ammo_group_table_component.ex:152
#: lib/cannery_web/components/ammo_group_table_component.ex:224
+#: lib/cannery_web/components/ammo_type_table_component.ex:179
#: lib/cannery_web/live/ammo_group_live/show.html.heex:37
#: lib/cannery_web/live/ammo_group_live/show.html.heex:44
-#: lib/cannery_web/live/ammo_type_live/index.ex:217
#: lib/cannery_web/live/ammo_type_live/show.html.heex:136
#, elixir-autogen, elixir-format
msgid "$%{amount}"
@@ -557,32 +557,32 @@ msgstr ""
msgid "Bimetal"
msgstr ""
+#: lib/cannery_web/components/ammo_type_table_component.ex:51
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:72
-#: lib/cannery_web/live/ammo_type_live/index.ex:106
#, elixir-autogen, elixir-format
msgid "Jacket type"
msgstr ""
+#: lib/cannery_web/components/ammo_type_table_component.ex:52
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:79
-#: lib/cannery_web/live/ammo_type_live/index.ex:107
#, elixir-autogen, elixir-format
msgid "Muzzle velocity"
msgstr ""
+#: lib/cannery_web/components/ammo_type_table_component.ex:55
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:93
-#: lib/cannery_web/live/ammo_type_live/index.ex:110
#, elixir-autogen, elixir-format
msgid "Powder grains per charge"
msgstr ""
+#: lib/cannery_web/components/ammo_type_table_component.ex:53
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:89
-#: lib/cannery_web/live/ammo_type_live/index.ex:108
#, elixir-autogen, elixir-format
msgid "Powder type"
msgstr ""
+#: lib/cannery_web/components/ammo_type_table_component.ex:68
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:152
-#: lib/cannery_web/live/ammo_type_live/index.ex:123
#, elixir-autogen, elixir-format
msgid "UPC"
msgstr ""
@@ -613,8 +613,8 @@ msgstr ""
msgid "Unstage"
msgstr ""
+#: lib/cannery_web/components/ammo_type_table_component.ex:62
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:125
-#: lib/cannery_web/live/ammo_type_live/index.ex:117
#, elixir-autogen, elixir-format
msgid "Firing type"
msgstr ""
@@ -649,7 +649,7 @@ msgid "Rounds:"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:221
-#: lib/cannery_web/live/ammo_type_live/index.ex:216
+#: lib/cannery_web/components/ammo_type_table_component.ex:178
#: lib/cannery_web/live/ammo_type_live/show.html.heex:142
#, elixir-autogen, elixir-format
msgid "No cost information"
@@ -854,13 +854,13 @@ msgstr ""
msgid "Rounds shot: %{count}"
msgstr ""
-#: lib/cannery_web/live/ammo_type_live/index.ex:155
+#: lib/cannery_web/components/ammo_type_table_component.ex:100
#: lib/cannery_web/live/container_live/index.ex:125
#, elixir-autogen, elixir-format, fuzzy
msgid "Packs"
msgstr ""
-#: lib/cannery_web/live/ammo_type_live/index.ex:135
+#: lib/cannery_web/components/ammo_type_table_component.ex:80
#: lib/cannery_web/live/container_live/index.ex:126
#, elixir-autogen, elixir-format, fuzzy
msgid "Rounds"
@@ -873,7 +873,7 @@ msgstr ""
msgid "View as table"
msgstr ""
-#: lib/cannery_web/live/ammo_type_live/index.ex:165
+#: lib/cannery_web/components/ammo_type_table_component.ex:110
#, elixir-autogen, elixir-format
msgid "Total ever packs"
msgstr ""
@@ -883,7 +883,7 @@ msgstr ""
msgid "Total ever packs:"
msgstr ""
-#: lib/cannery_web/live/ammo_type_live/index.ex:146
+#: lib/cannery_web/components/ammo_type_table_component.ex:91
#, elixir-autogen, elixir-format, fuzzy
msgid "Total ever rounds"
msgstr ""
@@ -893,7 +893,7 @@ msgstr ""
msgid "Total ever rounds:"
msgstr ""
-#: lib/cannery_web/live/ammo_type_live/index.ex:160
+#: lib/cannery_web/components/ammo_type_table_component.ex:105
#, elixir-autogen, elixir-format
msgid "Used packs"
msgstr ""
@@ -903,7 +903,7 @@ msgstr ""
msgid "Used packs:"
msgstr ""
-#: lib/cannery_web/live/ammo_type_live/index.ex:141
+#: lib/cannery_web/components/ammo_type_table_component.ex:86
#, elixir-autogen, elixir-format, fuzzy
msgid "Used rounds"
msgstr ""
@@ -1018,7 +1018,7 @@ msgstr ""
msgid "UPC:"
msgstr ""
-#: lib/cannery_web/live/ammo_type_live/index.ex:175
+#: lib/cannery_web/components/ammo_type_table_component.ex:120
#: lib/cannery_web/live/ammo_type_live/show.html.heex:132
#, elixir-autogen, elixir-format
msgid "Average CPR"
@@ -1104,6 +1104,7 @@ msgid "Edit ammo"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.html.heex:8
+#: lib/cannery_web/live/ammo_type_live/index.html.heex:46
#, elixir-autogen, elixir-format, fuzzy
msgid "No Ammo types"
msgstr ""
diff --git a/priv/gettext/ga/LC_MESSAGES/prompts.po b/priv/gettext/ga/LC_MESSAGES/prompts.po
index e8837b30..3c08fd99 100644
--- a/priv/gettext/ga/LC_MESSAGES/prompts.po
+++ b/priv/gettext/ga/LC_MESSAGES/prompts.po
@@ -279,7 +279,7 @@ msgid_plural "Ammo added successfully"
msgstr[0] ""
msgstr[1] ""
-#: lib/cannery_web/live/ammo_type_live/index.ex:270
+#: lib/cannery_web/live/ammo_type_live/index.html.heex:90
#: lib/cannery_web/live/ammo_type_live/show.html.heex:28
#, elixir-autogen, elixir-format
msgid "Are you sure you want to delete %{name}? This will delete all %{name} type ammo as well!"
diff --git a/priv/gettext/prompts.pot b/priv/gettext/prompts.pot
index c9bad664..10b425f9 100644
--- a/priv/gettext/prompts.pot
+++ b/priv/gettext/prompts.pot
@@ -268,7 +268,7 @@ msgid_plural "Ammo added successfully"
msgstr[0] ""
msgstr[1] ""
-#: lib/cannery_web/live/ammo_type_live/index.ex:270
+#: lib/cannery_web/live/ammo_type_live/index.html.heex:90
#: lib/cannery_web/live/ammo_type_live/show.html.heex:28
#, elixir-autogen, elixir-format
msgid "Are you sure you want to delete %{name}? This will delete all %{name} type ammo as well!"
diff --git a/test/cannery_web/live/ammo_type_live_test.exs b/test/cannery_web/live/ammo_type_live_test.exs
index 4e18ac3d..28634ccd 100644
--- a/test/cannery_web/live/ammo_type_live_test.exs
+++ b/test/cannery_web/live/ammo_type_live_test.exs
@@ -92,6 +92,12 @@ defmodule CanneryWeb.AmmoTypeLiveTest do
|> render_change() =~ ammo_type.bullet_type
assert_patch(index_live, Routes.ammo_type_index_path(conn, :search, "something_else"))
+
+ assert index_live
+ |> form("[data-qa=\"ammo_type_search\"]", search: %{search_term: ""})
+ |> render_change() =~ ammo_type.bullet_type
+
+ assert_patch(index_live, Routes.ammo_type_index_path(conn, :index))
end
test "saves new ammo_type", %{conn: conn, current_user: current_user, ammo_type: ammo_type} do