diff --git a/CHANGELOG.md b/CHANGELOG.md
index 4f9b367c..121e81b7 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -14,6 +14,7 @@
- Add graph to range page
- Add JSON export of data
- Add ammo cloning
+- Add ammo type cloning
- Add container cloning
- Update project dependencies
diff --git a/lib/cannery_web/live/ammo_type_live/form_component.ex b/lib/cannery_web/live/ammo_type_live/form_component.ex
index 264954c4..955dbb13 100644
--- a/lib/cannery_web/live/ammo_type_live/form_component.ex
+++ b/lib/cannery_web/live/ammo_type_live/form_component.ex
@@ -35,15 +35,15 @@ defmodule CanneryWeb.AmmoTypeLive.FormComponent do
ammo_type_params
) do
changeset_action =
- case action do
- :new -> :insert
- :edit -> :update
+ cond do
+ action in [:new, :clone] -> :insert
+ action == :edit -> :update
end
changeset =
- case action do
- :new -> ammo_type |> AmmoType.create_changeset(user, ammo_type_params)
- :edit -> ammo_type |> AmmoType.update_changeset(ammo_type_params)
+ cond do
+ action in [:new, :clone] -> ammo_type |> AmmoType.create_changeset(user, ammo_type_params)
+ action == :edit -> ammo_type |> AmmoType.update_changeset(ammo_type_params)
end
changeset =
@@ -76,9 +76,10 @@ defmodule CanneryWeb.AmmoTypeLive.FormComponent do
defp save_ammo_type(
%{assigns: %{current_user: current_user, return_to: return_to}} = socket,
- :new,
+ action,
ammo_type_params
- ) do
+ )
+ when action in [:new, :clone] do
socket =
case Ammo.create_ammo_type(ammo_type_params, current_user) do
{:ok, %{name: ammo_type_name}} ->
diff --git a/lib/cannery_web/live/ammo_type_live/index.ex b/lib/cannery_web/live/ammo_type_live/index.ex
index 74ea76fe..84bc9c06 100644
--- a/lib/cannery_web/live/ammo_type_live/index.ex
+++ b/lib/cannery_web/live/ammo_type_live/index.ex
@@ -24,6 +24,12 @@ defmodule CanneryWeb.AmmoTypeLive.Index do
|> assign(:ammo_type, Ammo.get_ammo_type!(id, current_user))
end
+ defp apply_action(%{assigns: %{current_user: current_user}} = socket, :clone, %{"id" => id}) do
+ socket
+ |> assign(:page_title, gettext("New Ammo type"))
+ |> assign(:ammo_type, %{Ammo.get_ammo_type!(id, current_user) | id: nil})
+ end
+
defp apply_action(socket, :new, _params) do
socket
|> assign(:page_title, gettext("New Ammo type"))
@@ -154,6 +160,14 @@ defmodule CanneryWeb.AmmoTypeLive.Index do
+ <.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"
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 aa0604b8..f2019267 100644
--- a/lib/cannery_web/live/ammo_type_live/index.html.heex
+++ b/lib/cannery_web/live/ammo_type_live/index.html.heex
@@ -27,7 +27,7 @@
<% end %>
-<%= if @live_action in [:new, :edit] do %>
+<%= if @live_action in [:new, :edit, :clone] do %>
<.modal return_to={Routes.ammo_type_index_path(Endpoint, :index)}>
<.live_component
module={CanneryWeb.AmmoTypeLive.FormComponent}
diff --git a/lib/cannery_web/router.ex b/lib/cannery_web/router.ex
index 84153a21..1daa9ad6 100644
--- a/lib/cannery_web/router.ex
+++ b/lib/cannery_web/router.ex
@@ -68,6 +68,7 @@ defmodule CanneryWeb.Router do
live "/catalog", AmmoTypeLive.Index, :index
live "/catalog/new", AmmoTypeLive.Index, :new
+ live "/catalog/:id/clone", AmmoTypeLive.Index, :clone
live "/catalog/:id/edit", AmmoTypeLive.Index, :edit
live "/catalog/:id", AmmoTypeLive.Show, :show
diff --git a/priv/gettext/de/LC_MESSAGES/default.po b/priv/gettext/de/LC_MESSAGES/default.po
index 96dc4dfd..092be986 100644
--- a/priv/gettext/de/LC_MESSAGES/default.po
+++ b/priv/gettext/de/LC_MESSAGES/default.po
@@ -58,7 +58,7 @@ msgstr "Munition"
msgid "Ammo type"
msgstr "Munitionsarten"
-#: lib/cannery_web/live/ammo_type_live/index.ex:88
+#: lib/cannery_web/live/ammo_type_live/index.ex:94
#: lib/cannery_web/live/ammo_type_live/show.html.heex:106
#, elixir-autogen, elixir-format
msgid "Average Price paid"
@@ -70,7 +70,7 @@ msgid "Background color"
msgstr "Hintergrundfarbe"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:140
-#: lib/cannery_web/live/ammo_type_live/index.ex:71
+#: lib/cannery_web/live/ammo_type_live/index.ex:77
#: lib/cannery_web/live/ammo_type_live/show.html.heex:59
#, elixir-autogen, elixir-format
msgid "Blank"
@@ -82,35 +82,35 @@ msgid "Brass"
msgstr "Messing"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:44
-#: lib/cannery_web/live/ammo_type_live/index.ex:53
+#: lib/cannery_web/live/ammo_type_live/index.ex:59
#: lib/cannery_web/live/ammo_type_live/show.html.heex:45
#, elixir-autogen, elixir-format
msgid "Bullet core"
msgstr "Projektilkern"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:37
-#: lib/cannery_web/live/ammo_type_live/index.ex:52
+#: lib/cannery_web/live/ammo_type_live/index.ex:58
#: lib/cannery_web/live/ammo_type_live/show.html.heex:44
#, elixir-autogen, elixir-format
msgid "Bullet type"
msgstr "Patronenart"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:58
-#: lib/cannery_web/live/ammo_type_live/index.ex:55
+#: lib/cannery_web/live/ammo_type_live/index.ex:61
#: lib/cannery_web/live/ammo_type_live/show.html.heex:47
#, elixir-autogen, elixir-format
msgid "Caliber"
msgstr "Kaliber"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:51
-#: lib/cannery_web/live/ammo_type_live/index.ex:54
+#: lib/cannery_web/live/ammo_type_live/index.ex:60
#: lib/cannery_web/live/ammo_type_live/show.html.heex:46
#, elixir-autogen, elixir-format
msgid "Cartridge"
msgstr "Patrone"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:65
-#: lib/cannery_web/live/ammo_type_live/index.ex:56
+#: lib/cannery_web/live/ammo_type_live/index.ex:62
#: lib/cannery_web/live/ammo_type_live/show.html.heex:48
#, elixir-autogen, elixir-format
msgid "Case material"
@@ -132,7 +132,7 @@ msgid "Containers"
msgstr "Behälter"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:144
-#: lib/cannery_web/live/ammo_type_live/index.ex:72
+#: lib/cannery_web/live/ammo_type_live/index.ex:78
#: lib/cannery_web/live/ammo_type_live/show.html.heex:60
#, elixir-autogen, elixir-format
msgid "Corrosive"
@@ -200,14 +200,14 @@ msgid "FMJ"
msgstr "VM"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:103
-#: lib/cannery_web/live/ammo_type_live/index.ex:65
+#: lib/cannery_web/live/ammo_type_live/index.ex:71
#: lib/cannery_web/live/ammo_type_live/show.html.heex:53
#, elixir-autogen, elixir-format
msgid "Grains"
msgstr "Körner"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:136
-#: lib/cannery_web/live/ammo_type_live/index.ex:70
+#: lib/cannery_web/live/ammo_type_live/index.ex:76
#: lib/cannery_web/live/ammo_type_live/show.html.heex:58
#, elixir-autogen, elixir-format
msgid "Incendiary"
@@ -259,7 +259,7 @@ msgid "Magazine, Clip, Ammo Box, etc"
msgstr "Magazin, Ladestreifen, Munitionskiste usw."
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:148
-#: lib/cannery_web/live/ammo_type_live/index.ex:73
+#: lib/cannery_web/live/ammo_type_live/index.ex:79
#: lib/cannery_web/live/ammo_type_live/show.html.heex:61
#, elixir-autogen, elixir-format
msgid "Manufacturer"
@@ -276,7 +276,7 @@ msgid "My cool ammo can"
msgstr "Meine coole Munitionskiste"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:20
-#: lib/cannery_web/live/ammo_type_live/index.ex:51
+#: lib/cannery_web/live/ammo_type_live/index.ex:57
#: 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
@@ -286,6 +286,7 @@ msgid "Name"
msgstr "Name"
#: lib/cannery_web/live/ammo_type_live/index.ex:29
+#: lib/cannery_web/live/ammo_type_live/index.ex:35
#, elixir-autogen, elixir-format
msgid "New Ammo type"
msgstr "Neuer Munitionstyp"
@@ -358,7 +359,7 @@ msgid "On the bookshelf"
msgstr "Auf dem Bücherregal"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:111
-#: lib/cannery_web/live/ammo_type_live/index.ex:66
+#: lib/cannery_web/live/ammo_type_live/index.ex:72
#: lib/cannery_web/live/ammo_type_live/show.html.heex:54
#, elixir-autogen, elixir-format
msgid "Pressure"
@@ -376,7 +377,7 @@ msgid "Price paid:"
msgstr "Kaufpreis:"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:118
-#: lib/cannery_web/live/ammo_type_live/index.ex:67
+#: lib/cannery_web/live/ammo_type_live/index.ex:73
#: lib/cannery_web/live/ammo_type_live/show.html.heex:55
#, elixir-autogen, elixir-format
msgid "Primer type"
@@ -449,7 +450,7 @@ msgid "The self-hosted firearm tracker website"
msgstr "Die selbst-gehostete Website zur Verwaltung von Schusswaffen"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:132
-#: lib/cannery_web/live/ammo_type_live/index.ex:69
+#: lib/cannery_web/live/ammo_type_live/index.ex:75
#: lib/cannery_web/live/ammo_type_live/show.html.heex:57
#, elixir-autogen, elixir-format
msgid "Tracer"
@@ -598,7 +599,7 @@ msgstr "Schießkladde"
#: lib/cannery_web/live/ammo_group_live/index.ex:151
#: 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:118
+#: lib/cannery_web/live/ammo_type_live/index.ex:124
#: lib/cannery_web/live/ammo_type_live/show.html.heex:110
#, elixir-autogen, elixir-format
msgid "$%{amount}"
@@ -610,35 +611,35 @@ msgid "Bimetal"
msgstr "Bimetall"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:72
-#: lib/cannery_web/live/ammo_type_live/index.ex:57
+#: lib/cannery_web/live/ammo_type_live/index.ex:63
#: lib/cannery_web/live/ammo_type_live/show.html.heex:49
#, elixir-autogen, elixir-format
msgid "Jacket type"
msgstr "Patronenhülse"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:79
-#: lib/cannery_web/live/ammo_type_live/index.ex:58
+#: lib/cannery_web/live/ammo_type_live/index.ex:64
#: lib/cannery_web/live/ammo_type_live/show.html.heex:50
#, elixir-autogen, elixir-format
msgid "Muzzle velocity"
msgstr "Mündungsgeschwindigkeit"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:93
-#: lib/cannery_web/live/ammo_type_live/index.ex:61
+#: lib/cannery_web/live/ammo_type_live/index.ex:67
#: lib/cannery_web/live/ammo_type_live/show.html.heex:52
#, elixir-autogen, elixir-format
msgid "Powder grains per charge"
msgstr "Pulverkörner pro Ladung"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:89
-#: lib/cannery_web/live/ammo_type_live/index.ex:59
+#: lib/cannery_web/live/ammo_type_live/index.ex:65
#: lib/cannery_web/live/ammo_type_live/show.html.heex:51
#, elixir-autogen, elixir-format
msgid "Powder type"
msgstr "Pulverart"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:152
-#: lib/cannery_web/live/ammo_type_live/index.ex:74
+#: lib/cannery_web/live/ammo_type_live/index.ex:80
#: lib/cannery_web/live/ammo_type_live/show.html.heex:62
#, elixir-autogen, elixir-format
msgid "UPC"
@@ -671,7 +672,7 @@ msgid "Unstage"
msgstr "Demarkiert"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:125
-#: lib/cannery_web/live/ammo_type_live/index.ex:68
+#: lib/cannery_web/live/ammo_type_live/index.ex:74
#: lib/cannery_web/live/ammo_type_live/show.html.heex:56
#, elixir-autogen, elixir-format
msgid "Firing type"
@@ -710,7 +711,7 @@ msgstr "Patronen:"
msgid "Show %{name}"
msgstr "Zeige %{name}"
-#: lib/cannery_web/live/ammo_type_live/index.ex:117
+#: lib/cannery_web/live/ammo_type_live/index.ex:123
#: lib/cannery_web/live/ammo_type_live/show.html.heex:116
#, elixir-autogen, elixir-format
msgid "No cost information"
@@ -751,7 +752,7 @@ msgstr "Patronen verbraucht"
msgid "Current # of rounds:"
msgstr "Derzeitige # an Patronen:"
-#: lib/cannery_web/live/ammo_type_live/index.ex:86
+#: lib/cannery_web/live/ammo_type_live/index.ex:92
#, elixir-autogen, elixir-format
msgid "Total # of rounds"
msgstr "Summe aller Patronen"
@@ -797,7 +798,7 @@ msgstr "Schüsse dokumentieren"
msgid "Copies"
msgstr "Kopien"
-#: lib/cannery_web/live/ammo_type_live/index.ex:34
+#: lib/cannery_web/live/ammo_type_live/index.ex:40
#, elixir-autogen, elixir-format
msgid "Ammo types"
msgstr "Munitionsart"
@@ -915,7 +916,7 @@ msgstr ""
msgid "Leave \"Uses left\" blank to make invite unlimited"
msgstr ""
-#: lib/cannery_web/live/ammo_type_live/index.ex:87
+#: lib/cannery_web/live/ammo_type_live/index.ex:93
#, elixir-autogen, elixir-format, fuzzy
msgid "Total # of ammo"
msgstr "Summe aller Patronen"
diff --git a/priv/gettext/de/LC_MESSAGES/prompts.po b/priv/gettext/de/LC_MESSAGES/prompts.po
index 0856c0ab..8ace73ff 100644
--- a/priv/gettext/de/LC_MESSAGES/prompts.po
+++ b/priv/gettext/de/LC_MESSAGES/prompts.po
@@ -23,7 +23,7 @@ msgstr ""
## Run "mix gettext.extract" to bring this file up to
## date. Leave "msgstr"s empty as changing them here has no
## effect: edit them in PO (.po) files instead.
-#: lib/cannery_web/live/ammo_type_live/form_component.ex:85
+#: lib/cannery_web/live/ammo_type_live/form_component.ex:86
#: lib/cannery_web/live/container_live/form_component.ex:89
#: lib/cannery_web/live/invite_live/form_component.ex:80
#: lib/cannery_web/live/tag_live/form_component.ex:126
@@ -31,7 +31,7 @@ msgstr ""
msgid "%{name} created successfully"
msgstr "%{name} erfolgreich erstellt"
-#: lib/cannery_web/live/ammo_type_live/index.ex:41
+#: lib/cannery_web/live/ammo_type_live/index.ex:47
#: lib/cannery_web/live/ammo_type_live/show.ex:28
#: lib/cannery_web/live/invite_live/index.ex:53
#: lib/cannery_web/live/invite_live/index.ex:133
@@ -293,7 +293,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:163
+#: lib/cannery_web/live/ammo_type_live/index.ex:177
#: 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 9fd1d66b..75e72ceb 100644
--- a/priv/gettext/default.pot
+++ b/priv/gettext/default.pot
@@ -43,7 +43,7 @@ msgstr ""
msgid "Ammo type"
msgstr ""
-#: lib/cannery_web/live/ammo_type_live/index.ex:88
+#: lib/cannery_web/live/ammo_type_live/index.ex:94
#: lib/cannery_web/live/ammo_type_live/show.html.heex:106
#, elixir-autogen, elixir-format
msgid "Average Price paid"
@@ -55,7 +55,7 @@ msgid "Background color"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:140
-#: lib/cannery_web/live/ammo_type_live/index.ex:71
+#: lib/cannery_web/live/ammo_type_live/index.ex:77
#: lib/cannery_web/live/ammo_type_live/show.html.heex:59
#, elixir-autogen, elixir-format
msgid "Blank"
@@ -67,35 +67,35 @@ msgid "Brass"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:44
-#: lib/cannery_web/live/ammo_type_live/index.ex:53
+#: lib/cannery_web/live/ammo_type_live/index.ex:59
#: lib/cannery_web/live/ammo_type_live/show.html.heex:45
#, elixir-autogen, elixir-format
msgid "Bullet core"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:37
-#: lib/cannery_web/live/ammo_type_live/index.ex:52
+#: lib/cannery_web/live/ammo_type_live/index.ex:58
#: lib/cannery_web/live/ammo_type_live/show.html.heex:44
#, elixir-autogen, elixir-format
msgid "Bullet type"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:58
-#: lib/cannery_web/live/ammo_type_live/index.ex:55
+#: lib/cannery_web/live/ammo_type_live/index.ex:61
#: lib/cannery_web/live/ammo_type_live/show.html.heex:47
#, elixir-autogen, elixir-format
msgid "Caliber"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:51
-#: lib/cannery_web/live/ammo_type_live/index.ex:54
+#: lib/cannery_web/live/ammo_type_live/index.ex:60
#: lib/cannery_web/live/ammo_type_live/show.html.heex:46
#, elixir-autogen, elixir-format
msgid "Cartridge"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:65
-#: lib/cannery_web/live/ammo_type_live/index.ex:56
+#: lib/cannery_web/live/ammo_type_live/index.ex:62
#: lib/cannery_web/live/ammo_type_live/show.html.heex:48
#, elixir-autogen, elixir-format
msgid "Case material"
@@ -117,7 +117,7 @@ msgid "Containers"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:144
-#: lib/cannery_web/live/ammo_type_live/index.ex:72
+#: lib/cannery_web/live/ammo_type_live/index.ex:78
#: lib/cannery_web/live/ammo_type_live/show.html.heex:60
#, elixir-autogen, elixir-format
msgid "Corrosive"
@@ -185,14 +185,14 @@ msgid "FMJ"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:103
-#: lib/cannery_web/live/ammo_type_live/index.ex:65
+#: lib/cannery_web/live/ammo_type_live/index.ex:71
#: lib/cannery_web/live/ammo_type_live/show.html.heex:53
#, elixir-autogen, elixir-format
msgid "Grains"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:136
-#: lib/cannery_web/live/ammo_type_live/index.ex:70
+#: lib/cannery_web/live/ammo_type_live/index.ex:76
#: lib/cannery_web/live/ammo_type_live/show.html.heex:58
#, elixir-autogen, elixir-format
msgid "Incendiary"
@@ -244,7 +244,7 @@ msgid "Magazine, Clip, Ammo Box, etc"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:148
-#: lib/cannery_web/live/ammo_type_live/index.ex:73
+#: lib/cannery_web/live/ammo_type_live/index.ex:79
#: lib/cannery_web/live/ammo_type_live/show.html.heex:61
#, elixir-autogen, elixir-format
msgid "Manufacturer"
@@ -261,7 +261,7 @@ msgid "My cool ammo can"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:20
-#: lib/cannery_web/live/ammo_type_live/index.ex:51
+#: lib/cannery_web/live/ammo_type_live/index.ex:57
#: 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
@@ -271,6 +271,7 @@ msgid "Name"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.ex:29
+#: lib/cannery_web/live/ammo_type_live/index.ex:35
#, elixir-autogen, elixir-format
msgid "New Ammo type"
msgstr ""
@@ -343,7 +344,7 @@ msgid "On the bookshelf"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:111
-#: lib/cannery_web/live/ammo_type_live/index.ex:66
+#: lib/cannery_web/live/ammo_type_live/index.ex:72
#: lib/cannery_web/live/ammo_type_live/show.html.heex:54
#, elixir-autogen, elixir-format
msgid "Pressure"
@@ -361,7 +362,7 @@ msgid "Price paid:"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:118
-#: lib/cannery_web/live/ammo_type_live/index.ex:67
+#: lib/cannery_web/live/ammo_type_live/index.ex:73
#: lib/cannery_web/live/ammo_type_live/show.html.heex:55
#, elixir-autogen, elixir-format
msgid "Primer type"
@@ -432,7 +433,7 @@ msgid "The self-hosted firearm tracker website"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:132
-#: lib/cannery_web/live/ammo_type_live/index.ex:69
+#: lib/cannery_web/live/ammo_type_live/index.ex:75
#: lib/cannery_web/live/ammo_type_live/show.html.heex:57
#, elixir-autogen, elixir-format
msgid "Tracer"
@@ -581,7 +582,7 @@ msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:151
#: 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:118
+#: lib/cannery_web/live/ammo_type_live/index.ex:124
#: lib/cannery_web/live/ammo_type_live/show.html.heex:110
#, elixir-autogen, elixir-format
msgid "$%{amount}"
@@ -593,35 +594,35 @@ msgid "Bimetal"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:72
-#: lib/cannery_web/live/ammo_type_live/index.ex:57
+#: lib/cannery_web/live/ammo_type_live/index.ex:63
#: lib/cannery_web/live/ammo_type_live/show.html.heex:49
#, elixir-autogen, elixir-format
msgid "Jacket type"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:79
-#: lib/cannery_web/live/ammo_type_live/index.ex:58
+#: lib/cannery_web/live/ammo_type_live/index.ex:64
#: lib/cannery_web/live/ammo_type_live/show.html.heex:50
#, elixir-autogen, elixir-format
msgid "Muzzle velocity"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:93
-#: lib/cannery_web/live/ammo_type_live/index.ex:61
+#: lib/cannery_web/live/ammo_type_live/index.ex:67
#: lib/cannery_web/live/ammo_type_live/show.html.heex:52
#, elixir-autogen, elixir-format
msgid "Powder grains per charge"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:89
-#: lib/cannery_web/live/ammo_type_live/index.ex:59
+#: lib/cannery_web/live/ammo_type_live/index.ex:65
#: lib/cannery_web/live/ammo_type_live/show.html.heex:51
#, elixir-autogen, elixir-format
msgid "Powder type"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:152
-#: lib/cannery_web/live/ammo_type_live/index.ex:74
+#: lib/cannery_web/live/ammo_type_live/index.ex:80
#: lib/cannery_web/live/ammo_type_live/show.html.heex:62
#, elixir-autogen, elixir-format
msgid "UPC"
@@ -654,7 +655,7 @@ msgid "Unstage"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:125
-#: lib/cannery_web/live/ammo_type_live/index.ex:68
+#: lib/cannery_web/live/ammo_type_live/index.ex:74
#: lib/cannery_web/live/ammo_type_live/show.html.heex:56
#, elixir-autogen, elixir-format
msgid "Firing type"
@@ -693,7 +694,7 @@ msgstr ""
msgid "Show %{name}"
msgstr ""
-#: lib/cannery_web/live/ammo_type_live/index.ex:117
+#: lib/cannery_web/live/ammo_type_live/index.ex:123
#: lib/cannery_web/live/ammo_type_live/show.html.heex:116
#, elixir-autogen, elixir-format
msgid "No cost information"
@@ -734,7 +735,7 @@ msgstr ""
msgid "Current # of rounds:"
msgstr ""
-#: lib/cannery_web/live/ammo_type_live/index.ex:86
+#: lib/cannery_web/live/ammo_type_live/index.ex:92
#, elixir-autogen, elixir-format
msgid "Total # of rounds"
msgstr ""
@@ -780,7 +781,7 @@ msgstr ""
msgid "Copies"
msgstr ""
-#: lib/cannery_web/live/ammo_type_live/index.ex:34
+#: lib/cannery_web/live/ammo_type_live/index.ex:40
#, elixir-autogen, elixir-format
msgid "Ammo types"
msgstr ""
@@ -898,7 +899,7 @@ msgstr ""
msgid "Leave \"Uses left\" blank to make invite unlimited"
msgstr ""
-#: lib/cannery_web/live/ammo_type_live/index.ex:87
+#: lib/cannery_web/live/ammo_type_live/index.ex:93
#, elixir-autogen, elixir-format
msgid "Total # of ammo"
msgstr ""
diff --git a/priv/gettext/en/LC_MESSAGES/default.po b/priv/gettext/en/LC_MESSAGES/default.po
index 1f89e2c1..c9d8e2ab 100644
--- a/priv/gettext/en/LC_MESSAGES/default.po
+++ b/priv/gettext/en/LC_MESSAGES/default.po
@@ -44,7 +44,7 @@ msgstr ""
msgid "Ammo type"
msgstr ""
-#: lib/cannery_web/live/ammo_type_live/index.ex:88
+#: lib/cannery_web/live/ammo_type_live/index.ex:94
#: lib/cannery_web/live/ammo_type_live/show.html.heex:106
#, elixir-autogen, elixir-format
msgid "Average Price paid"
@@ -56,7 +56,7 @@ msgid "Background color"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:140
-#: lib/cannery_web/live/ammo_type_live/index.ex:71
+#: lib/cannery_web/live/ammo_type_live/index.ex:77
#: lib/cannery_web/live/ammo_type_live/show.html.heex:59
#, elixir-autogen, elixir-format
msgid "Blank"
@@ -68,35 +68,35 @@ msgid "Brass"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:44
-#: lib/cannery_web/live/ammo_type_live/index.ex:53
+#: lib/cannery_web/live/ammo_type_live/index.ex:59
#: lib/cannery_web/live/ammo_type_live/show.html.heex:45
#, elixir-autogen, elixir-format
msgid "Bullet core"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:37
-#: lib/cannery_web/live/ammo_type_live/index.ex:52
+#: lib/cannery_web/live/ammo_type_live/index.ex:58
#: lib/cannery_web/live/ammo_type_live/show.html.heex:44
#, elixir-autogen, elixir-format
msgid "Bullet type"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:58
-#: lib/cannery_web/live/ammo_type_live/index.ex:55
+#: lib/cannery_web/live/ammo_type_live/index.ex:61
#: lib/cannery_web/live/ammo_type_live/show.html.heex:47
#, elixir-autogen, elixir-format
msgid "Caliber"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:51
-#: lib/cannery_web/live/ammo_type_live/index.ex:54
+#: lib/cannery_web/live/ammo_type_live/index.ex:60
#: lib/cannery_web/live/ammo_type_live/show.html.heex:46
#, elixir-autogen, elixir-format
msgid "Cartridge"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:65
-#: lib/cannery_web/live/ammo_type_live/index.ex:56
+#: lib/cannery_web/live/ammo_type_live/index.ex:62
#: lib/cannery_web/live/ammo_type_live/show.html.heex:48
#, elixir-autogen, elixir-format
msgid "Case material"
@@ -118,7 +118,7 @@ msgid "Containers"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:144
-#: lib/cannery_web/live/ammo_type_live/index.ex:72
+#: lib/cannery_web/live/ammo_type_live/index.ex:78
#: lib/cannery_web/live/ammo_type_live/show.html.heex:60
#, elixir-autogen, elixir-format
msgid "Corrosive"
@@ -186,14 +186,14 @@ msgid "FMJ"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:103
-#: lib/cannery_web/live/ammo_type_live/index.ex:65
+#: lib/cannery_web/live/ammo_type_live/index.ex:71
#: lib/cannery_web/live/ammo_type_live/show.html.heex:53
#, elixir-autogen, elixir-format
msgid "Grains"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:136
-#: lib/cannery_web/live/ammo_type_live/index.ex:70
+#: lib/cannery_web/live/ammo_type_live/index.ex:76
#: lib/cannery_web/live/ammo_type_live/show.html.heex:58
#, elixir-autogen, elixir-format
msgid "Incendiary"
@@ -245,7 +245,7 @@ msgid "Magazine, Clip, Ammo Box, etc"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:148
-#: lib/cannery_web/live/ammo_type_live/index.ex:73
+#: lib/cannery_web/live/ammo_type_live/index.ex:79
#: lib/cannery_web/live/ammo_type_live/show.html.heex:61
#, elixir-autogen, elixir-format
msgid "Manufacturer"
@@ -262,7 +262,7 @@ msgid "My cool ammo can"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:20
-#: lib/cannery_web/live/ammo_type_live/index.ex:51
+#: lib/cannery_web/live/ammo_type_live/index.ex:57
#: 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
@@ -272,6 +272,7 @@ msgid "Name"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.ex:29
+#: lib/cannery_web/live/ammo_type_live/index.ex:35
#, elixir-autogen, elixir-format
msgid "New Ammo type"
msgstr ""
@@ -344,7 +345,7 @@ msgid "On the bookshelf"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:111
-#: lib/cannery_web/live/ammo_type_live/index.ex:66
+#: lib/cannery_web/live/ammo_type_live/index.ex:72
#: lib/cannery_web/live/ammo_type_live/show.html.heex:54
#, elixir-autogen, elixir-format
msgid "Pressure"
@@ -362,7 +363,7 @@ msgid "Price paid:"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:118
-#: lib/cannery_web/live/ammo_type_live/index.ex:67
+#: lib/cannery_web/live/ammo_type_live/index.ex:73
#: lib/cannery_web/live/ammo_type_live/show.html.heex:55
#, elixir-autogen, elixir-format
msgid "Primer type"
@@ -433,7 +434,7 @@ msgid "The self-hosted firearm tracker website"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:132
-#: lib/cannery_web/live/ammo_type_live/index.ex:69
+#: lib/cannery_web/live/ammo_type_live/index.ex:75
#: lib/cannery_web/live/ammo_type_live/show.html.heex:57
#, elixir-autogen, elixir-format
msgid "Tracer"
@@ -582,7 +583,7 @@ msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:151
#: 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:118
+#: lib/cannery_web/live/ammo_type_live/index.ex:124
#: lib/cannery_web/live/ammo_type_live/show.html.heex:110
#, elixir-autogen, elixir-format
msgid "$%{amount}"
@@ -594,35 +595,35 @@ msgid "Bimetal"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:72
-#: lib/cannery_web/live/ammo_type_live/index.ex:57
+#: lib/cannery_web/live/ammo_type_live/index.ex:63
#: lib/cannery_web/live/ammo_type_live/show.html.heex:49
#, elixir-autogen, elixir-format
msgid "Jacket type"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:79
-#: lib/cannery_web/live/ammo_type_live/index.ex:58
+#: lib/cannery_web/live/ammo_type_live/index.ex:64
#: lib/cannery_web/live/ammo_type_live/show.html.heex:50
#, elixir-autogen, elixir-format
msgid "Muzzle velocity"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:93
-#: lib/cannery_web/live/ammo_type_live/index.ex:61
+#: lib/cannery_web/live/ammo_type_live/index.ex:67
#: lib/cannery_web/live/ammo_type_live/show.html.heex:52
#, elixir-autogen, elixir-format
msgid "Powder grains per charge"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:89
-#: lib/cannery_web/live/ammo_type_live/index.ex:59
+#: lib/cannery_web/live/ammo_type_live/index.ex:65
#: lib/cannery_web/live/ammo_type_live/show.html.heex:51
#, elixir-autogen, elixir-format
msgid "Powder type"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:152
-#: lib/cannery_web/live/ammo_type_live/index.ex:74
+#: lib/cannery_web/live/ammo_type_live/index.ex:80
#: lib/cannery_web/live/ammo_type_live/show.html.heex:62
#, elixir-autogen, elixir-format
msgid "UPC"
@@ -655,7 +656,7 @@ msgid "Unstage"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:125
-#: lib/cannery_web/live/ammo_type_live/index.ex:68
+#: lib/cannery_web/live/ammo_type_live/index.ex:74
#: lib/cannery_web/live/ammo_type_live/show.html.heex:56
#, elixir-autogen, elixir-format
msgid "Firing type"
@@ -694,7 +695,7 @@ msgstr ""
msgid "Show %{name}"
msgstr ""
-#: lib/cannery_web/live/ammo_type_live/index.ex:117
+#: lib/cannery_web/live/ammo_type_live/index.ex:123
#: lib/cannery_web/live/ammo_type_live/show.html.heex:116
#, elixir-autogen, elixir-format
msgid "No cost information"
@@ -735,7 +736,7 @@ msgstr ""
msgid "Current # of rounds:"
msgstr ""
-#: lib/cannery_web/live/ammo_type_live/index.ex:86
+#: lib/cannery_web/live/ammo_type_live/index.ex:92
#, elixir-autogen, elixir-format
msgid "Total # of rounds"
msgstr ""
@@ -781,7 +782,7 @@ msgstr ""
msgid "Copies"
msgstr ""
-#: lib/cannery_web/live/ammo_type_live/index.ex:34
+#: lib/cannery_web/live/ammo_type_live/index.ex:40
#, elixir-autogen, elixir-format, fuzzy
msgid "Ammo types"
msgstr ""
@@ -899,7 +900,7 @@ msgstr ""
msgid "Leave \"Uses left\" blank to make invite unlimited"
msgstr ""
-#: lib/cannery_web/live/ammo_type_live/index.ex:87
+#: lib/cannery_web/live/ammo_type_live/index.ex:93
#, elixir-autogen, elixir-format, fuzzy
msgid "Total # of ammo"
msgstr ""
diff --git a/priv/gettext/en/LC_MESSAGES/prompts.po b/priv/gettext/en/LC_MESSAGES/prompts.po
index cb681248..05e89bac 100644
--- a/priv/gettext/en/LC_MESSAGES/prompts.po
+++ b/priv/gettext/en/LC_MESSAGES/prompts.po
@@ -11,7 +11,7 @@ msgstr ""
"Language: en\n"
"Plural-Forms: nplurals=2\n"
-#: lib/cannery_web/live/ammo_type_live/form_component.ex:85
+#: lib/cannery_web/live/ammo_type_live/form_component.ex:86
#: lib/cannery_web/live/container_live/form_component.ex:89
#: lib/cannery_web/live/invite_live/form_component.ex:80
#: lib/cannery_web/live/tag_live/form_component.ex:126
@@ -19,7 +19,7 @@ msgstr ""
msgid "%{name} created successfully"
msgstr ""
-#: lib/cannery_web/live/ammo_type_live/index.ex:41
+#: lib/cannery_web/live/ammo_type_live/index.ex:47
#: lib/cannery_web/live/ammo_type_live/show.ex:28
#: lib/cannery_web/live/invite_live/index.ex:53
#: lib/cannery_web/live/invite_live/index.ex:133
@@ -273,7 +273,7 @@ msgid_plural "Ammo added successfully"
msgstr[0] ""
msgstr[1] ""
-#: lib/cannery_web/live/ammo_type_live/index.ex:163
+#: lib/cannery_web/live/ammo_type_live/index.ex:177
#: 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 b138195e..00b61b29 100644
--- a/priv/gettext/es/LC_MESSAGES/default.po
+++ b/priv/gettext/es/LC_MESSAGES/default.po
@@ -58,7 +58,7 @@ msgstr ""
msgid "Ammo type"
msgstr ""
-#: lib/cannery_web/live/ammo_type_live/index.ex:88
+#: lib/cannery_web/live/ammo_type_live/index.ex:94
#: lib/cannery_web/live/ammo_type_live/show.html.heex:106
#, elixir-autogen, elixir-format
msgid "Average Price paid"
@@ -70,7 +70,7 @@ msgid "Background color"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:140
-#: lib/cannery_web/live/ammo_type_live/index.ex:71
+#: lib/cannery_web/live/ammo_type_live/index.ex:77
#: lib/cannery_web/live/ammo_type_live/show.html.heex:59
#, elixir-autogen, elixir-format
msgid "Blank"
@@ -82,35 +82,35 @@ msgid "Brass"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:44
-#: lib/cannery_web/live/ammo_type_live/index.ex:53
+#: lib/cannery_web/live/ammo_type_live/index.ex:59
#: lib/cannery_web/live/ammo_type_live/show.html.heex:45
#, elixir-autogen, elixir-format
msgid "Bullet core"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:37
-#: lib/cannery_web/live/ammo_type_live/index.ex:52
+#: lib/cannery_web/live/ammo_type_live/index.ex:58
#: lib/cannery_web/live/ammo_type_live/show.html.heex:44
#, elixir-autogen, elixir-format
msgid "Bullet type"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:58
-#: lib/cannery_web/live/ammo_type_live/index.ex:55
+#: lib/cannery_web/live/ammo_type_live/index.ex:61
#: lib/cannery_web/live/ammo_type_live/show.html.heex:47
#, elixir-autogen, elixir-format
msgid "Caliber"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:51
-#: lib/cannery_web/live/ammo_type_live/index.ex:54
+#: lib/cannery_web/live/ammo_type_live/index.ex:60
#: lib/cannery_web/live/ammo_type_live/show.html.heex:46
#, elixir-autogen, elixir-format
msgid "Cartridge"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:65
-#: lib/cannery_web/live/ammo_type_live/index.ex:56
+#: lib/cannery_web/live/ammo_type_live/index.ex:62
#: lib/cannery_web/live/ammo_type_live/show.html.heex:48
#, elixir-autogen, elixir-format
msgid "Case material"
@@ -132,7 +132,7 @@ msgid "Containers"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:144
-#: lib/cannery_web/live/ammo_type_live/index.ex:72
+#: lib/cannery_web/live/ammo_type_live/index.ex:78
#: lib/cannery_web/live/ammo_type_live/show.html.heex:60
#, elixir-autogen, elixir-format
msgid "Corrosive"
@@ -200,14 +200,14 @@ msgid "FMJ"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:103
-#: lib/cannery_web/live/ammo_type_live/index.ex:65
+#: lib/cannery_web/live/ammo_type_live/index.ex:71
#: lib/cannery_web/live/ammo_type_live/show.html.heex:53
#, elixir-autogen, elixir-format
msgid "Grains"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:136
-#: lib/cannery_web/live/ammo_type_live/index.ex:70
+#: lib/cannery_web/live/ammo_type_live/index.ex:76
#: lib/cannery_web/live/ammo_type_live/show.html.heex:58
#, elixir-autogen, elixir-format
msgid "Incendiary"
@@ -259,7 +259,7 @@ msgid "Magazine, Clip, Ammo Box, etc"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:148
-#: lib/cannery_web/live/ammo_type_live/index.ex:73
+#: lib/cannery_web/live/ammo_type_live/index.ex:79
#: lib/cannery_web/live/ammo_type_live/show.html.heex:61
#, elixir-autogen, elixir-format
msgid "Manufacturer"
@@ -276,7 +276,7 @@ msgid "My cool ammo can"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:20
-#: lib/cannery_web/live/ammo_type_live/index.ex:51
+#: lib/cannery_web/live/ammo_type_live/index.ex:57
#: 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
@@ -286,6 +286,7 @@ msgid "Name"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.ex:29
+#: lib/cannery_web/live/ammo_type_live/index.ex:35
#, elixir-autogen, elixir-format
msgid "New Ammo type"
msgstr ""
@@ -358,7 +359,7 @@ msgid "On the bookshelf"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:111
-#: lib/cannery_web/live/ammo_type_live/index.ex:66
+#: lib/cannery_web/live/ammo_type_live/index.ex:72
#: lib/cannery_web/live/ammo_type_live/show.html.heex:54
#, elixir-autogen, elixir-format
msgid "Pressure"
@@ -376,7 +377,7 @@ msgid "Price paid:"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:118
-#: lib/cannery_web/live/ammo_type_live/index.ex:67
+#: lib/cannery_web/live/ammo_type_live/index.ex:73
#: lib/cannery_web/live/ammo_type_live/show.html.heex:55
#, elixir-autogen, elixir-format
msgid "Primer type"
@@ -447,7 +448,7 @@ msgid "The self-hosted firearm tracker website"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:132
-#: lib/cannery_web/live/ammo_type_live/index.ex:69
+#: lib/cannery_web/live/ammo_type_live/index.ex:75
#: lib/cannery_web/live/ammo_type_live/show.html.heex:57
#, elixir-autogen, elixir-format
msgid "Tracer"
@@ -596,7 +597,7 @@ msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:151
#: 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:118
+#: lib/cannery_web/live/ammo_type_live/index.ex:124
#: lib/cannery_web/live/ammo_type_live/show.html.heex:110
#, elixir-autogen, elixir-format
msgid "$%{amount}"
@@ -608,35 +609,35 @@ msgid "Bimetal"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:72
-#: lib/cannery_web/live/ammo_type_live/index.ex:57
+#: lib/cannery_web/live/ammo_type_live/index.ex:63
#: lib/cannery_web/live/ammo_type_live/show.html.heex:49
#, elixir-autogen, elixir-format
msgid "Jacket type"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:79
-#: lib/cannery_web/live/ammo_type_live/index.ex:58
+#: lib/cannery_web/live/ammo_type_live/index.ex:64
#: lib/cannery_web/live/ammo_type_live/show.html.heex:50
#, elixir-autogen, elixir-format
msgid "Muzzle velocity"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:93
-#: lib/cannery_web/live/ammo_type_live/index.ex:61
+#: lib/cannery_web/live/ammo_type_live/index.ex:67
#: lib/cannery_web/live/ammo_type_live/show.html.heex:52
#, elixir-autogen, elixir-format
msgid "Powder grains per charge"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:89
-#: lib/cannery_web/live/ammo_type_live/index.ex:59
+#: lib/cannery_web/live/ammo_type_live/index.ex:65
#: lib/cannery_web/live/ammo_type_live/show.html.heex:51
#, elixir-autogen, elixir-format
msgid "Powder type"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:152
-#: lib/cannery_web/live/ammo_type_live/index.ex:74
+#: lib/cannery_web/live/ammo_type_live/index.ex:80
#: lib/cannery_web/live/ammo_type_live/show.html.heex:62
#, elixir-autogen, elixir-format
msgid "UPC"
@@ -669,7 +670,7 @@ msgid "Unstage"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:125
-#: lib/cannery_web/live/ammo_type_live/index.ex:68
+#: lib/cannery_web/live/ammo_type_live/index.ex:74
#: lib/cannery_web/live/ammo_type_live/show.html.heex:56
#, elixir-autogen, elixir-format
msgid "Firing type"
@@ -708,7 +709,7 @@ msgstr ""
msgid "Show %{name}"
msgstr ""
-#: lib/cannery_web/live/ammo_type_live/index.ex:117
+#: lib/cannery_web/live/ammo_type_live/index.ex:123
#: lib/cannery_web/live/ammo_type_live/show.html.heex:116
#, elixir-autogen, elixir-format
msgid "No cost information"
@@ -749,7 +750,7 @@ msgstr ""
msgid "Current # of rounds:"
msgstr ""
-#: lib/cannery_web/live/ammo_type_live/index.ex:86
+#: lib/cannery_web/live/ammo_type_live/index.ex:92
#, elixir-autogen, elixir-format
msgid "Total # of rounds"
msgstr ""
@@ -795,7 +796,7 @@ msgstr ""
msgid "Copies"
msgstr ""
-#: lib/cannery_web/live/ammo_type_live/index.ex:34
+#: lib/cannery_web/live/ammo_type_live/index.ex:40
#, elixir-autogen, elixir-format
msgid "Ammo types"
msgstr ""
@@ -913,7 +914,7 @@ msgstr ""
msgid "Leave \"Uses left\" blank to make invite unlimited"
msgstr ""
-#: lib/cannery_web/live/ammo_type_live/index.ex:87
+#: lib/cannery_web/live/ammo_type_live/index.ex:93
#, elixir-autogen, elixir-format, fuzzy
msgid "Total # of ammo"
msgstr ""
diff --git a/priv/gettext/es/LC_MESSAGES/prompts.po b/priv/gettext/es/LC_MESSAGES/prompts.po
index b66966ba..c8e72cf3 100644
--- a/priv/gettext/es/LC_MESSAGES/prompts.po
+++ b/priv/gettext/es/LC_MESSAGES/prompts.po
@@ -23,7 +23,7 @@ msgstr ""
## Run "mix gettext.extract" to bring this file up to
## date. Leave "msgstr"s empty as changing them here has no
## effect: edit them in PO (.po) files instead.
-#: lib/cannery_web/live/ammo_type_live/form_component.ex:85
+#: lib/cannery_web/live/ammo_type_live/form_component.ex:86
#: lib/cannery_web/live/container_live/form_component.ex:89
#: lib/cannery_web/live/invite_live/form_component.ex:80
#: lib/cannery_web/live/tag_live/form_component.ex:126
@@ -31,7 +31,7 @@ msgstr ""
msgid "%{name} created successfully"
msgstr "%{name} creado exitosamente"
-#: lib/cannery_web/live/ammo_type_live/index.ex:41
+#: lib/cannery_web/live/ammo_type_live/index.ex:47
#: lib/cannery_web/live/ammo_type_live/show.ex:28
#: lib/cannery_web/live/invite_live/index.ex:53
#: lib/cannery_web/live/invite_live/index.ex:133
@@ -292,7 +292,7 @@ msgid_plural "Ammo added successfully"
msgstr[0] ""
msgstr[1] ""
-#: lib/cannery_web/live/ammo_type_live/index.ex:163
+#: lib/cannery_web/live/ammo_type_live/index.ex:177
#: 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 154a2378..1c9fd747 100644
--- a/priv/gettext/fr/LC_MESSAGES/default.po
+++ b/priv/gettext/fr/LC_MESSAGES/default.po
@@ -58,7 +58,7 @@ msgstr "Munition"
msgid "Ammo type"
msgstr "Type de munition"
-#: lib/cannery_web/live/ammo_type_live/index.ex:88
+#: lib/cannery_web/live/ammo_type_live/index.ex:94
#: lib/cannery_web/live/ammo_type_live/show.html.heex:106
#, elixir-autogen, elixir-format
msgid "Average Price paid"
@@ -70,7 +70,7 @@ msgid "Background color"
msgstr "Couleur de fond"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:140
-#: lib/cannery_web/live/ammo_type_live/index.ex:71
+#: lib/cannery_web/live/ammo_type_live/index.ex:77
#: lib/cannery_web/live/ammo_type_live/show.html.heex:59
#, elixir-autogen, elixir-format
msgid "Blank"
@@ -82,35 +82,35 @@ msgid "Brass"
msgstr "Cuivre"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:44
-#: lib/cannery_web/live/ammo_type_live/index.ex:53
+#: lib/cannery_web/live/ammo_type_live/index.ex:59
#: lib/cannery_web/live/ammo_type_live/show.html.heex:45
#, elixir-autogen, elixir-format
msgid "Bullet core"
msgstr "Noyau de balle"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:37
-#: lib/cannery_web/live/ammo_type_live/index.ex:52
+#: lib/cannery_web/live/ammo_type_live/index.ex:58
#: lib/cannery_web/live/ammo_type_live/show.html.heex:44
#, elixir-autogen, elixir-format
msgid "Bullet type"
msgstr "Type de balle"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:58
-#: lib/cannery_web/live/ammo_type_live/index.ex:55
+#: lib/cannery_web/live/ammo_type_live/index.ex:61
#: lib/cannery_web/live/ammo_type_live/show.html.heex:47
#, elixir-autogen, elixir-format
msgid "Caliber"
msgstr "Calibre"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:51
-#: lib/cannery_web/live/ammo_type_live/index.ex:54
+#: lib/cannery_web/live/ammo_type_live/index.ex:60
#: lib/cannery_web/live/ammo_type_live/show.html.heex:46
#, elixir-autogen, elixir-format
msgid "Cartridge"
msgstr "Cartouche"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:65
-#: lib/cannery_web/live/ammo_type_live/index.ex:56
+#: lib/cannery_web/live/ammo_type_live/index.ex:62
#: lib/cannery_web/live/ammo_type_live/show.html.heex:48
#, elixir-autogen, elixir-format
msgid "Case material"
@@ -132,7 +132,7 @@ msgid "Containers"
msgstr "Conteneurs"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:144
-#: lib/cannery_web/live/ammo_type_live/index.ex:72
+#: lib/cannery_web/live/ammo_type_live/index.ex:78
#: lib/cannery_web/live/ammo_type_live/show.html.heex:60
#, elixir-autogen, elixir-format
msgid "Corrosive"
@@ -200,14 +200,14 @@ msgid "FMJ"
msgstr "FMJ"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:103
-#: lib/cannery_web/live/ammo_type_live/index.ex:65
+#: lib/cannery_web/live/ammo_type_live/index.ex:71
#: lib/cannery_web/live/ammo_type_live/show.html.heex:53
#, elixir-autogen, elixir-format
msgid "Grains"
msgstr "Graines"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:136
-#: lib/cannery_web/live/ammo_type_live/index.ex:70
+#: lib/cannery_web/live/ammo_type_live/index.ex:76
#: lib/cannery_web/live/ammo_type_live/show.html.heex:58
#, elixir-autogen, elixir-format
msgid "Incendiary"
@@ -259,7 +259,7 @@ msgid "Magazine, Clip, Ammo Box, etc"
msgstr "Chargeur, lame-chargeur, boite de munition, etc."
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:148
-#: lib/cannery_web/live/ammo_type_live/index.ex:73
+#: lib/cannery_web/live/ammo_type_live/index.ex:79
#: lib/cannery_web/live/ammo_type_live/show.html.heex:61
#, elixir-autogen, elixir-format
msgid "Manufacturer"
@@ -276,7 +276,7 @@ msgid "My cool ammo can"
msgstr "Ma superbe boite de munition"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:20
-#: lib/cannery_web/live/ammo_type_live/index.ex:51
+#: lib/cannery_web/live/ammo_type_live/index.ex:57
#: 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
@@ -286,6 +286,7 @@ msgid "Name"
msgstr "Nom"
#: lib/cannery_web/live/ammo_type_live/index.ex:29
+#: lib/cannery_web/live/ammo_type_live/index.ex:35
#, elixir-autogen, elixir-format
msgid "New Ammo type"
msgstr "Nouveau type de munition"
@@ -358,7 +359,7 @@ msgid "On the bookshelf"
msgstr "Sur l’étagère"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:111
-#: lib/cannery_web/live/ammo_type_live/index.ex:66
+#: lib/cannery_web/live/ammo_type_live/index.ex:72
#: lib/cannery_web/live/ammo_type_live/show.html.heex:54
#, elixir-autogen, elixir-format
msgid "Pressure"
@@ -376,7 +377,7 @@ msgid "Price paid:"
msgstr "Prix payé :"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:118
-#: lib/cannery_web/live/ammo_type_live/index.ex:67
+#: lib/cannery_web/live/ammo_type_live/index.ex:73
#: lib/cannery_web/live/ammo_type_live/show.html.heex:55
#, elixir-autogen, elixir-format
msgid "Primer type"
@@ -451,7 +452,7 @@ msgid "The self-hosted firearm tracker website"
msgstr "Le site web de suivi d’arme à feux auto-hébergé"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:132
-#: lib/cannery_web/live/ammo_type_live/index.ex:69
+#: lib/cannery_web/live/ammo_type_live/index.ex:75
#: lib/cannery_web/live/ammo_type_live/show.html.heex:57
#, elixir-autogen, elixir-format
msgid "Tracer"
@@ -600,7 +601,7 @@ msgstr "Évènements de tir"
#: lib/cannery_web/live/ammo_group_live/index.ex:151
#: 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:118
+#: lib/cannery_web/live/ammo_type_live/index.ex:124
#: lib/cannery_web/live/ammo_type_live/show.html.heex:110
#, elixir-autogen, elixir-format
msgid "$%{amount}"
@@ -612,35 +613,35 @@ msgid "Bimetal"
msgstr "Bi-métal"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:72
-#: lib/cannery_web/live/ammo_type_live/index.ex:57
+#: lib/cannery_web/live/ammo_type_live/index.ex:63
#: lib/cannery_web/live/ammo_type_live/show.html.heex:49
#, elixir-autogen, elixir-format
msgid "Jacket type"
msgstr "Type de douille"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:79
-#: lib/cannery_web/live/ammo_type_live/index.ex:58
+#: lib/cannery_web/live/ammo_type_live/index.ex:64
#: lib/cannery_web/live/ammo_type_live/show.html.heex:50
#, elixir-autogen, elixir-format
msgid "Muzzle velocity"
msgstr "Vélocité du canon"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:93
-#: lib/cannery_web/live/ammo_type_live/index.ex:61
+#: lib/cannery_web/live/ammo_type_live/index.ex:67
#: lib/cannery_web/live/ammo_type_live/show.html.heex:52
#, elixir-autogen, elixir-format
msgid "Powder grains per charge"
msgstr "Graines de poudre par charge"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:89
-#: lib/cannery_web/live/ammo_type_live/index.ex:59
+#: lib/cannery_web/live/ammo_type_live/index.ex:65
#: lib/cannery_web/live/ammo_type_live/show.html.heex:51
#, elixir-autogen, elixir-format
msgid "Powder type"
msgstr "Type de poudre"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:152
-#: lib/cannery_web/live/ammo_type_live/index.ex:74
+#: lib/cannery_web/live/ammo_type_live/index.ex:80
#: lib/cannery_web/live/ammo_type_live/show.html.heex:62
#, elixir-autogen, elixir-format
msgid "UPC"
@@ -673,7 +674,7 @@ msgid "Unstage"
msgstr "Désélectionner"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:125
-#: lib/cannery_web/live/ammo_type_live/index.ex:68
+#: lib/cannery_web/live/ammo_type_live/index.ex:74
#: lib/cannery_web/live/ammo_type_live/show.html.heex:56
#, elixir-autogen, elixir-format
msgid "Firing type"
@@ -712,7 +713,7 @@ msgstr "Cartouches :"
msgid "Show %{name}"
msgstr "Montrer %{name}"
-#: lib/cannery_web/live/ammo_type_live/index.ex:117
+#: lib/cannery_web/live/ammo_type_live/index.ex:123
#: lib/cannery_web/live/ammo_type_live/show.html.heex:116
#, elixir-autogen, elixir-format
msgid "No cost information"
@@ -753,7 +754,7 @@ msgstr "Cartouches utilisées"
msgid "Current # of rounds:"
msgstr "Quantité actuelle de cartouches :"
-#: lib/cannery_web/live/ammo_type_live/index.ex:86
+#: lib/cannery_web/live/ammo_type_live/index.ex:92
#, elixir-autogen, elixir-format
msgid "Total # of rounds"
msgstr "Quantité de cartouches"
@@ -799,7 +800,7 @@ msgstr "Enregistrer des tirs"
msgid "Copies"
msgstr "Exemplaires"
-#: lib/cannery_web/live/ammo_type_live/index.ex:34
+#: lib/cannery_web/live/ammo_type_live/index.ex:40
#, elixir-autogen, elixir-format
msgid "Ammo types"
msgstr "Types de munition"
@@ -918,7 +919,7 @@ msgid "Leave \"Uses left\" blank to make invite unlimited"
msgstr ""
"Laissez \"Utilisations restantes\" vide pour rendre l'invitation illimitée"
-#: lib/cannery_web/live/ammo_type_live/index.ex:87
+#: lib/cannery_web/live/ammo_type_live/index.ex:93
#, elixir-autogen, elixir-format, fuzzy
msgid "Total # of ammo"
msgstr "Quantité de cartouches"
diff --git a/priv/gettext/fr/LC_MESSAGES/prompts.po b/priv/gettext/fr/LC_MESSAGES/prompts.po
index 3a2ea170..3ae6e012 100644
--- a/priv/gettext/fr/LC_MESSAGES/prompts.po
+++ b/priv/gettext/fr/LC_MESSAGES/prompts.po
@@ -23,7 +23,7 @@ msgstr ""
## Run "mix gettext.extract" to bring this file up to
## date. Leave "msgstr"s empty as changing them here has no
## effect: edit them in PO (.po) files instead.
-#: lib/cannery_web/live/ammo_type_live/form_component.ex:85
+#: lib/cannery_web/live/ammo_type_live/form_component.ex:86
#: lib/cannery_web/live/container_live/form_component.ex:89
#: lib/cannery_web/live/invite_live/form_component.ex:80
#: lib/cannery_web/live/tag_live/form_component.ex:126
@@ -31,7 +31,7 @@ msgstr ""
msgid "%{name} created successfully"
msgstr "%{name} créé· avec succès"
-#: lib/cannery_web/live/ammo_type_live/index.ex:41
+#: lib/cannery_web/live/ammo_type_live/index.ex:47
#: lib/cannery_web/live/ammo_type_live/show.ex:28
#: lib/cannery_web/live/invite_live/index.ex:53
#: lib/cannery_web/live/invite_live/index.ex:133
@@ -294,7 +294,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:163
+#: lib/cannery_web/live/ammo_type_live/index.ex:177
#: 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 6ed302f7..7db13509 100644
--- a/priv/gettext/ga/LC_MESSAGES/default.po
+++ b/priv/gettext/ga/LC_MESSAGES/default.po
@@ -54,7 +54,7 @@ msgstr ""
msgid "Ammo type"
msgstr ""
-#: lib/cannery_web/live/ammo_type_live/index.ex:88
+#: lib/cannery_web/live/ammo_type_live/index.ex:94
#: lib/cannery_web/live/ammo_type_live/show.html.heex:106
#, elixir-autogen, elixir-format
msgid "Average Price paid"
@@ -66,7 +66,7 @@ msgid "Background color"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:140
-#: lib/cannery_web/live/ammo_type_live/index.ex:71
+#: lib/cannery_web/live/ammo_type_live/index.ex:77
#: lib/cannery_web/live/ammo_type_live/show.html.heex:59
#, elixir-autogen, elixir-format
msgid "Blank"
@@ -78,35 +78,35 @@ msgid "Brass"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:44
-#: lib/cannery_web/live/ammo_type_live/index.ex:53
+#: lib/cannery_web/live/ammo_type_live/index.ex:59
#: lib/cannery_web/live/ammo_type_live/show.html.heex:45
#, elixir-autogen, elixir-format
msgid "Bullet core"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:37
-#: lib/cannery_web/live/ammo_type_live/index.ex:52
+#: lib/cannery_web/live/ammo_type_live/index.ex:58
#: lib/cannery_web/live/ammo_type_live/show.html.heex:44
#, elixir-autogen, elixir-format
msgid "Bullet type"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:58
-#: lib/cannery_web/live/ammo_type_live/index.ex:55
+#: lib/cannery_web/live/ammo_type_live/index.ex:61
#: lib/cannery_web/live/ammo_type_live/show.html.heex:47
#, elixir-autogen, elixir-format
msgid "Caliber"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:51
-#: lib/cannery_web/live/ammo_type_live/index.ex:54
+#: lib/cannery_web/live/ammo_type_live/index.ex:60
#: lib/cannery_web/live/ammo_type_live/show.html.heex:46
#, elixir-autogen, elixir-format
msgid "Cartridge"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:65
-#: lib/cannery_web/live/ammo_type_live/index.ex:56
+#: lib/cannery_web/live/ammo_type_live/index.ex:62
#: lib/cannery_web/live/ammo_type_live/show.html.heex:48
#, elixir-autogen, elixir-format
msgid "Case material"
@@ -128,7 +128,7 @@ msgid "Containers"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:144
-#: lib/cannery_web/live/ammo_type_live/index.ex:72
+#: lib/cannery_web/live/ammo_type_live/index.ex:78
#: lib/cannery_web/live/ammo_type_live/show.html.heex:60
#, elixir-autogen, elixir-format
msgid "Corrosive"
@@ -196,14 +196,14 @@ msgid "FMJ"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:103
-#: lib/cannery_web/live/ammo_type_live/index.ex:65
+#: lib/cannery_web/live/ammo_type_live/index.ex:71
#: lib/cannery_web/live/ammo_type_live/show.html.heex:53
#, elixir-autogen, elixir-format
msgid "Grains"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:136
-#: lib/cannery_web/live/ammo_type_live/index.ex:70
+#: lib/cannery_web/live/ammo_type_live/index.ex:76
#: lib/cannery_web/live/ammo_type_live/show.html.heex:58
#, elixir-autogen, elixir-format
msgid "Incendiary"
@@ -255,7 +255,7 @@ msgid "Magazine, Clip, Ammo Box, etc"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:148
-#: lib/cannery_web/live/ammo_type_live/index.ex:73
+#: lib/cannery_web/live/ammo_type_live/index.ex:79
#: lib/cannery_web/live/ammo_type_live/show.html.heex:61
#, elixir-autogen, elixir-format
msgid "Manufacturer"
@@ -272,7 +272,7 @@ msgid "My cool ammo can"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:20
-#: lib/cannery_web/live/ammo_type_live/index.ex:51
+#: lib/cannery_web/live/ammo_type_live/index.ex:57
#: 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
@@ -282,6 +282,7 @@ msgid "Name"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.ex:29
+#: lib/cannery_web/live/ammo_type_live/index.ex:35
#, elixir-autogen, elixir-format
msgid "New Ammo type"
msgstr ""
@@ -354,7 +355,7 @@ msgid "On the bookshelf"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:111
-#: lib/cannery_web/live/ammo_type_live/index.ex:66
+#: lib/cannery_web/live/ammo_type_live/index.ex:72
#: lib/cannery_web/live/ammo_type_live/show.html.heex:54
#, elixir-autogen, elixir-format
msgid "Pressure"
@@ -372,7 +373,7 @@ msgid "Price paid:"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:118
-#: lib/cannery_web/live/ammo_type_live/index.ex:67
+#: lib/cannery_web/live/ammo_type_live/index.ex:73
#: lib/cannery_web/live/ammo_type_live/show.html.heex:55
#, elixir-autogen, elixir-format
msgid "Primer type"
@@ -443,7 +444,7 @@ msgid "The self-hosted firearm tracker website"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:132
-#: lib/cannery_web/live/ammo_type_live/index.ex:69
+#: lib/cannery_web/live/ammo_type_live/index.ex:75
#: lib/cannery_web/live/ammo_type_live/show.html.heex:57
#, elixir-autogen, elixir-format
msgid "Tracer"
@@ -592,7 +593,7 @@ msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:151
#: 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:118
+#: lib/cannery_web/live/ammo_type_live/index.ex:124
#: lib/cannery_web/live/ammo_type_live/show.html.heex:110
#, elixir-autogen, elixir-format
msgid "$%{amount}"
@@ -604,35 +605,35 @@ msgid "Bimetal"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:72
-#: lib/cannery_web/live/ammo_type_live/index.ex:57
+#: lib/cannery_web/live/ammo_type_live/index.ex:63
#: lib/cannery_web/live/ammo_type_live/show.html.heex:49
#, elixir-autogen, elixir-format
msgid "Jacket type"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:79
-#: lib/cannery_web/live/ammo_type_live/index.ex:58
+#: lib/cannery_web/live/ammo_type_live/index.ex:64
#: lib/cannery_web/live/ammo_type_live/show.html.heex:50
#, elixir-autogen, elixir-format
msgid "Muzzle velocity"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:93
-#: lib/cannery_web/live/ammo_type_live/index.ex:61
+#: lib/cannery_web/live/ammo_type_live/index.ex:67
#: lib/cannery_web/live/ammo_type_live/show.html.heex:52
#, elixir-autogen, elixir-format
msgid "Powder grains per charge"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:89
-#: lib/cannery_web/live/ammo_type_live/index.ex:59
+#: lib/cannery_web/live/ammo_type_live/index.ex:65
#: lib/cannery_web/live/ammo_type_live/show.html.heex:51
#, elixir-autogen, elixir-format
msgid "Powder type"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:152
-#: lib/cannery_web/live/ammo_type_live/index.ex:74
+#: lib/cannery_web/live/ammo_type_live/index.ex:80
#: lib/cannery_web/live/ammo_type_live/show.html.heex:62
#, elixir-autogen, elixir-format
msgid "UPC"
@@ -665,7 +666,7 @@ msgid "Unstage"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:125
-#: lib/cannery_web/live/ammo_type_live/index.ex:68
+#: lib/cannery_web/live/ammo_type_live/index.ex:74
#: lib/cannery_web/live/ammo_type_live/show.html.heex:56
#, elixir-autogen, elixir-format
msgid "Firing type"
@@ -704,7 +705,7 @@ msgstr ""
msgid "Show %{name}"
msgstr ""
-#: lib/cannery_web/live/ammo_type_live/index.ex:117
+#: lib/cannery_web/live/ammo_type_live/index.ex:123
#: lib/cannery_web/live/ammo_type_live/show.html.heex:116
#, elixir-autogen, elixir-format
msgid "No cost information"
@@ -745,7 +746,7 @@ msgstr ""
msgid "Current # of rounds:"
msgstr ""
-#: lib/cannery_web/live/ammo_type_live/index.ex:86
+#: lib/cannery_web/live/ammo_type_live/index.ex:92
#, elixir-autogen, elixir-format
msgid "Total # of rounds"
msgstr ""
@@ -791,7 +792,7 @@ msgstr ""
msgid "Copies"
msgstr ""
-#: lib/cannery_web/live/ammo_type_live/index.ex:34
+#: lib/cannery_web/live/ammo_type_live/index.ex:40
#, elixir-autogen, elixir-format
msgid "Ammo types"
msgstr ""
@@ -909,7 +910,7 @@ msgstr ""
msgid "Leave \"Uses left\" blank to make invite unlimited"
msgstr ""
-#: lib/cannery_web/live/ammo_type_live/index.ex:87
+#: lib/cannery_web/live/ammo_type_live/index.ex:93
#, elixir-autogen, elixir-format
msgid "Total # of ammo"
msgstr ""
diff --git a/priv/gettext/ga/LC_MESSAGES/prompts.po b/priv/gettext/ga/LC_MESSAGES/prompts.po
index 98fe7be0..3485eae9 100644
--- a/priv/gettext/ga/LC_MESSAGES/prompts.po
+++ b/priv/gettext/ga/LC_MESSAGES/prompts.po
@@ -21,7 +21,7 @@ msgstr ""
## Run "mix gettext.extract" to bring this file up to
## date. Leave "msgstr"s empty as changing them here has no
## effect: edit them in PO (.po) files instead.
-#: lib/cannery_web/live/ammo_type_live/form_component.ex:85
+#: lib/cannery_web/live/ammo_type_live/form_component.ex:86
#: lib/cannery_web/live/container_live/form_component.ex:89
#: lib/cannery_web/live/invite_live/form_component.ex:80
#: lib/cannery_web/live/tag_live/form_component.ex:126
@@ -29,7 +29,7 @@ msgstr ""
msgid "%{name} created successfully"
msgstr ""
-#: lib/cannery_web/live/ammo_type_live/index.ex:41
+#: lib/cannery_web/live/ammo_type_live/index.ex:47
#: lib/cannery_web/live/ammo_type_live/show.ex:28
#: lib/cannery_web/live/invite_live/index.ex:53
#: lib/cannery_web/live/invite_live/index.ex:133
@@ -283,7 +283,7 @@ msgid_plural "Ammo added successfully"
msgstr[0] ""
msgstr[1] ""
-#: lib/cannery_web/live/ammo_type_live/index.ex:163
+#: lib/cannery_web/live/ammo_type_live/index.ex:177
#: 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 b8bfddd5..4b8e29e7 100644
--- a/priv/gettext/prompts.pot
+++ b/priv/gettext/prompts.pot
@@ -10,7 +10,7 @@
msgid ""
msgstr ""
-#: lib/cannery_web/live/ammo_type_live/form_component.ex:85
+#: lib/cannery_web/live/ammo_type_live/form_component.ex:86
#: lib/cannery_web/live/container_live/form_component.ex:89
#: lib/cannery_web/live/invite_live/form_component.ex:80
#: lib/cannery_web/live/tag_live/form_component.ex:126
@@ -18,7 +18,7 @@ msgstr ""
msgid "%{name} created successfully"
msgstr ""
-#: lib/cannery_web/live/ammo_type_live/index.ex:41
+#: lib/cannery_web/live/ammo_type_live/index.ex:47
#: lib/cannery_web/live/ammo_type_live/show.ex:28
#: lib/cannery_web/live/invite_live/index.ex:53
#: lib/cannery_web/live/invite_live/index.ex:133
@@ -272,7 +272,7 @@ msgid_plural "Ammo added successfully"
msgstr[0] ""
msgstr[1] ""
-#: lib/cannery_web/live/ammo_type_live/index.ex:163
+#: lib/cannery_web/live/ammo_type_live/index.ex:177
#: 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 b5f4bdaf..c7c87540 100644
--- a/test/cannery_web/live/ammo_type_live_test.exs
+++ b/test/cannery_web/live/ammo_type_live_test.exs
@@ -121,6 +121,58 @@ defmodule CanneryWeb.AmmoTypeLiveTest do
assert html =~ "some updated bullet_type"
end
+ test "clones ammo_type in listing",
+ %{conn: conn, current_user: current_user, ammo_type: ammo_type} do
+ {:ok, index_live, _html} = live(conn, Routes.ammo_type_index_path(conn, :index))
+
+ html = index_live |> element("[data-qa=\"clone-#{ammo_type.id}\"]") |> render_click()
+ assert html =~ gettext("New Ammo type")
+ assert html =~ "some bullet_type"
+
+ assert_patch(index_live, Routes.ammo_type_index_path(conn, :clone, ammo_type))
+
+ # assert index_live
+ # |> form("#ammo_type-form", ammo_type: @invalid_attrs)
+ # |> render_change() =~ dgettext("errors", "can't be blank")
+
+ {:ok, _view, html} =
+ index_live
+ |> form("#ammo_type-form", ammo_type: @create_attrs)
+ |> render_submit()
+ |> follow_redirect(conn, Routes.ammo_type_index_path(conn, :index))
+
+ ammo_type = ammo_type.id |> Ammo.get_ammo_type!(current_user)
+ assert html =~ dgettext("prompts", "%{name} created successfully", name: ammo_type.name)
+ assert html =~ "some bullet_type"
+ end
+
+ test "clones ammo_type in listing with updates",
+ %{conn: conn, current_user: current_user, ammo_type: ammo_type} do
+ {:ok, index_live, _html} = live(conn, Routes.ammo_type_index_path(conn, :index))
+
+ html = index_live |> element("[data-qa=\"clone-#{ammo_type.id}\"]") |> render_click()
+ assert html =~ gettext("New Ammo type")
+ assert html =~ "some bullet_type"
+
+ assert_patch(index_live, Routes.ammo_type_index_path(conn, :clone, ammo_type))
+
+ # assert index_live
+ # |> form("#ammo_type-form", ammo_type: @invalid_attrs)
+ # |> render_change() =~ dgettext("errors", "can't be blank")
+
+ {:ok, _view, html} =
+ index_live
+ |> form("#ammo_type-form",
+ ammo_type: Map.merge(@create_attrs, %{"bullet_type" => "some updated bullet_type"})
+ )
+ |> render_submit()
+ |> follow_redirect(conn, Routes.ammo_type_index_path(conn, :index))
+
+ ammo_type = ammo_type.id |> Ammo.get_ammo_type!(current_user)
+ assert html =~ dgettext("prompts", "%{name} created successfully", name: ammo_type.name)
+ assert html =~ "some updated bullet_type"
+ end
+
test "deletes ammo_type in listing", %{conn: conn, ammo_type: ammo_type} do
{:ok, index_live, _html} = live(conn, Routes.ammo_type_index_path(conn, :index))