Compare commits

..

9 Commits

Author SHA1 Message Date
6083fbca4f display used-up date on used-up ammo
Some checks reported errors
continuous-integration/drone/push Build encountered an error
2022-11-07 01:36:28 -05:00
cc31958bbe add used filtering to ammo index page 2022-11-07 00:47:22 -05:00
9e386f1631 add used filtering to container show page 2022-11-07 00:40:09 -05:00
36a0a1c6c8 add used filtering to ammo type show page 2022-11-07 00:40:09 -05:00
2e0bb861f1 show container name in ammo type listing 2022-11-07 00:40:09 -05:00
dbc575d305 improve container show page layout 2022-11-07 00:40:09 -05:00
5390dcc4c2 improve ammo type show page layout 2022-11-07 00:40:09 -05:00
dc355fcd8e add ammo count to ammo type index page 2022-11-07 00:40:09 -05:00
44fbd69e0f make ammo group index more compact 2022-11-06 23:07:13 -05:00
38 changed files with 856 additions and 404 deletions

View File

@ -1,5 +1,14 @@
# v0.5.5 # v0.5.5
- Update translations - Update translations
- Display used-up date on used-up ammo
- Make ammo index page a bit more compact
- Make ammo index page filter used-up ammo
- Make ammo catalog page include ammo count
- Make ammo type show page a bit more compact
- Make ammo type show page include container names for each ammo
- Make ammo type show page filter used-up ammo
- Make container show page a bit more compact
- Make container show page filter used-up ammo
- Forgot to add the logo as the favicon whoops - Forgot to add the logo as the favicon whoops
# v0.5.4 # v0.5.4

View File

@ -25,7 +25,7 @@
} }
.btn { .btn {
@apply inline-block break-words min-w-4; @apply inline-block break-words;
@apply focus:outline-none px-4 py-2 rounded-lg; @apply focus:outline-none px-4 py-2 rounded-lg;
@apply shadow-sm focus:shadow-lg; @apply shadow-sm focus:shadow-lg;
@apply transition-all duration-300 ease-in-out; @apply transition-all duration-300 ease-in-out;
@ -52,7 +52,7 @@
} }
.link { .link {
@apply inline-block break-all min-w-4; @apply inline-block break-words;
@apply hover:underline; @apply hover:underline;
@apply transition-colors duration-500 ease-in-out; @apply transition-colors duration-500 ease-in-out;
} }

View File

@ -5,7 +5,7 @@ defmodule Cannery.Ammo do
import CanneryWeb.Gettext import CanneryWeb.Gettext
import Ecto.Query, warn: false import Ecto.Query, warn: false
alias Cannery.{Accounts.User, Containers, Repo} alias Cannery.{Accounts.User, Containers, Containers.Container, Repo}
alias Cannery.ActivityLog.ShotGroup alias Cannery.ActivityLog.ShotGroup
alias Cannery.Ammo.{AmmoGroup, AmmoType} alias Cannery.Ammo.{AmmoGroup, AmmoType}
alias Ecto.Changeset alias Ecto.Changeset
@ -220,7 +220,15 @@ defmodule Cannery.Ammo do
""" """
@spec list_ammo_groups_for_type(AmmoType.t(), User.t()) :: [AmmoGroup.t()] @spec list_ammo_groups_for_type(AmmoType.t(), User.t()) :: [AmmoGroup.t()]
def list_ammo_groups_for_type(%AmmoType{id: ammo_type_id, user_id: user_id}, %User{id: user_id}) do @spec list_ammo_groups_for_type(AmmoType.t(), User.t(), include_empty :: boolean()) ::
[AmmoGroup.t()]
def list_ammo_groups_for_type(ammo_type, user, include_empty \\ false)
def list_ammo_groups_for_type(
%AmmoType{id: ammo_type_id, user_id: user_id},
%User{id: user_id},
true = _include_empty
) do
Repo.all( Repo.all(
from ag in AmmoGroup, from ag in AmmoGroup,
left_join: sg in assoc(ag, :shot_groups), left_join: sg in assoc(ag, :shot_groups),
@ -231,6 +239,110 @@ defmodule Cannery.Ammo do
) )
end end
def list_ammo_groups_for_type(
%AmmoType{id: ammo_type_id, user_id: user_id},
%User{id: user_id},
false = _include_empty
) do
Repo.all(
from ag in AmmoGroup,
left_join: sg in assoc(ag, :shot_groups),
where: ag.ammo_type_id == ^ammo_type_id,
where: ag.user_id == ^user_id,
where: not (ag.count == 0),
preload: [shot_groups: sg],
order_by: ag.id
)
end
@doc """
Returns the list of ammo_groups for a user and container.
## Examples
iex> list_ammo_groups_for_container(%AmmoType{id: 123}, %User{id: 123})
[%AmmoGroup{}, ...]
"""
@spec list_ammo_groups_for_container(Container.t(), User.t()) :: [AmmoGroup.t()]
@spec list_ammo_groups_for_container(Container.t(), User.t(), include_empty :: boolean()) ::
[AmmoGroup.t()]
def list_ammo_groups_for_container(container, user, include_empty \\ false)
def list_ammo_groups_for_container(
%Container{id: container_id, user_id: user_id},
%User{id: user_id},
true = _include_empty
) do
Repo.all(
from ag in AmmoGroup,
left_join: sg in assoc(ag, :shot_groups),
where: ag.container_id == ^container_id,
where: ag.user_id == ^user_id,
preload: [shot_groups: sg],
order_by: ag.id
)
end
def list_ammo_groups_for_container(
%Container{id: container_id, user_id: user_id},
%User{id: user_id},
false = _include_empty
) do
Repo.all(
from ag in AmmoGroup,
left_join: sg in assoc(ag, :shot_groups),
where: ag.container_id == ^container_id,
where: ag.user_id == ^user_id,
where: not (ag.count == 0),
preload: [shot_groups: sg],
order_by: ag.id
)
end
@doc """
Returns the count of ammo_groups for an ammo type.
## Examples
iex> get_ammo_groups_count_for_type(%User{id: 123})
3
"""
@spec get_ammo_groups_count_for_type(AmmoType.t(), User.t()) :: [AmmoGroup.t()]
@spec get_ammo_groups_count_for_type(AmmoType.t(), User.t(), include_empty :: boolean()) ::
[AmmoGroup.t()]
def get_ammo_groups_count_for_type(ammo_type, user, include_empty \\ false)
def get_ammo_groups_count_for_type(
%AmmoType{id: ammo_type_id, user_id: user_id},
%User{id: user_id},
true = _include_empty
) do
Repo.one!(
from ag in AmmoGroup,
where: ag.user_id == ^user_id,
where: ag.ammo_type_id == ^ammo_type_id,
distinct: true,
select: count(ag.id)
) || 0
end
def get_ammo_groups_count_for_type(
%AmmoType{id: ammo_type_id, user_id: user_id},
%User{id: user_id},
false = _include_empty
) do
Repo.one!(
from ag in AmmoGroup,
where: ag.user_id == ^user_id,
where: ag.ammo_type_id == ^ammo_type_id,
where: not (ag.count == 0),
distinct: true,
select: count(ag.id)
) || 0
end
@doc """ @doc """
Returns the list of ammo_groups for a user. Returns the list of ammo_groups for a user.
@ -242,22 +354,27 @@ defmodule Cannery.Ammo do
""" """
@spec list_ammo_groups(User.t()) :: [AmmoGroup.t()] @spec list_ammo_groups(User.t()) :: [AmmoGroup.t()]
@spec list_ammo_groups(User.t(), include_empty :: boolean()) :: [AmmoGroup.t()] @spec list_ammo_groups(User.t(), include_empty :: boolean()) :: [AmmoGroup.t()]
def list_ammo_groups(%User{id: user_id}, include_empty \\ false) do def list_ammo_groups(user, include_empty \\ false)
if include_empty do
def list_ammo_groups(%User{id: user_id}, true = _include_empty) do
Repo.all(
from ag in AmmoGroup, from ag in AmmoGroup,
left_join: sg in assoc(ag, :shot_groups), left_join: sg in assoc(ag, :shot_groups),
where: ag.user_id == ^user_id, where: ag.user_id == ^user_id,
preload: [shot_groups: sg], preload: [shot_groups: sg],
order_by: ag.id order_by: ag.id
else )
end
def list_ammo_groups(%User{id: user_id}, false = _include_empty) do
Repo.all(
from ag in AmmoGroup, from ag in AmmoGroup,
left_join: sg in assoc(ag, :shot_groups), left_join: sg in assoc(ag, :shot_groups),
where: ag.user_id == ^user_id, where: ag.user_id == ^user_id,
where: not (ag.count == 0), where: not (ag.count == 0),
preload: [shot_groups: sg], preload: [shot_groups: sg],
order_by: ag.id order_by: ag.id
end )
|> Repo.all()
end end
@doc """ @doc """
@ -318,6 +435,17 @@ defmodule Cannery.Ammo do
|> Enum.sum() |> Enum.sum()
end end
@doc """
Returns the last entered shot group for an ammo group
"""
@spec get_last_used_shot_group(AmmoGroup.t()) :: ShotGroup.t() | nil
def get_last_used_shot_group(%AmmoGroup{} = ammo_group) do
ammo_group
|> Repo.preload(:shot_groups)
|> Map.fetch!(:shot_groups)
|> Enum.max_by(fn %{date: date} -> date end, Date, fn -> nil end)
end
@doc """ @doc """
Calculates the percentage remaining of an ammo group out of 100 Calculates the percentage remaining of an ammo group out of 100
""" """

View File

@ -212,6 +212,7 @@ defmodule Cannery.Containers do
container container
|> Repo.preload(:ammo_groups) |> Repo.preload(:ammo_groups)
|> Map.fetch!(:ammo_groups) |> Map.fetch!(:ammo_groups)
|> Enum.reject(fn %{count: count} -> count == 0 end)
|> Enum.count() |> Enum.count()
end end

View File

@ -4,11 +4,16 @@ defmodule CanneryWeb.Components.AmmoGroupCard do
""" """
use CanneryWeb, :component use CanneryWeb, :component
alias Cannery.Repo alias Cannery.{Ammo, Repo}
alias CanneryWeb.Endpoint alias CanneryWeb.Endpoint
def ammo_group_card(assigns) do def ammo_group_card(%{ammo_group: ammo_group} = assigns) do
assigns = assigns |> assign(:ammo_group, assigns.ammo_group |> Repo.preload(:ammo_type)) assigns =
%{show_container: show_container} = assigns |> assign_new(:show_container, fn -> false end)
preloads = if show_container, do: [:ammo_type, :container], else: [:ammo_type]
ammo_group = ammo_group |> Repo.preload(preloads)
assigns = assigns |> assign(:ammo_group, ammo_group)
~H""" ~H"""
<div <div
@ -17,7 +22,7 @@ defmodule CanneryWeb.Components.AmmoGroupCard do
border border-gray-400 rounded-lg shadow-lg hover:shadow-md border border-gray-400 rounded-lg shadow-lg hover:shadow-md
transition-all duration-300 ease-in-out" transition-all duration-300 ease-in-out"
> >
<%= live_redirect to: Routes.ammo_group_show_path(Endpoint, :show, @ammo_group), <%= live_patch to: Routes.ammo_group_show_path(Endpoint, :show, @ammo_group),
class: "mb-2 link" do %> class: "mb-2 link" do %>
<h1 class="title text-xl title-primary-500"> <h1 class="title text-xl title-primary-500">
<%= @ammo_group.ammo_type.name %> <%= @ammo_group.ammo_type.name %>
@ -27,7 +32,7 @@ defmodule CanneryWeb.Components.AmmoGroupCard do
<div class="flex flex-col justify-center items-center"> <div class="flex flex-col justify-center items-center">
<span class="rounded-lg title text-lg"> <span class="rounded-lg title text-lg">
<%= gettext("Count:") %> <%= gettext("Count:") %>
<%= @ammo_group.count %> <%= if @ammo_group.count == 0, do: "Empty", else: @ammo_group.count %>
</span> </span>
<%= if @ammo_group.notes do %> <%= if @ammo_group.notes do %>
@ -42,6 +47,13 @@ defmodule CanneryWeb.Components.AmmoGroupCard do
<%= @ammo_group.inserted_at |> display_datetime() %> <%= @ammo_group.inserted_at |> display_datetime() %>
</span> </span>
<%= if @ammo_group.count == 0 do %>
<span class="rounded-lg title text-lg">
<%= gettext("Used up on:") %>
<%= @ammo_group |> Ammo.get_last_used_shot_group() |> Map.get(:date) |> display_date() %>
</span>
<% end %>
<%= if @ammo_group.price_paid do %> <%= if @ammo_group.price_paid do %>
<span class="rounded-lg title text-lg"> <span class="rounded-lg title text-lg">
<%= gettext("Price paid:") %> <%= gettext("Price paid:") %>
@ -50,6 +62,17 @@ defmodule CanneryWeb.Components.AmmoGroupCard do
) %> ) %>
</span> </span>
<% end %> <% end %>
<%= if @show_container and @ammo_group.container do %>
<span class="rounded-lg title text-lg">
<%= gettext("Container:") %>
<%= live_patch to: Routes.container_show_path(Endpoint, :show, @ammo_group.container),
class: "link" do %>
<%= @ammo_group.container.name %>
<% end %>
</span>
<% end %>
</div> </div>
<%= if assigns |> Map.has_key?(:inner_block) do %> <%= if assigns |> Map.has_key?(:inner_block) do %>

View File

@ -6,7 +6,7 @@ defmodule CanneryWeb.Components.TableComponent do
- `:columns`: An array of maps containing the following keys - `:columns`: An array of maps containing the following keys
- `:label`: A gettext'd or otherwise user-facing string label for the - `:label`: A gettext'd or otherwise user-facing string label for the
column. Can be nil column. Can be nil
- `:key`: A string key used for sorting - `:key`: An atom key used for sorting
- `:class`: Extra classes to be applied to the column element, if desired. - `:class`: Extra classes to be applied to the column element, if desired.
Optional Optional
- `:sortable`: If false, will prevent the user from sorting with it. - `:sortable`: If false, will prevent the user from sorting with it.
@ -28,13 +28,13 @@ defmodule CanneryWeb.Components.TableComponent do
required(:columns) => required(:columns) =>
list(%{ list(%{
required(:label) => String.t() | nil, required(:label) => String.t() | nil,
required(:key) => String.t() | nil, required(:key) => atom() | nil,
optional(:class) => String.t(), optional(:class) => String.t(),
optional(:sortable) => false optional(:sortable) => false
}), }),
required(:rows) => required(:rows) =>
list(%{ list(%{
(key :: String.t()) => any() | {custom_sort_value :: String.t(), value :: any()} (key :: atom()) => any() | {custom_sort_value :: String.t(), value :: any()}
}), }),
optional(any()) => any() optional(any()) => any()
}, },
@ -56,20 +56,19 @@ defmodule CanneryWeb.Components.TableComponent do
def handle_event( def handle_event(
"sort_by", "sort_by",
%{"sort-key" => key}, %{"sort-key" => key},
%{assigns: %{rows: rows, last_sort_key: key, sort_mode: sort_mode}} = socket %{assigns: %{rows: rows, last_sort_key: last_sort_key, sort_mode: sort_mode}} = socket
) do ) do
sort_mode = if sort_mode == :asc, do: :desc, else: :asc key = key |> String.to_existing_atom()
rows = rows |> sort_by_custom_sort_value_or_value(key, sort_mode)
{:noreply, socket |> assign(sort_mode: sort_mode, rows: rows)}
end
def handle_event( sort_mode =
"sort_by", case {key, sort_mode} do
%{"sort-key" => key}, {^last_sort_key, :asc} -> :desc
%{assigns: %{rows: rows}} = socket {^last_sort_key, :desc} -> :asc
) do {_new_sort_key, _last_sort_mode} -> :asc
rows = rows |> sort_by_custom_sort_value_or_value(key, :asc) end
{:noreply, socket |> assign(last_sort_key: key, sort_mode: :asc, rows: rows)}
rows = rows |> sort_by_custom_sort_value_or_value(key, sort_mode)
{:noreply, socket |> assign(last_sort_key: key, sort_mode: sort_mode, rows: rows)}
end end
defp sort_by_custom_sort_value_or_value(rows, key, sort_mode) do defp sort_by_custom_sort_value_or_value(rows, key, sort_mode) do

View File

@ -1,4 +1,4 @@
<div class="w-full overflow-x-auto border border-gray-600 rounded-lg shadow-lg bg-black"> <div id={@id} class="w-full overflow-x-auto border border-gray-600 rounded-lg shadow-lg bg-black">
<table class="min-w-full table-auto text-center bg-white"> <table class="min-w-full table-auto text-center bg-white">
<thead class="border-b border-primary-600"> <thead class="border-b border-primary-600">
<tr> <tr>

View File

@ -9,7 +9,7 @@ defmodule CanneryWeb.AmmoGroupLive.Index do
@impl true @impl true
def mount(_params, _session, socket) do def mount(_params, _session, socket) do
{:ok, socket |> display_ammo_groups()} {:ok, socket |> assign(show_used: false) |> display_ammo_groups()}
end end
@impl true @impl true
@ -72,22 +72,39 @@ defmodule CanneryWeb.AmmoGroupLive.Index do
{:noreply, socket |> display_ammo_groups()} {:noreply, socket |> display_ammo_groups()}
end end
defp display_ammo_groups(%{assigns: %{current_user: current_user}} = socket) do @impl true
ammo_groups = Ammo.list_ammo_groups(current_user) |> Repo.preload([:ammo_type, :container]) def handle_event("toggle_show_used", _params, %{assigns: %{show_used: show_used}} = socket) do
{:noreply, socket |> assign(:show_used, !show_used) |> display_ammo_groups()}
end
defp display_ammo_groups(
%{assigns: %{current_user: current_user, show_used: show_used}} = socket
) do
ammo_groups =
Ammo.list_ammo_groups(current_user, show_used) |> Repo.preload([:ammo_type, :container])
ammo_types_count = Ammo.get_ammo_types_count!(current_user) ammo_types_count = Ammo.get_ammo_types_count!(current_user)
containers_count = Containers.get_containers_count!(current_user) containers_count = Containers.get_containers_count!(current_user)
columns = [ columns = [
%{label: gettext("Ammo type"), key: "ammo_type"}, %{label: gettext("Ammo type"), key: :ammo_type},
%{label: gettext("Count"), key: "count"}, %{label: gettext("Count"), key: :count},
%{label: gettext("Price paid"), key: "price_paid"}, %{label: gettext("Price paid"), key: :price_paid},
%{label: gettext("% left"), key: "remaining"}, %{label: gettext("% left"), key: :remaining},
%{label: gettext("Range"), key: "range"}, %{label: gettext("Range"), key: :range},
%{label: gettext("Container"), key: "container"}, %{label: gettext("Container"), key: :container},
%{label: gettext("Added on"), key: "added_on"}, %{label: gettext("Added on"), key: :added_on}
%{label: nil, key: "actions", sortable: false}
] ]
columns =
if show_used do
columns ++ [%{label: gettext("Used up on"), key: :used_up_on}]
else
columns
end
columns = columns ++ [%{label: nil, key: :actions, sortable: false}]
rows = rows =
ammo_groups ammo_groups
|> Enum.map(fn ammo_group -> ammo_group |> get_row_data_for_ammo_group(columns) end) |> Enum.map(fn ammo_group -> ammo_group |> get_row_data_for_ammo_group(columns) end)
@ -110,8 +127,8 @@ defmodule CanneryWeb.AmmoGroupLive.Index do
|> Enum.into(%{}, fn %{key: key} -> {key, get_value_for_key(key, ammo_group)} end) |> Enum.into(%{}, fn %{key: key} -> {key, get_value_for_key(key, ammo_group)} end)
end end
@spec get_value_for_key(String.t(), AmmoGroup.t()) :: any() @spec get_value_for_key(atom(), AmmoGroup.t()) :: any()
defp get_value_for_key("ammo_type", %{ammo_type: ammo_type}) do defp get_value_for_key(:ammo_type, %{ammo_type: ammo_type}) do
{ammo_type.name, {ammo_type.name,
live_patch(ammo_type.name, live_patch(ammo_type.name,
to: Routes.ammo_type_show_path(Endpoint, :show, ammo_type), to: Routes.ammo_type_show_path(Endpoint, :show, ammo_type),
@ -119,12 +136,12 @@ defmodule CanneryWeb.AmmoGroupLive.Index do
)} )}
end end
defp get_value_for_key("price_paid", %{price_paid: nil}), do: {"a", nil} defp get_value_for_key(:price_paid, %{price_paid: nil}), do: {"a", nil}
defp get_value_for_key("price_paid", %{price_paid: price_paid}), defp get_value_for_key(:price_paid, %{price_paid: price_paid}),
do: gettext("$%{amount}", amount: price_paid |> :erlang.float_to_binary(decimals: 2)) do: gettext("$%{amount}", amount: price_paid |> :erlang.float_to_binary(decimals: 2))
defp get_value_for_key("added_on", %{inserted_at: inserted_at}) do defp get_value_for_key(:added_on, %{inserted_at: inserted_at}) do
assigns = %{inserted_at: inserted_at} assigns = %{inserted_at: inserted_at}
{inserted_at, {inserted_at,
@ -133,15 +150,30 @@ defmodule CanneryWeb.AmmoGroupLive.Index do
"""} """}
end end
defp get_value_for_key("range", %{staged: staged} = ammo_group) do defp get_value_for_key(:used_up_on, ammo_group) do
last_shot_group_date =
case ammo_group |> Ammo.get_last_used_shot_group() do
%{date: last_shot_group_date} -> last_shot_group_date
_no_shot_groups -> nil
end
assigns = %{last_shot_group_date: last_shot_group_date}
{last_shot_group_date,
~H"""
<%= @last_shot_group_date |> display_date() %>
"""}
end
defp get_value_for_key(:range, %{staged: staged} = ammo_group) do
assigns = %{ammo_group: ammo_group} assigns = %{ammo_group: ammo_group}
{staged, {staged,
~H""" ~H"""
<div class="min-w-20 py-2 px-4 h-full flex flex-col justify-center items-center"> <div class="min-w-20 py-2 px-4 h-full flex flew-wrap justify-center items-center">
<button <button
type="button" type="button"
class="mx-2 my-1 btn btn-primary" class="mx-2 my-1 text-sm btn btn-primary"
phx-click="toggle_staged" phx-click="toggle_staged"
phx-value-ammo_group_id={ammo_group.id} phx-value-ammo_group_id={ammo_group.id}
> >
@ -150,16 +182,16 @@ defmodule CanneryWeb.AmmoGroupLive.Index do
<%= live_patch(dgettext("actions", "Record shots"), <%= live_patch(dgettext("actions", "Record shots"),
to: Routes.ammo_group_index_path(Endpoint, :add_shot_group, ammo_group), to: Routes.ammo_group_index_path(Endpoint, :add_shot_group, ammo_group),
class: "mx-2 my-1 btn btn-primary" class: "mx-2 my-1 text-sm btn btn-primary"
) %> ) %>
</div> </div>
"""} """}
end end
defp get_value_for_key("remaining", ammo_group), defp get_value_for_key(:remaining, ammo_group),
do: "#{ammo_group |> Ammo.get_percentage_remaining()}%" do: "#{ammo_group |> Ammo.get_percentage_remaining()}%"
defp get_value_for_key("actions", ammo_group) do defp get_value_for_key(:actions, ammo_group) do
assigns = %{ammo_group: ammo_group} assigns = %{ammo_group: ammo_group}
~H""" ~H"""
@ -190,22 +222,28 @@ defmodule CanneryWeb.AmmoGroupLive.Index do
""" """
end end
defp get_value_for_key("container", %{container: nil}), do: {nil, nil} defp get_value_for_key(:container, %{container: nil}), do: {nil, nil}
defp get_value_for_key("container", %{container: %{name: container_name}} = ammo_group) do defp get_value_for_key(:container, %{container: %{name: container_name}} = ammo_group) do
assigns = %{ammo_group: ammo_group} assigns = %{ammo_group: ammo_group}
{container_name, {container_name,
~H""" ~H"""
<div class="min-w-20 py-2 px-4 h-full space-x-4 flex justify-center items-center"> <div class="min-w-20 py-2 px-4 h-full flex flew-wrap justify-center items-center">
<%= live_patch(@ammo_group.container.name, <%= live_patch(
@ammo_group.container.name,
to: Routes.container_show_path(Endpoint, :show, @ammo_group.container),
class: "mx-2 my-1 link"
) %>
<%= live_patch(
gettext("Move ammo"),
to: Routes.ammo_group_index_path(Endpoint, :move, @ammo_group), to: Routes.ammo_group_index_path(Endpoint, :move, @ammo_group),
class: "btn btn-primary" class: "mx-2 my-1 text-sm btn btn-primary"
) %> ) %>
</div> </div>
"""} """}
end end
defp get_value_for_key(key, ammo_group), defp get_value_for_key(key, ammo_group), do: ammo_group |> Map.get(key)
do: ammo_group |> Map.get(key |> String.to_existing_atom())
end end

View File

@ -46,6 +46,14 @@
<% end %> <% end %>
<%= unless @ammo_groups |> Enum.empty?() do %> <%= unless @ammo_groups |> Enum.empty?() do %>
<div class="flex flex-col justify-center items-center">
<.toggle_button action="toggle_show_used" value={@show_used}>
<span class="title text-lg text-primary-600">
<%= gettext("Show used") %>
</span>
</.toggle_button>
</div>
<.live_component <.live_component
module={CanneryWeb.Components.TableComponent} module={CanneryWeb.Components.TableComponent}
id="ammo_groups_index_table" id="ammo_groups_index_table"

View File

@ -84,9 +84,9 @@ defmodule CanneryWeb.AmmoGroupLive.Show do
ammo_group = ammo_group |> Repo.preload([:container, :ammo_type, :shot_groups], force: true) ammo_group = ammo_group |> Repo.preload([:container, :ammo_type, :shot_groups], force: true)
columns = [ columns = [
%{label: gettext("Rounds shot"), key: "count"}, %{label: gettext("Rounds shot"), key: :count},
%{label: gettext("Notes"), key: "notes"}, %{label: gettext("Notes"), key: :notes},
%{label: gettext("Date"), key: "date"}, %{label: gettext("Date"), key: :date},
%{label: nil, key: "actions", sortable: false} %{label: nil, key: "actions", sortable: false}
] ]
@ -110,10 +110,10 @@ defmodule CanneryWeb.AmmoGroupLive.Show do
|> Enum.into(%{}, fn %{key: key} -> |> Enum.into(%{}, fn %{key: key} ->
value = value =
case key do case key do
"date" -> :date ->
{date, date |> display_date()} {date, date |> display_date()}
"actions" -> :actions ->
~H""" ~H"""
<div class="px-4 py-2 space-x-4 flex justify-center items-center"> <div class="px-4 py-2 space-x-4 flex justify-center items-center">
<%= live_patch to: Routes.ammo_group_show_path(Endpoint, :edit_shot_group, @ammo_group, shot_group), <%= live_patch to: Routes.ammo_group_show_path(Endpoint, :edit_shot_group, @ammo_group, shot_group),
@ -136,7 +136,7 @@ defmodule CanneryWeb.AmmoGroupLive.Show do
""" """
key -> key ->
shot_group |> Map.get(key |> String.to_existing_atom()) shot_group |> Map.get(key)
end end
{key, value} {key, value}

View File

@ -48,29 +48,29 @@ defmodule CanneryWeb.AmmoTypeLive.Index do
columns = columns =
[ [
%{label: gettext("Name"), key: "name", type: :string}, %{label: gettext("Name"), key: :name, type: :name},
%{label: gettext("Bullet type"), key: "bullet_type", type: :string}, %{label: gettext("Bullet type"), key: :bullet_type, type: :string},
%{label: gettext("Bullet core"), key: "bullet_core", type: :string}, %{label: gettext("Bullet core"), key: :bullet_core, type: :string},
%{label: gettext("Cartridge"), key: "cartridge", type: :string}, %{label: gettext("Cartridge"), key: :cartridge, type: :string},
%{label: gettext("Caliber"), key: "caliber", type: :string}, %{label: gettext("Caliber"), key: :caliber, type: :string},
%{label: gettext("Case material"), key: "case_material", type: :string}, %{label: gettext("Case material"), key: :case_material, type: :string},
%{label: gettext("Jacket type"), key: "jacket_type", type: :string}, %{label: gettext("Jacket type"), key: :jacket_type, type: :string},
%{label: gettext("Muzzle velocity"), key: "muzzle_velocity", type: :string}, %{label: gettext("Muzzle velocity"), key: :muzzle_velocity, type: :string},
%{label: gettext("Powder type"), key: "powder_type", type: :string}, %{label: gettext("Powder type"), key: :powder_type, type: :string},
%{ %{
label: gettext("Powder grains per charge"), label: gettext("Powder grains per charge"),
key: "powder_grains_per_charge", key: :powder_grains_per_charge,
type: :string type: :string
}, },
%{label: gettext("Grains"), key: "grains", type: :string}, %{label: gettext("Grains"), key: :grains, type: :string},
%{label: gettext("Pressure"), key: "pressure", type: :string}, %{label: gettext("Pressure"), key: :pressure, type: :string},
%{label: gettext("Primer type"), key: "primer_type", type: :string}, %{label: gettext("Primer type"), key: :primer_type, type: :string},
%{label: gettext("Firing type"), key: "firing_type", type: :string}, %{label: gettext("Firing type"), key: :firing_type, type: :string},
%{label: gettext("Tracer"), key: "tracer", type: :boolean}, %{label: gettext("Tracer"), key: :tracer, type: :boolean},
%{label: gettext("Incendiary"), key: "incendiary", type: :boolean}, %{label: gettext("Incendiary"), key: :incendiary, type: :boolean},
%{label: gettext("Blank"), key: "blank", type: :boolean}, %{label: gettext("Blank"), key: :blank, type: :boolean},
%{label: gettext("Corrosive"), key: "corrosive", type: :boolean}, %{label: gettext("Corrosive"), key: :corrosive, type: :boolean},
%{label: gettext("Manufacturer"), key: "manufacturer", type: :string}, %{label: gettext("Manufacturer"), key: :manufacturer, type: :string},
%{label: gettext("UPC"), key: "upc", type: :string} %{label: gettext("UPC"), key: "upc", type: :string}
] ]
|> Enum.filter(fn %{key: key, type: type} -> |> Enum.filter(fn %{key: key, type: type} ->
@ -83,8 +83,9 @@ defmodule CanneryWeb.AmmoTypeLive.Index do
end) end)
end) end)
|> Kernel.++([ |> Kernel.++([
%{label: gettext("Total # of rounds"), key: "round_count", type: :round_count}, %{label: gettext("Total # of rounds"), key: :round_count, type: :round_count},
%{label: gettext("Average Price paid"), key: "avg_price_paid", type: :avg_price_paid}, %{label: gettext("Total # of ammo"), key: :ammo_count, type: :ammo_count},
%{label: gettext("Average Price paid"), key: :avg_price_paid, type: :avg_price_paid},
%{label: nil, key: "actions", type: :actions, sortable: false} %{label: nil, key: "actions", type: :actions, sortable: false}
]) ])
@ -103,11 +104,14 @@ defmodule CanneryWeb.AmmoTypeLive.Index do
end end
defp get_ammo_type_value(:boolean, key, ammo_type, _current_user), defp get_ammo_type_value(:boolean, key, ammo_type, _current_user),
do: ammo_type |> Map.get(key |> String.to_existing_atom()) |> humanize() do: ammo_type |> Map.get(key) |> humanize()
defp get_ammo_type_value(:round_count, _key, ammo_type, current_user), defp get_ammo_type_value(:round_count, _key, ammo_type, current_user),
do: ammo_type |> Ammo.get_round_count_for_ammo_type(current_user) do: ammo_type |> Ammo.get_round_count_for_ammo_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 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 case ammo_type |> Ammo.get_average_cost_for_ammo_type!(current_user) do
nil -> gettext("No cost information") nil -> gettext("No cost information")
@ -115,6 +119,18 @@ defmodule CanneryWeb.AmmoTypeLive.Index do
end end
end end
defp get_ammo_type_value(:name, _key, ammo_type, _current_user) do
assigns = %{ammo_type: ammo_type}
~H"""
<%= live_redirect to: Routes.ammo_type_show_path(Endpoint, :show, ammo_type),
class: "link",
data: [qa: "view-name-#{ammo_type.id}"] do %>
<%= ammo_type.name %>
<% end %>
"""
end
defp get_ammo_type_value(:actions, _key, ammo_type, _current_user) do defp get_ammo_type_value(:actions, _key, ammo_type, _current_user) do
assigns = %{ammo_type: ammo_type} assigns = %{ammo_type: ammo_type}
@ -148,6 +164,5 @@ defmodule CanneryWeb.AmmoTypeLive.Index do
defp get_ammo_type_value(nil, _key, _ammo_type, _current_user), do: nil defp get_ammo_type_value(nil, _key, _ammo_type, _current_user), do: nil
defp get_ammo_type_value(_other, key, ammo_type, _current_user), defp get_ammo_type_value(_other, key, ammo_type, _current_user), do: ammo_type |> Map.get(key)
do: ammo_type |> Map.get(key |> String.to_existing_atom())
end end

View File

@ -9,22 +9,12 @@ defmodule CanneryWeb.AmmoTypeLive.Show do
alias CanneryWeb.Endpoint alias CanneryWeb.Endpoint
@impl true @impl true
def mount(_params, _session, socket), do: {:ok, socket} def mount(_params, _session, socket), do: {:ok, socket |> assign(show_used: false)}
@impl true @impl true
def handle_params(%{"id" => id}, _params, %{assigns: %{current_user: current_user}} = socket) do def handle_params(%{"id" => id}, _params, %{assigns: %{current_user: current_user}} = socket) do
ammo_type = Ammo.get_ammo_type!(id, current_user) ammo_type = Ammo.get_ammo_type!(id, current_user)
{:noreply, socket |> display_ammo_type(ammo_type)}
socket =
socket
|> assign(
page_title: page_title(socket.assigns.live_action),
ammo_type: ammo_type,
ammo_groups: ammo_type |> Ammo.list_ammo_groups_for_type(current_user),
avg_cost_per_round: ammo_type |> Ammo.get_average_cost_for_ammo_type!(current_user)
)
{:noreply, socket}
end end
@impl true @impl true
@ -41,6 +31,34 @@ defmodule CanneryWeb.AmmoTypeLive.Show do
{:noreply, socket |> put_flash(:info, prompt) |> push_redirect(to: redirect_to)} {:noreply, socket |> put_flash(:info, prompt) |> push_redirect(to: redirect_to)}
end end
@impl true
def handle_event("toggle_show_used", _params, %{assigns: %{show_used: show_used}} = socket) do
{:noreply, socket |> assign(:show_used, !show_used) |> display_ammo_type()}
end
defp display_ammo_type(
%{
assigns: %{
live_action: live_action,
current_user: current_user,
show_used: show_used
}
} = socket,
ammo_type
) do
socket
|> assign(
page_title: page_title(live_action),
ammo_type: ammo_type,
ammo_groups: ammo_type |> Ammo.list_ammo_groups_for_type(current_user, show_used),
avg_cost_per_round: ammo_type |> Ammo.get_average_cost_for_ammo_type!(current_user)
)
end
defp display_ammo_type(%{assigns: %{ammo_type: ammo_type}} = socket) do
socket |> display_ammo_type(ammo_type)
end
defp page_title(:show), do: gettext("Show Ammo type") defp page_title(:show), do: gettext("Show Ammo type")
defp page_title(:edit), do: gettext("Edit Ammo type") defp page_title(:edit), do: gettext("Edit Ammo type")
end end

View File

@ -1,5 +1,4 @@
<div class="mx-auto px-4 sm:px-8 space-y-4 max-w-3xl <div class="space-y-4 flex flex-col justify-center items-center">
flex flex-col justify-center items-center">
<h1 class="title text-2xl title-primary-500"> <h1 class="title text-2xl title-primary-500">
<%= @ammo_type.name %> <%= @ammo_type.name %>
</h1> </h1>
@ -114,6 +113,14 @@
<hr class="hr" /> <hr class="hr" />
<div class="flex flex-col justify-center items-center">
<.toggle_button action="toggle_show_used" value={@show_used}>
<span class="title text-lg text-primary-600">
<%= gettext("Show used") %>
</span>
</.toggle_button>
</div>
<div> <div>
<%= if @ammo_groups |> Enum.empty?() do %> <%= if @ammo_groups |> Enum.empty?() do %>
<h2 class="mx-8 my-4 title text-lg text-primary-600"> <h2 class="mx-8 my-4 title text-lg text-primary-600">
@ -123,7 +130,7 @@
<% else %> <% else %>
<div class="flex flex-wrap justify-center items-center"> <div class="flex flex-wrap justify-center items-center">
<%= for ammo_group <- @ammo_groups do %> <%= for ammo_group <- @ammo_groups do %>
<.ammo_group_card ammo_group={ammo_group} /> <.ammo_group_card ammo_group={ammo_group} show_container={true} />
<% end %> <% end %>
</div> </div>
<% end %> <% end %>

View File

@ -5,13 +5,13 @@ defmodule CanneryWeb.ContainerLive.Show do
use CanneryWeb, :live_view use CanneryWeb, :live_view
import CanneryWeb.Components.{AmmoGroupCard, TagCard} import CanneryWeb.Components.{AmmoGroupCard, TagCard}
alias Cannery.{Accounts.User, Containers, Containers.Container, Repo, Tags} alias Cannery.{Accounts.User, Ammo, Containers, Containers.Container, Repo, Tags}
alias CanneryWeb.Endpoint alias CanneryWeb.Endpoint
alias Ecto.Changeset alias Ecto.Changeset
alias Phoenix.LiveView.Socket alias Phoenix.LiveView.Socket
@impl true @impl true
def mount(_params, _session, socket), do: {:ok, socket} def mount(_params, _session, socket), do: {:ok, socket |> assign(show_used: false)}
@impl true @impl true
def handle_params( def handle_params(
@ -39,7 +39,7 @@ defmodule CanneryWeb.ContainerLive.Show do
container_name: container.name container_name: container.name
) )
socket |> put_flash(:info, prompt) |> render_container(container.id, current_user) socket |> put_flash(:info, prompt) |> render_container()
{:error, error_string} -> {:error, error_string} ->
socket |> put_flash(:error, error_string) socket |> put_flash(:error, error_string)
@ -82,12 +82,23 @@ defmodule CanneryWeb.ContainerLive.Show do
{:noreply, socket} {:noreply, socket}
end end
@impl true
def handle_event("toggle_show_used", _params, %{assigns: %{show_used: show_used}} = socket) do
{:noreply, socket |> assign(:show_used, !show_used) |> render_container()}
end
@spec render_container(Socket.t(), Container.id(), User.t()) :: Socket.t() @spec render_container(Socket.t(), Container.id(), User.t()) :: Socket.t()
defp render_container(%{assigns: %{live_action: live_action}} = socket, id, current_user) do defp render_container(
%{assigns: %{live_action: live_action, show_used: show_used}} = socket,
id,
current_user
) do
%{name: container_name} = %{name: container_name} =
container = container =
Containers.get_container!(id, current_user) Containers.get_container!(id, current_user)
|> Repo.preload([:ammo_groups, :tags], force: true) |> Repo.preload([:tags], force: true)
ammo_groups = Ammo.list_ammo_groups_for_container(container, current_user, show_used)
page_title = page_title =
case live_action do case live_action do
@ -96,6 +107,13 @@ defmodule CanneryWeb.ContainerLive.Show do
:edit_tags -> gettext("Edit %{name} tags", name: container_name) :edit_tags -> gettext("Edit %{name} tags", name: container_name)
end end
socket |> assign(container: container, page_title: page_title) socket |> assign(container: container, ammo_groups: ammo_groups, page_title: page_title)
end
@spec render_container(Socket.t()) :: Socket.t()
defp render_container(
%{assigns: %{container: %{id: container_id}, current_user: current_user}} = socket
) do
socket |> render_container(container_id, current_user)
end end
end end

View File

@ -1,4 +1,4 @@
<div class="mx-auto space-y-4 max-w-3xl flex flex-col justify-center items-center"> <div class="space-y-4 flex flex-col justify-center items-center">
<h1 class="title text-2xl title-primary-500"> <h1 class="title text-2xl title-primary-500">
<%= @container.name %> <%= @container.name %>
</h1> </h1>
@ -22,10 +22,10 @@
</span> </span>
<% end %> <% end %>
<%= unless @container.ammo_groups |> Enum.empty?() do %> <%= unless @ammo_groups |> Enum.empty?() do %>
<span class="rounded-lg title text-lg"> <span class="rounded-lg title text-lg">
<%= gettext("Packs:") %> <%= gettext("Packs:") %>
<%= @container |> Containers.get_container_ammo_group_count!() %> <%= Enum.count(@ammo_groups) %>
</span> </span>
<span class="rounded-lg title text-lg"> <span class="rounded-lg title text-lg">
@ -84,14 +84,22 @@
<hr class="mb-4 hr" /> <hr class="mb-4 hr" />
<div class="flex flex-col justify-center items-center">
<.toggle_button action="toggle_show_used" value={@show_used}>
<span class="title text-lg text-primary-600">
<%= gettext("Show used") %>
</span>
</.toggle_button>
</div>
<div> <div>
<%= if @container.ammo_groups |> Enum.empty?() do %> <%= if @ammo_groups |> Enum.empty?() do %>
<h2 class="mx-8 my-4 title text-lg text-primary-600"> <h2 class="mx-8 my-4 title text-lg text-primary-600">
<%= gettext("No ammo in this container") %> <%= gettext("No ammo in this container") %>
</h2> </h2>
<% else %> <% else %>
<div class="flex flex-wrap justify-center items-center"> <div class="flex flex-wrap justify-center items-center">
<%= for ammo_group <- @container.ammo_groups do %> <%= for ammo_group <- @ammo_groups do %>
<.ammo_group_card ammo_group={ammo_group} /> <.ammo_group_card ammo_group={ammo_group} />
<% end %> <% end %>
</div> </div>

View File

@ -77,10 +77,10 @@ defmodule CanneryWeb.RangeLive.Index do
ammo_groups = Ammo.list_staged_ammo_groups(current_user) ammo_groups = Ammo.list_staged_ammo_groups(current_user)
columns = [ columns = [
%{label: gettext("Ammo"), key: "name"}, %{label: gettext("Ammo"), key: :name},
%{label: gettext("Rounds shot"), key: "count"}, %{label: gettext("Rounds shot"), key: :count},
%{label: gettext("Notes"), key: "notes"}, %{label: gettext("Notes"), key: :notes},
%{label: gettext("Date"), key: "date"}, %{label: gettext("Date"), key: :date},
%{label: nil, key: "actions", sortable: false} %{label: nil, key: "actions", sortable: false}
] ]
@ -101,17 +101,17 @@ defmodule CanneryWeb.RangeLive.Index do
|> Enum.into(%{}, fn %{key: key} -> |> Enum.into(%{}, fn %{key: key} ->
value = value =
case key do case key do
"name" -> :name ->
{shot_group.ammo_group.ammo_type.name, {shot_group.ammo_group.ammo_type.name,
live_patch(shot_group.ammo_group.ammo_type.name, live_patch(shot_group.ammo_group.ammo_type.name,
to: Routes.ammo_group_show_path(Endpoint, :show, shot_group.ammo_group), to: Routes.ammo_group_show_path(Endpoint, :show, shot_group.ammo_group),
class: "link" class: "link"
)} )}
"date" -> :date ->
date |> display_date() date |> display_date()
"actions" -> :actions ->
~H""" ~H"""
<div class="px-4 py-2 space-x-4 flex justify-center items-center"> <div class="px-4 py-2 space-x-4 flex justify-center items-center">
<%= live_patch to: Routes.range_index_path(Endpoint, :edit, shot_group), <%= live_patch to: Routes.range_index_path(Endpoint, :edit, shot_group),
@ -134,7 +134,7 @@ defmodule CanneryWeb.RangeLive.Index do
""" """
key -> key ->
shot_group |> Map.get(key |> String.to_existing_atom()) shot_group |> Map.get(key)
end end
{key, value} {key, value}

View File

@ -22,7 +22,7 @@
</div> </div>
</header> </header>
<div class="mx-4 sm:mx-8 md:mx-16"> <div class="mx-4 sm:mx-8 md:mx-16 flex flex-col justify-center items-stretch">
<%= @inner_content %> <%= @inner_content %>
</div> </div>
</main> </main>

View File

@ -5,6 +5,7 @@ defmodule CanneryWeb.ViewHelpers do
:view` :view`
""" """
import Phoenix.LiveView
import Phoenix.LiveView.Helpers import Phoenix.LiveView.Helpers
@id_length 16 @id_length 16
@ -65,4 +66,43 @@ defmodule CanneryWeb.ViewHelpers do
if(Application.get_env(:cannery, CanneryWeb.ViewHelpers)[:shibao_mode], do: "q_q", else: "😔") if(Application.get_env(:cannery, CanneryWeb.ViewHelpers)[:shibao_mode], do: "q_q", else: "😔")
def display_emoji(other_emoji), do: other_emoji def display_emoji(other_emoji), do: other_emoji
@doc """
A toggle button element that can be directed to a liveview or a
live_component's `handle_event/3`.
## Examples
<.toggle_button action="my_liveview_action" value={@some_value}>
<span>Toggle me!</span>
</.toggle_button>
<.toggle_button action="my_live_component_action" target={@myself} value={@some_value}>
<span>Whatever you want</span>
</.toggle_button>
"""
def toggle_button(assigns) do
assigns = assigns |> assign_new(:id, fn -> assigns.action end)
~H"""
<label for={@id} class="inline-flex relative items-center cursor-pointer">
<input
type="checkbox"
value={@value}
checked={@value}
id={@id}
class="sr-only peer"
{
if assigns |> Map.has_key?(:target),
do: %{"phx-click" => @action, "phx-value-value" => @value, "phx-target" => @target},
else: %{"phx-click" => @action, "phx-value-value" => @value}
}
/>
<div class="w-11 h-6 bg-gray-200 rounded-full peer dark:bg-gray-700 peer-focus:ring-4 peer-focus:ring-teal-300 dark:peer-focus:ring-teal-800 peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-1 after:left-[2px] after:bg-white after:border-gray-300 after:border after:rounded-full after:h-5 after:w-5 after:transition-all dark:border-gray-600 peer-checked:bg-teal-600">
</div>
<span class="ml-3 text-sm font-medium text-gray-900 dark:text-gray-300">
<%= render_slot(@inner_block) %>
</span>
</label>
"""
end
end end

View File

@ -156,7 +156,7 @@ msgid "Why not get some ready to shoot?"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/index.ex:151 #: lib/cannery_web/live/ammo_group_live/index.ex:183
#: lib/cannery_web/live/ammo_group_live/show.html.heex:91 #: lib/cannery_web/live/ammo_group_live/show.html.heex:91
#: lib/cannery_web/live/range_live/index.html.heex:36 #: lib/cannery_web/live/range_live/index.html.heex:36
msgid "Record shots" msgid "Record shots"

View File

@ -169,7 +169,7 @@ msgid "Why not get some ready to shoot?"
msgstr "Warum nicht einige für den Schießstand auswählen?" msgstr "Warum nicht einige für den Schießstand auswählen?"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/index.ex:151 #: lib/cannery_web/live/ammo_group_live/index.ex:183
#: lib/cannery_web/live/ammo_group_live/show.html.heex:91 #: lib/cannery_web/live/ammo_group_live/show.html.heex:91
#: lib/cannery_web/live/range_live/index.html.heex:36 #: lib/cannery_web/live/range_live/index.html.heex:36
msgid "Record shots" msgid "Record shots"

View File

@ -54,13 +54,13 @@ msgstr "Munition"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:21 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:21
#: lib/cannery_web/live/ammo_group_live/index.ex:81 #: lib/cannery_web/live/ammo_group_live/index.ex:90
msgid "Ammo type" msgid "Ammo type"
msgstr "Munitionsarten" msgstr "Munitionsarten"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/index.ex:87 #: lib/cannery_web/live/ammo_type_live/index.ex:88
#: lib/cannery_web/live/ammo_type_live/show.html.heex:100 #: lib/cannery_web/live/ammo_type_live/show.html.heex:99
msgid "Average Price paid" msgid "Average Price paid"
msgstr "Durchschnittlicher Kaufpreis" msgstr "Durchschnittlicher Kaufpreis"
@ -72,7 +72,7 @@ msgstr "Hintergrundfarbe"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:140 #: 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:71
#: lib/cannery_web/live/ammo_type_live/show.html.heex:53 #: lib/cannery_web/live/ammo_type_live/show.html.heex:52
msgid "Blank" msgid "Blank"
msgstr "Knallpatrone" msgstr "Knallpatrone"
@ -84,42 +84,42 @@ msgstr "Messing"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:44 #: 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:53
#: lib/cannery_web/live/ammo_type_live/show.html.heex:39 #: lib/cannery_web/live/ammo_type_live/show.html.heex:38
msgid "Bullet core" msgid "Bullet core"
msgstr "Projektilkern" msgstr "Projektilkern"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:37 #: 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:52
#: lib/cannery_web/live/ammo_type_live/show.html.heex:38 #: lib/cannery_web/live/ammo_type_live/show.html.heex:37
msgid "Bullet type" msgid "Bullet type"
msgstr "Patronenart" msgstr "Patronenart"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:58 #: 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:55
#: lib/cannery_web/live/ammo_type_live/show.html.heex:41 #: lib/cannery_web/live/ammo_type_live/show.html.heex:40
msgid "Caliber" msgid "Caliber"
msgstr "Kaliber" msgstr "Kaliber"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:51 #: 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:54
#: lib/cannery_web/live/ammo_type_live/show.html.heex:40 #: lib/cannery_web/live/ammo_type_live/show.html.heex:39
msgid "Cartridge" msgid "Cartridge"
msgstr "Patrone" msgstr "Patrone"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:65 #: 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:56
#: lib/cannery_web/live/ammo_type_live/show.html.heex:42 #: lib/cannery_web/live/ammo_type_live/show.html.heex:41
msgid "Case material" msgid "Case material"
msgstr "Gehäusematerial" msgstr "Gehäusematerial"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/components/move_ammo_group_component.ex:67 #: lib/cannery_web/components/move_ammo_group_component.ex:67
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:48 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:48
#: lib/cannery_web/live/ammo_group_live/index.ex:86 #: lib/cannery_web/live/ammo_group_live/index.ex:95
msgid "Container" msgid "Container"
msgstr "Behälter" msgstr "Behälter"
@ -133,18 +133,18 @@ msgstr "Behälter"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:144 #: 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:72
#: lib/cannery_web/live/ammo_type_live/show.html.heex:54 #: lib/cannery_web/live/ammo_type_live/show.html.heex:53
msgid "Corrosive" msgid "Corrosive"
msgstr "Korrosiv" msgstr "Korrosiv"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:27 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:27
#: lib/cannery_web/live/ammo_group_live/index.ex:82 #: lib/cannery_web/live/ammo_group_live/index.ex:91
msgid "Count" msgid "Count"
msgstr "Anzahl" msgstr "Anzahl"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/components/ammo_group_card.ex:29 #: lib/cannery_web/components/ammo_group_card.ex:34
#: lib/cannery_web/live/ammo_group_live/show.html.heex:8 #: lib/cannery_web/live/ammo_group_live/show.html.heex:8
msgid "Count:" msgid "Count:"
msgstr "Anzahl:" msgstr "Anzahl:"
@ -178,7 +178,7 @@ msgstr "Munitionsgruppe bearbeiten"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/index.ex:23 #: lib/cannery_web/live/ammo_type_live/index.ex:23
#: lib/cannery_web/live/ammo_type_live/show.ex:45 #: lib/cannery_web/live/ammo_type_live/show.ex:63
msgid "Edit Ammo type" msgid "Edit Ammo type"
msgstr "Munitionstyp bearbeiten" msgstr "Munitionstyp bearbeiten"
@ -210,14 +210,14 @@ msgstr "VM"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:103 #: 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:65
#: lib/cannery_web/live/ammo_type_live/show.html.heex:47 #: lib/cannery_web/live/ammo_type_live/show.html.heex:46
msgid "Grains" msgid "Grains"
msgstr "Körner" msgstr "Körner"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:136 #: 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:70
#: lib/cannery_web/live/ammo_type_live/show.html.heex:52 #: lib/cannery_web/live/ammo_type_live/show.html.heex:51
msgid "Incendiary" msgid "Incendiary"
msgstr "Brandmunition" msgstr "Brandmunition"
@ -268,7 +268,7 @@ msgstr "Magazin, Ladestreifen, Munitionskiste usw."
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:148 #: 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:73
#: lib/cannery_web/live/ammo_type_live/show.html.heex:55 #: lib/cannery_web/live/ammo_type_live/show.html.heex:54
msgid "Manufacturer" msgid "Manufacturer"
msgstr "Hersteller" msgstr "Hersteller"
@ -322,7 +322,7 @@ msgid "No Ammo Types"
msgstr "Keine Munitionsarten" msgstr "Keine Munitionsarten"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/show.html.heex:120 #: lib/cannery_web/live/ammo_type_live/show.html.heex:127
msgid "No ammo for this type" msgid "No ammo for this type"
msgstr "Keine Munition dieser Art" msgstr "Keine Munition dieser Art"
@ -352,7 +352,7 @@ msgid "Notes"
msgstr "Bemerkungen" msgstr "Bemerkungen"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/components/ammo_group_card.ex:35 #: lib/cannery_web/components/ammo_group_card.ex:40
#: lib/cannery_web/live/ammo_group_live/show.html.heex:24 #: lib/cannery_web/live/ammo_group_live/show.html.heex:24
msgid "Notes:" msgid "Notes:"
msgstr "Bemerkungen:" msgstr "Bemerkungen:"
@ -365,25 +365,25 @@ msgstr "Auf dem Bücherregal"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:111 #: 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:66
#: lib/cannery_web/live/ammo_type_live/show.html.heex:48 #: lib/cannery_web/live/ammo_type_live/show.html.heex:47
msgid "Pressure" msgid "Pressure"
msgstr "Druck" msgstr "Druck"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:34 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:34
#: lib/cannery_web/live/ammo_group_live/index.ex:83 #: lib/cannery_web/live/ammo_group_live/index.ex:92
msgid "Price paid" msgid "Price paid"
msgstr "Kaufpreis" msgstr "Kaufpreis"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/components/ammo_group_card.ex:47 #: lib/cannery_web/components/ammo_group_card.ex:59
msgid "Price paid:" msgid "Price paid:"
msgstr "Kaufpreis:" msgstr "Kaufpreis:"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:118 #: 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:67
#: lib/cannery_web/live/ammo_type_live/show.html.heex:49 #: lib/cannery_web/live/ammo_type_live/show.html.heex:48
msgid "Primer type" msgid "Primer type"
msgstr "Zündertyp" msgstr "Zündertyp"
@ -416,7 +416,7 @@ msgid "Settings"
msgstr "Einstellungen" msgstr "Einstellungen"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/show.ex:44 #: lib/cannery_web/live/ammo_type_live/show.ex:62
msgid "Show Ammo type" msgid "Show Ammo type"
msgstr "Zeige Munitionsarten" msgstr "Zeige Munitionsarten"
@ -460,7 +460,7 @@ msgstr "Die selbst-gehostete Website zur Verwaltung von Schusswaffen"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:132 #: 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:69
#: lib/cannery_web/live/ammo_type_live/show.html.heex:51 #: lib/cannery_web/live/ammo_type_live/show.html.heex:50
msgid "Tracer" msgid "Tracer"
msgstr "Leuchtspur" msgstr "Leuchtspur"
@ -508,7 +508,7 @@ msgstr "Keine Tags für diesen Behälter"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/components/topbar.ex:68 #: lib/cannery_web/components/topbar.ex:68
#: lib/cannery_web/live/ammo_group_live/index.ex:85 #: lib/cannery_web/live/ammo_group_live/index.ex:94
msgid "Range" msgid "Range"
msgstr "Schießplatz" msgstr "Schießplatz"
@ -601,6 +601,7 @@ msgstr "Munitionsgruppe verschieben"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/components/move_ammo_group_component.ex:80 #: lib/cannery_web/components/move_ammo_group_component.ex:80
#: lib/cannery_web/live/ammo_group_live/index.ex:240
msgid "Move ammo" msgid "Move ammo"
msgstr "Munition verschieben" msgstr "Munition verschieben"
@ -615,12 +616,12 @@ msgid "Shot log"
msgstr "Schießkladde" msgstr "Schießkladde"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/components/ammo_group_card.ex:48 #: lib/cannery_web/components/ammo_group_card.ex:60
#: lib/cannery_web/live/ammo_group_live/index.ex:125 #: lib/cannery_web/live/ammo_group_live/index.ex:142
#: lib/cannery_web/live/ammo_group_live/show.html.heex:37 #: 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_group_live/show.html.heex:44
#: lib/cannery_web/live/ammo_type_live/index.ex:114 #: lib/cannery_web/live/ammo_type_live/index.ex:118
#: lib/cannery_web/live/ammo_type_live/show.html.heex:104 #: lib/cannery_web/live/ammo_type_live/show.html.heex:103
msgid "$%{amount}" msgid "$%{amount}"
msgstr "$%{amount}" msgstr "$%{amount}"
@ -632,35 +633,35 @@ msgstr "Bimetall"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:72 #: 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:57
#: lib/cannery_web/live/ammo_type_live/show.html.heex:43 #: lib/cannery_web/live/ammo_type_live/show.html.heex:42
msgid "Jacket type" msgid "Jacket type"
msgstr "Patronenhülse" msgstr "Patronenhülse"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:79 #: 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:58
#: lib/cannery_web/live/ammo_type_live/show.html.heex:44 #: lib/cannery_web/live/ammo_type_live/show.html.heex:43
msgid "Muzzle velocity" msgid "Muzzle velocity"
msgstr "Mündungsgeschwindigkeit" msgstr "Mündungsgeschwindigkeit"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:93 #: 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:61
#: lib/cannery_web/live/ammo_type_live/show.html.heex:46 #: lib/cannery_web/live/ammo_type_live/show.html.heex:45
msgid "Powder grains per charge" msgid "Powder grains per charge"
msgstr "Pulverkörner pro Ladung" msgstr "Pulverkörner pro Ladung"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:89 #: 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:59
#: lib/cannery_web/live/ammo_type_live/show.html.heex:45 #: lib/cannery_web/live/ammo_type_live/show.html.heex:44
msgid "Powder type" msgid "Powder type"
msgstr "Pulverart" msgstr "Pulverart"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:152 #: 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:74
#: lib/cannery_web/live/ammo_type_live/show.html.heex:56 #: lib/cannery_web/live/ammo_type_live/show.html.heex:55
msgid "UPC" msgid "UPC"
msgstr "UPC" msgstr "UPC"
@ -681,19 +682,19 @@ msgid "New password"
msgstr "Neues Passwort" msgstr "Neues Passwort"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/index.ex:148 #: lib/cannery_web/live/ammo_group_live/index.ex:180
msgid "Stage" msgid "Stage"
msgstr "Markiert" msgstr "Markiert"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/index.ex:148 #: lib/cannery_web/live/ammo_group_live/index.ex:180
msgid "Unstage" msgid "Unstage"
msgstr "Demarkiert" msgstr "Demarkiert"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:125 #: 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:68
#: lib/cannery_web/live/ammo_type_live/show.html.heex:50 #: lib/cannery_web/live/ammo_type_live/show.html.heex:49
msgid "Firing type" msgid "Firing type"
msgstr "Patronenhülsenform" msgstr "Patronenhülsenform"
@ -709,13 +710,13 @@ msgstr "Lädt..."
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/container_live/index.ex:27 #: lib/cannery_web/live/container_live/index.ex:27
#: lib/cannery_web/live/container_live/show.ex:95 #: lib/cannery_web/live/container_live/show.ex:106
msgid "Edit %{name}" msgid "Edit %{name}"
msgstr "%{name} bearbeiten" msgstr "%{name} bearbeiten"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/container_live/index.ex:46 #: lib/cannery_web/live/container_live/index.ex:46
#: lib/cannery_web/live/container_live/show.ex:96 #: lib/cannery_web/live/container_live/show.ex:107
msgid "Edit %{name} tags" msgid "Edit %{name} tags"
msgstr "Editiere %{name} Tags" msgstr "Editiere %{name} Tags"
@ -726,18 +727,18 @@ msgid "Rounds:"
msgstr "Patronen:" msgstr "Patronen:"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/container_live/show.ex:94 #: lib/cannery_web/live/container_live/show.ex:105
msgid "Show %{name}" msgid "Show %{name}"
msgstr "Zeige %{name}" msgstr "Zeige %{name}"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/index.ex:113 #: lib/cannery_web/live/ammo_type_live/index.ex:117
#: lib/cannery_web/live/ammo_type_live/show.html.heex:110 #: lib/cannery_web/live/ammo_type_live/show.html.heex:109
msgid "No cost information" msgid "No cost information"
msgstr "Keine Preisinformationen" msgstr "Keine Preisinformationen"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/index.ex:84 #: lib/cannery_web/live/ammo_group_live/index.ex:93
msgid "% left" msgid "% left"
msgstr "% verbleibend" msgstr "% verbleibend"
@ -767,7 +768,7 @@ msgid "Rounds used"
msgstr "Patronen verbraucht" msgstr "Patronen verbraucht"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/show.html.heex:75 #: lib/cannery_web/live/ammo_type_live/show.html.heex:74
msgid "Current # of rounds:" msgid "Current # of rounds:"
msgstr "Derzeitige # an Patronen:" msgstr "Derzeitige # an Patronen:"
@ -777,7 +778,7 @@ msgid "Total # of rounds"
msgstr "Summe aller Patronen" msgstr "Summe aller Patronen"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/show.html.heex:83 #: lib/cannery_web/live/ammo_type_live/show.html.heex:82
msgid "Total rounds shot:" msgid "Total rounds shot:"
msgstr "Summe abgegebener Schüsse:" msgstr "Summe abgegebener Schüsse:"
@ -823,14 +824,14 @@ msgid "Ammo types"
msgstr "Munitionsart" msgstr "Munitionsart"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/index.ex:87 #: lib/cannery_web/live/ammo_group_live/index.ex:96
msgid "Added on" msgid "Added on"
msgstr "Hinzugefügt am" msgstr "Hinzugefügt am"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/components/ammo_group_card.ex:41 #: lib/cannery_web/components/ammo_group_card.ex:46
#: lib/cannery_web/live/ammo_group_live/show.html.heex:30 #: lib/cannery_web/live/ammo_group_live/show.html.heex:30
#: lib/cannery_web/live/ammo_type_live/show.html.heex:91 #: lib/cannery_web/live/ammo_type_live/show.html.heex:90
msgid "Added on:" msgid "Added on:"
msgstr "Hinzugefügt am:" msgstr "Hinzugefügt am:"
@ -899,7 +900,7 @@ msgid "Move Ammo"
msgstr "Munition verschieben" msgstr "Munition verschieben"
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
#: lib/cannery_web/live/container_live/show.html.heex:90 #: lib/cannery_web/live/container_live/show.html.heex:98
msgid "No ammo in this container" msgid "No ammo in this container"
msgstr "Keine Munitionsgruppe in diesem Behälter" msgstr "Keine Munitionsgruppe in diesem Behälter"
@ -934,3 +935,30 @@ msgstr ""
#: lib/cannery_web/live/invite_live/form_component.html.heex:28 #: lib/cannery_web/live/invite_live/form_component.html.heex:28
msgid "Leave \"Uses left\" blank to make invite unlimited" msgid "Leave \"Uses left\" blank to make invite unlimited"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format, fuzzy
#: lib/cannery_web/live/ammo_type_live/index.ex:87
msgid "Total # of ammo"
msgstr "Summe aller Patronen"
#, elixir-autogen, elixir-format, fuzzy
#: lib/cannery_web/components/ammo_group_card.ex:68
msgid "Container:"
msgstr "Behälter"
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/index.html.heex:52
#: lib/cannery_web/live/ammo_type_live/show.html.heex:119
#: lib/cannery_web/live/container_live/show.html.heex:90
msgid "Show used"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/index.ex:101
msgid "Used up on"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/components/ammo_group_card.ex:52
msgid "Used up on:"
msgstr ""

View File

@ -188,7 +188,7 @@ msgstr ""
"%{multiplier}" "%{multiplier}"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery/ammo.ex:407 #: lib/cannery/ammo.ex:535
msgid "Invalid multiplier" msgid "Invalid multiplier"
msgstr "" msgstr ""

View File

@ -33,7 +33,7 @@ msgstr "%{name} erfolgreich erstellt"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/index.ex:41 #: lib/cannery_web/live/ammo_type_live/index.ex:41
#: lib/cannery_web/live/ammo_type_live/show.ex:38 #: 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:53
#: lib/cannery_web/live/invite_live/index.ex:133 #: lib/cannery_web/live/invite_live/index.ex:133
#: lib/cannery_web/live/tag_live/index.ex:38 #: lib/cannery_web/live/tag_live/index.ex:38
@ -100,7 +100,7 @@ msgid "Are you sure you want to delete the invite for %{name}?"
msgstr "Sind Sie sicher, dass sie die Einladung für %{name} löschen möchten?" msgstr "Sind Sie sicher, dass sie die Einladung für %{name} löschen möchten?"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/index.ex:184 #: lib/cannery_web/live/ammo_group_live/index.ex:216
#: lib/cannery_web/live/ammo_group_live/show.html.heex:71 #: lib/cannery_web/live/ammo_group_live/show.html.heex:71
msgid "Are you sure you want to delete this ammo?" msgid "Are you sure you want to delete this ammo?"
msgstr "Sind Sie sicher, dass sie diese Munition löschen möchten?" msgstr "Sind Sie sicher, dass sie diese Munition löschen möchten?"
@ -293,7 +293,7 @@ msgstr[0] "Munitionsgruppe erfolgreich aktualisiert"
msgstr[1] "Munitionsgruppe erfolgreich aktualisiert" msgstr[1] "Munitionsgruppe erfolgreich aktualisiert"
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
#: lib/cannery_web/live/ammo_type_live/index.ex:140 #: lib/cannery_web/live/ammo_type_live/index.ex:156
#: lib/cannery_web/live/ammo_type_live/show.html.heex:27 #: lib/cannery_web/live/ammo_type_live/show.html.heex:26
msgid "Are you sure you want to delete %{name}? This will delete all %{name} type ammo as well!" msgid "Are you sure you want to delete %{name}? This will delete all %{name} type ammo as well!"
msgstr "Sind Sie sicher, dass sie %{name} löschen möchten?" msgstr "Sind Sie sicher, dass sie %{name} löschen möchten?"

View File

@ -39,13 +39,13 @@ msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:21 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:21
#: lib/cannery_web/live/ammo_group_live/index.ex:81 #: lib/cannery_web/live/ammo_group_live/index.ex:90
msgid "Ammo type" msgid "Ammo type"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/index.ex:87 #: lib/cannery_web/live/ammo_type_live/index.ex:88
#: lib/cannery_web/live/ammo_type_live/show.html.heex:100 #: lib/cannery_web/live/ammo_type_live/show.html.heex:99
msgid "Average Price paid" msgid "Average Price paid"
msgstr "" msgstr ""
@ -57,7 +57,7 @@ msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:140 #: 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:71
#: lib/cannery_web/live/ammo_type_live/show.html.heex:53 #: lib/cannery_web/live/ammo_type_live/show.html.heex:52
msgid "Blank" msgid "Blank"
msgstr "" msgstr ""
@ -69,42 +69,42 @@ msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:44 #: 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:53
#: lib/cannery_web/live/ammo_type_live/show.html.heex:39 #: lib/cannery_web/live/ammo_type_live/show.html.heex:38
msgid "Bullet core" msgid "Bullet core"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:37 #: 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:52
#: lib/cannery_web/live/ammo_type_live/show.html.heex:38 #: lib/cannery_web/live/ammo_type_live/show.html.heex:37
msgid "Bullet type" msgid "Bullet type"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:58 #: 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:55
#: lib/cannery_web/live/ammo_type_live/show.html.heex:41 #: lib/cannery_web/live/ammo_type_live/show.html.heex:40
msgid "Caliber" msgid "Caliber"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:51 #: 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:54
#: lib/cannery_web/live/ammo_type_live/show.html.heex:40 #: lib/cannery_web/live/ammo_type_live/show.html.heex:39
msgid "Cartridge" msgid "Cartridge"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:65 #: 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:56
#: lib/cannery_web/live/ammo_type_live/show.html.heex:42 #: lib/cannery_web/live/ammo_type_live/show.html.heex:41
msgid "Case material" msgid "Case material"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/components/move_ammo_group_component.ex:67 #: lib/cannery_web/components/move_ammo_group_component.ex:67
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:48 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:48
#: lib/cannery_web/live/ammo_group_live/index.ex:86 #: lib/cannery_web/live/ammo_group_live/index.ex:95
msgid "Container" msgid "Container"
msgstr "" msgstr ""
@ -118,18 +118,18 @@ msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:144 #: 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:72
#: lib/cannery_web/live/ammo_type_live/show.html.heex:54 #: lib/cannery_web/live/ammo_type_live/show.html.heex:53
msgid "Corrosive" msgid "Corrosive"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:27 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:27
#: lib/cannery_web/live/ammo_group_live/index.ex:82 #: lib/cannery_web/live/ammo_group_live/index.ex:91
msgid "Count" msgid "Count"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/components/ammo_group_card.ex:29 #: lib/cannery_web/components/ammo_group_card.ex:34
#: lib/cannery_web/live/ammo_group_live/show.html.heex:8 #: lib/cannery_web/live/ammo_group_live/show.html.heex:8
msgid "Count:" msgid "Count:"
msgstr "" msgstr ""
@ -163,7 +163,7 @@ msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/index.ex:23 #: lib/cannery_web/live/ammo_type_live/index.ex:23
#: lib/cannery_web/live/ammo_type_live/show.ex:45 #: lib/cannery_web/live/ammo_type_live/show.ex:63
msgid "Edit Ammo type" msgid "Edit Ammo type"
msgstr "" msgstr ""
@ -195,14 +195,14 @@ msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:103 #: 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:65
#: lib/cannery_web/live/ammo_type_live/show.html.heex:47 #: lib/cannery_web/live/ammo_type_live/show.html.heex:46
msgid "Grains" msgid "Grains"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:136 #: 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:70
#: lib/cannery_web/live/ammo_type_live/show.html.heex:52 #: lib/cannery_web/live/ammo_type_live/show.html.heex:51
msgid "Incendiary" msgid "Incendiary"
msgstr "" msgstr ""
@ -253,7 +253,7 @@ msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:148 #: 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:73
#: lib/cannery_web/live/ammo_type_live/show.html.heex:55 #: lib/cannery_web/live/ammo_type_live/show.html.heex:54
msgid "Manufacturer" msgid "Manufacturer"
msgstr "" msgstr ""
@ -307,7 +307,7 @@ msgid "No Ammo Types"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/show.html.heex:120 #: lib/cannery_web/live/ammo_type_live/show.html.heex:127
msgid "No ammo for this type" msgid "No ammo for this type"
msgstr "" msgstr ""
@ -337,7 +337,7 @@ msgid "Notes"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/components/ammo_group_card.ex:35 #: lib/cannery_web/components/ammo_group_card.ex:40
#: lib/cannery_web/live/ammo_group_live/show.html.heex:24 #: lib/cannery_web/live/ammo_group_live/show.html.heex:24
msgid "Notes:" msgid "Notes:"
msgstr "" msgstr ""
@ -350,25 +350,25 @@ msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:111 #: 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:66
#: lib/cannery_web/live/ammo_type_live/show.html.heex:48 #: lib/cannery_web/live/ammo_type_live/show.html.heex:47
msgid "Pressure" msgid "Pressure"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:34 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:34
#: lib/cannery_web/live/ammo_group_live/index.ex:83 #: lib/cannery_web/live/ammo_group_live/index.ex:92
msgid "Price paid" msgid "Price paid"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/components/ammo_group_card.ex:47 #: lib/cannery_web/components/ammo_group_card.ex:59
msgid "Price paid:" msgid "Price paid:"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:118 #: 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:67
#: lib/cannery_web/live/ammo_type_live/show.html.heex:49 #: lib/cannery_web/live/ammo_type_live/show.html.heex:48
msgid "Primer type" msgid "Primer type"
msgstr "" msgstr ""
@ -399,7 +399,7 @@ msgid "Settings"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/show.ex:44 #: lib/cannery_web/live/ammo_type_live/show.ex:62
msgid "Show Ammo type" msgid "Show Ammo type"
msgstr "" msgstr ""
@ -443,7 +443,7 @@ msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:132 #: 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:69
#: lib/cannery_web/live/ammo_type_live/show.html.heex:51 #: lib/cannery_web/live/ammo_type_live/show.html.heex:50
msgid "Tracer" msgid "Tracer"
msgstr "" msgstr ""
@ -491,7 +491,7 @@ msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/components/topbar.ex:68 #: lib/cannery_web/components/topbar.ex:68
#: lib/cannery_web/live/ammo_group_live/index.ex:85 #: lib/cannery_web/live/ammo_group_live/index.ex:94
msgid "Range" msgid "Range"
msgstr "" msgstr ""
@ -584,6 +584,7 @@ msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/components/move_ammo_group_component.ex:80 #: lib/cannery_web/components/move_ammo_group_component.ex:80
#: lib/cannery_web/live/ammo_group_live/index.ex:240
msgid "Move ammo" msgid "Move ammo"
msgstr "" msgstr ""
@ -598,12 +599,12 @@ msgid "Shot log"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/components/ammo_group_card.ex:48 #: lib/cannery_web/components/ammo_group_card.ex:60
#: lib/cannery_web/live/ammo_group_live/index.ex:125 #: lib/cannery_web/live/ammo_group_live/index.ex:142
#: lib/cannery_web/live/ammo_group_live/show.html.heex:37 #: 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_group_live/show.html.heex:44
#: lib/cannery_web/live/ammo_type_live/index.ex:114 #: lib/cannery_web/live/ammo_type_live/index.ex:118
#: lib/cannery_web/live/ammo_type_live/show.html.heex:104 #: lib/cannery_web/live/ammo_type_live/show.html.heex:103
msgid "$%{amount}" msgid "$%{amount}"
msgstr "" msgstr ""
@ -615,35 +616,35 @@ msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:72 #: 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:57
#: lib/cannery_web/live/ammo_type_live/show.html.heex:43 #: lib/cannery_web/live/ammo_type_live/show.html.heex:42
msgid "Jacket type" msgid "Jacket type"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:79 #: 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:58
#: lib/cannery_web/live/ammo_type_live/show.html.heex:44 #: lib/cannery_web/live/ammo_type_live/show.html.heex:43
msgid "Muzzle velocity" msgid "Muzzle velocity"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:93 #: 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:61
#: lib/cannery_web/live/ammo_type_live/show.html.heex:46 #: lib/cannery_web/live/ammo_type_live/show.html.heex:45
msgid "Powder grains per charge" msgid "Powder grains per charge"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:89 #: 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:59
#: lib/cannery_web/live/ammo_type_live/show.html.heex:45 #: lib/cannery_web/live/ammo_type_live/show.html.heex:44
msgid "Powder type" msgid "Powder type"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:152 #: 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:74
#: lib/cannery_web/live/ammo_type_live/show.html.heex:56 #: lib/cannery_web/live/ammo_type_live/show.html.heex:55
msgid "UPC" msgid "UPC"
msgstr "" msgstr ""
@ -664,19 +665,19 @@ msgid "New password"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/index.ex:148 #: lib/cannery_web/live/ammo_group_live/index.ex:180
msgid "Stage" msgid "Stage"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/index.ex:148 #: lib/cannery_web/live/ammo_group_live/index.ex:180
msgid "Unstage" msgid "Unstage"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:125 #: 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:68
#: lib/cannery_web/live/ammo_type_live/show.html.heex:50 #: lib/cannery_web/live/ammo_type_live/show.html.heex:49
msgid "Firing type" msgid "Firing type"
msgstr "" msgstr ""
@ -692,13 +693,13 @@ msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/container_live/index.ex:27 #: lib/cannery_web/live/container_live/index.ex:27
#: lib/cannery_web/live/container_live/show.ex:95 #: lib/cannery_web/live/container_live/show.ex:106
msgid "Edit %{name}" msgid "Edit %{name}"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/container_live/index.ex:46 #: lib/cannery_web/live/container_live/index.ex:46
#: lib/cannery_web/live/container_live/show.ex:96 #: lib/cannery_web/live/container_live/show.ex:107
msgid "Edit %{name} tags" msgid "Edit %{name} tags"
msgstr "" msgstr ""
@ -709,18 +710,18 @@ msgid "Rounds:"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/container_live/show.ex:94 #: lib/cannery_web/live/container_live/show.ex:105
msgid "Show %{name}" msgid "Show %{name}"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/index.ex:113 #: lib/cannery_web/live/ammo_type_live/index.ex:117
#: lib/cannery_web/live/ammo_type_live/show.html.heex:110 #: lib/cannery_web/live/ammo_type_live/show.html.heex:109
msgid "No cost information" msgid "No cost information"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/index.ex:84 #: lib/cannery_web/live/ammo_group_live/index.ex:93
msgid "% left" msgid "% left"
msgstr "" msgstr ""
@ -750,7 +751,7 @@ msgid "Rounds used"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/show.html.heex:75 #: lib/cannery_web/live/ammo_type_live/show.html.heex:74
msgid "Current # of rounds:" msgid "Current # of rounds:"
msgstr "" msgstr ""
@ -760,7 +761,7 @@ msgid "Total # of rounds"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/show.html.heex:83 #: lib/cannery_web/live/ammo_type_live/show.html.heex:82
msgid "Total rounds shot:" msgid "Total rounds shot:"
msgstr "" msgstr ""
@ -806,14 +807,14 @@ msgid "Ammo types"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/index.ex:87 #: lib/cannery_web/live/ammo_group_live/index.ex:96
msgid "Added on" msgid "Added on"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/components/ammo_group_card.ex:41 #: lib/cannery_web/components/ammo_group_card.ex:46
#: lib/cannery_web/live/ammo_group_live/show.html.heex:30 #: lib/cannery_web/live/ammo_group_live/show.html.heex:30
#: lib/cannery_web/live/ammo_type_live/show.html.heex:91 #: lib/cannery_web/live/ammo_type_live/show.html.heex:90
msgid "Added on:" msgid "Added on:"
msgstr "" msgstr ""
@ -882,7 +883,7 @@ msgid "Move Ammo"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/container_live/show.html.heex:90 #: lib/cannery_web/live/container_live/show.html.heex:98
msgid "No ammo in this container" msgid "No ammo in this container"
msgstr "" msgstr ""
@ -917,3 +918,30 @@ msgstr ""
#: lib/cannery_web/live/invite_live/form_component.html.heex:28 #: lib/cannery_web/live/invite_live/form_component.html.heex:28
msgid "Leave \"Uses left\" blank to make invite unlimited" msgid "Leave \"Uses left\" blank to make invite unlimited"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/index.ex:87
msgid "Total # of ammo"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/components/ammo_group_card.ex:68
msgid "Container:"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/index.html.heex:52
#: lib/cannery_web/live/ammo_type_live/show.html.heex:119
#: lib/cannery_web/live/container_live/show.html.heex:90
msgid "Show used"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/index.ex:101
msgid "Used up on"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/components/ammo_group_card.ex:52
msgid "Used up on:"
msgstr ""

View File

@ -157,7 +157,7 @@ msgid "Why not get some ready to shoot?"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/index.ex:151 #: lib/cannery_web/live/ammo_group_live/index.ex:183
#: lib/cannery_web/live/ammo_group_live/show.html.heex:91 #: lib/cannery_web/live/ammo_group_live/show.html.heex:91
#: lib/cannery_web/live/range_live/index.html.heex:36 #: lib/cannery_web/live/range_live/index.html.heex:36
msgid "Record shots" msgid "Record shots"

View File

@ -40,13 +40,13 @@ msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:21 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:21
#: lib/cannery_web/live/ammo_group_live/index.ex:81 #: lib/cannery_web/live/ammo_group_live/index.ex:90
msgid "Ammo type" msgid "Ammo type"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/index.ex:87 #: lib/cannery_web/live/ammo_type_live/index.ex:88
#: lib/cannery_web/live/ammo_type_live/show.html.heex:100 #: lib/cannery_web/live/ammo_type_live/show.html.heex:99
msgid "Average Price paid" msgid "Average Price paid"
msgstr "" msgstr ""
@ -58,7 +58,7 @@ msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:140 #: 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:71
#: lib/cannery_web/live/ammo_type_live/show.html.heex:53 #: lib/cannery_web/live/ammo_type_live/show.html.heex:52
msgid "Blank" msgid "Blank"
msgstr "" msgstr ""
@ -70,42 +70,42 @@ msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:44 #: 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:53
#: lib/cannery_web/live/ammo_type_live/show.html.heex:39 #: lib/cannery_web/live/ammo_type_live/show.html.heex:38
msgid "Bullet core" msgid "Bullet core"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:37 #: 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:52
#: lib/cannery_web/live/ammo_type_live/show.html.heex:38 #: lib/cannery_web/live/ammo_type_live/show.html.heex:37
msgid "Bullet type" msgid "Bullet type"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:58 #: 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:55
#: lib/cannery_web/live/ammo_type_live/show.html.heex:41 #: lib/cannery_web/live/ammo_type_live/show.html.heex:40
msgid "Caliber" msgid "Caliber"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:51 #: 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:54
#: lib/cannery_web/live/ammo_type_live/show.html.heex:40 #: lib/cannery_web/live/ammo_type_live/show.html.heex:39
msgid "Cartridge" msgid "Cartridge"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:65 #: 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:56
#: lib/cannery_web/live/ammo_type_live/show.html.heex:42 #: lib/cannery_web/live/ammo_type_live/show.html.heex:41
msgid "Case material" msgid "Case material"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/components/move_ammo_group_component.ex:67 #: lib/cannery_web/components/move_ammo_group_component.ex:67
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:48 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:48
#: lib/cannery_web/live/ammo_group_live/index.ex:86 #: lib/cannery_web/live/ammo_group_live/index.ex:95
msgid "Container" msgid "Container"
msgstr "" msgstr ""
@ -119,18 +119,18 @@ msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:144 #: 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:72
#: lib/cannery_web/live/ammo_type_live/show.html.heex:54 #: lib/cannery_web/live/ammo_type_live/show.html.heex:53
msgid "Corrosive" msgid "Corrosive"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:27 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:27
#: lib/cannery_web/live/ammo_group_live/index.ex:82 #: lib/cannery_web/live/ammo_group_live/index.ex:91
msgid "Count" msgid "Count"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/components/ammo_group_card.ex:29 #: lib/cannery_web/components/ammo_group_card.ex:34
#: lib/cannery_web/live/ammo_group_live/show.html.heex:8 #: lib/cannery_web/live/ammo_group_live/show.html.heex:8
msgid "Count:" msgid "Count:"
msgstr "" msgstr ""
@ -164,7 +164,7 @@ msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/index.ex:23 #: lib/cannery_web/live/ammo_type_live/index.ex:23
#: lib/cannery_web/live/ammo_type_live/show.ex:45 #: lib/cannery_web/live/ammo_type_live/show.ex:63
msgid "Edit Ammo type" msgid "Edit Ammo type"
msgstr "" msgstr ""
@ -196,14 +196,14 @@ msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:103 #: 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:65
#: lib/cannery_web/live/ammo_type_live/show.html.heex:47 #: lib/cannery_web/live/ammo_type_live/show.html.heex:46
msgid "Grains" msgid "Grains"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:136 #: 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:70
#: lib/cannery_web/live/ammo_type_live/show.html.heex:52 #: lib/cannery_web/live/ammo_type_live/show.html.heex:51
msgid "Incendiary" msgid "Incendiary"
msgstr "" msgstr ""
@ -254,7 +254,7 @@ msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:148 #: 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:73
#: lib/cannery_web/live/ammo_type_live/show.html.heex:55 #: lib/cannery_web/live/ammo_type_live/show.html.heex:54
msgid "Manufacturer" msgid "Manufacturer"
msgstr "" msgstr ""
@ -308,7 +308,7 @@ msgid "No Ammo Types"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/show.html.heex:120 #: lib/cannery_web/live/ammo_type_live/show.html.heex:127
msgid "No ammo for this type" msgid "No ammo for this type"
msgstr "" msgstr ""
@ -338,7 +338,7 @@ msgid "Notes"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/components/ammo_group_card.ex:35 #: lib/cannery_web/components/ammo_group_card.ex:40
#: lib/cannery_web/live/ammo_group_live/show.html.heex:24 #: lib/cannery_web/live/ammo_group_live/show.html.heex:24
msgid "Notes:" msgid "Notes:"
msgstr "" msgstr ""
@ -351,25 +351,25 @@ msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:111 #: 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:66
#: lib/cannery_web/live/ammo_type_live/show.html.heex:48 #: lib/cannery_web/live/ammo_type_live/show.html.heex:47
msgid "Pressure" msgid "Pressure"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:34 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:34
#: lib/cannery_web/live/ammo_group_live/index.ex:83 #: lib/cannery_web/live/ammo_group_live/index.ex:92
msgid "Price paid" msgid "Price paid"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/components/ammo_group_card.ex:47 #: lib/cannery_web/components/ammo_group_card.ex:59
msgid "Price paid:" msgid "Price paid:"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:118 #: 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:67
#: lib/cannery_web/live/ammo_type_live/show.html.heex:49 #: lib/cannery_web/live/ammo_type_live/show.html.heex:48
msgid "Primer type" msgid "Primer type"
msgstr "" msgstr ""
@ -400,7 +400,7 @@ msgid "Settings"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/show.ex:44 #: lib/cannery_web/live/ammo_type_live/show.ex:62
msgid "Show Ammo type" msgid "Show Ammo type"
msgstr "" msgstr ""
@ -444,7 +444,7 @@ msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:132 #: 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:69
#: lib/cannery_web/live/ammo_type_live/show.html.heex:51 #: lib/cannery_web/live/ammo_type_live/show.html.heex:50
msgid "Tracer" msgid "Tracer"
msgstr "" msgstr ""
@ -492,7 +492,7 @@ msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/components/topbar.ex:68 #: lib/cannery_web/components/topbar.ex:68
#: lib/cannery_web/live/ammo_group_live/index.ex:85 #: lib/cannery_web/live/ammo_group_live/index.ex:94
msgid "Range" msgid "Range"
msgstr "" msgstr ""
@ -585,6 +585,7 @@ msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/components/move_ammo_group_component.ex:80 #: lib/cannery_web/components/move_ammo_group_component.ex:80
#: lib/cannery_web/live/ammo_group_live/index.ex:240
msgid "Move ammo" msgid "Move ammo"
msgstr "" msgstr ""
@ -599,12 +600,12 @@ msgid "Shot log"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/components/ammo_group_card.ex:48 #: lib/cannery_web/components/ammo_group_card.ex:60
#: lib/cannery_web/live/ammo_group_live/index.ex:125 #: lib/cannery_web/live/ammo_group_live/index.ex:142
#: lib/cannery_web/live/ammo_group_live/show.html.heex:37 #: 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_group_live/show.html.heex:44
#: lib/cannery_web/live/ammo_type_live/index.ex:114 #: lib/cannery_web/live/ammo_type_live/index.ex:118
#: lib/cannery_web/live/ammo_type_live/show.html.heex:104 #: lib/cannery_web/live/ammo_type_live/show.html.heex:103
msgid "$%{amount}" msgid "$%{amount}"
msgstr "" msgstr ""
@ -616,35 +617,35 @@ msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:72 #: 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:57
#: lib/cannery_web/live/ammo_type_live/show.html.heex:43 #: lib/cannery_web/live/ammo_type_live/show.html.heex:42
msgid "Jacket type" msgid "Jacket type"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:79 #: 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:58
#: lib/cannery_web/live/ammo_type_live/show.html.heex:44 #: lib/cannery_web/live/ammo_type_live/show.html.heex:43
msgid "Muzzle velocity" msgid "Muzzle velocity"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:93 #: 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:61
#: lib/cannery_web/live/ammo_type_live/show.html.heex:46 #: lib/cannery_web/live/ammo_type_live/show.html.heex:45
msgid "Powder grains per charge" msgid "Powder grains per charge"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:89 #: 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:59
#: lib/cannery_web/live/ammo_type_live/show.html.heex:45 #: lib/cannery_web/live/ammo_type_live/show.html.heex:44
msgid "Powder type" msgid "Powder type"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:152 #: 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:74
#: lib/cannery_web/live/ammo_type_live/show.html.heex:56 #: lib/cannery_web/live/ammo_type_live/show.html.heex:55
msgid "UPC" msgid "UPC"
msgstr "" msgstr ""
@ -665,19 +666,19 @@ msgid "New password"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/index.ex:148 #: lib/cannery_web/live/ammo_group_live/index.ex:180
msgid "Stage" msgid "Stage"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/index.ex:148 #: lib/cannery_web/live/ammo_group_live/index.ex:180
msgid "Unstage" msgid "Unstage"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:125 #: 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:68
#: lib/cannery_web/live/ammo_type_live/show.html.heex:50 #: lib/cannery_web/live/ammo_type_live/show.html.heex:49
msgid "Firing type" msgid "Firing type"
msgstr "" msgstr ""
@ -693,13 +694,13 @@ msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/container_live/index.ex:27 #: lib/cannery_web/live/container_live/index.ex:27
#: lib/cannery_web/live/container_live/show.ex:95 #: lib/cannery_web/live/container_live/show.ex:106
msgid "Edit %{name}" msgid "Edit %{name}"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/container_live/index.ex:46 #: lib/cannery_web/live/container_live/index.ex:46
#: lib/cannery_web/live/container_live/show.ex:96 #: lib/cannery_web/live/container_live/show.ex:107
msgid "Edit %{name} tags" msgid "Edit %{name} tags"
msgstr "" msgstr ""
@ -710,18 +711,18 @@ msgid "Rounds:"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/container_live/show.ex:94 #: lib/cannery_web/live/container_live/show.ex:105
msgid "Show %{name}" msgid "Show %{name}"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/index.ex:113 #: lib/cannery_web/live/ammo_type_live/index.ex:117
#: lib/cannery_web/live/ammo_type_live/show.html.heex:110 #: lib/cannery_web/live/ammo_type_live/show.html.heex:109
msgid "No cost information" msgid "No cost information"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/index.ex:84 #: lib/cannery_web/live/ammo_group_live/index.ex:93
msgid "% left" msgid "% left"
msgstr "" msgstr ""
@ -751,7 +752,7 @@ msgid "Rounds used"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/show.html.heex:75 #: lib/cannery_web/live/ammo_type_live/show.html.heex:74
msgid "Current # of rounds:" msgid "Current # of rounds:"
msgstr "" msgstr ""
@ -761,7 +762,7 @@ msgid "Total # of rounds"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/show.html.heex:83 #: lib/cannery_web/live/ammo_type_live/show.html.heex:82
msgid "Total rounds shot:" msgid "Total rounds shot:"
msgstr "" msgstr ""
@ -807,14 +808,14 @@ msgid "Ammo types"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/index.ex:87 #: lib/cannery_web/live/ammo_group_live/index.ex:96
msgid "Added on" msgid "Added on"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/components/ammo_group_card.ex:41 #: lib/cannery_web/components/ammo_group_card.ex:46
#: lib/cannery_web/live/ammo_group_live/show.html.heex:30 #: lib/cannery_web/live/ammo_group_live/show.html.heex:30
#: lib/cannery_web/live/ammo_type_live/show.html.heex:91 #: lib/cannery_web/live/ammo_type_live/show.html.heex:90
msgid "Added on:" msgid "Added on:"
msgstr "" msgstr ""
@ -883,7 +884,7 @@ msgid "Move Ammo"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
#: lib/cannery_web/live/container_live/show.html.heex:90 #: lib/cannery_web/live/container_live/show.html.heex:98
msgid "No ammo in this container" msgid "No ammo in this container"
msgstr "" msgstr ""
@ -918,3 +919,30 @@ msgstr ""
#: lib/cannery_web/live/invite_live/form_component.html.heex:28 #: lib/cannery_web/live/invite_live/form_component.html.heex:28
msgid "Leave \"Uses left\" blank to make invite unlimited" msgid "Leave \"Uses left\" blank to make invite unlimited"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format, fuzzy
#: lib/cannery_web/live/ammo_type_live/index.ex:87
msgid "Total # of ammo"
msgstr ""
#, elixir-autogen, elixir-format, fuzzy
#: lib/cannery_web/components/ammo_group_card.ex:68
msgid "Container:"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/index.html.heex:52
#: lib/cannery_web/live/ammo_type_live/show.html.heex:119
#: lib/cannery_web/live/container_live/show.html.heex:90
msgid "Show used"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/index.ex:101
msgid "Used up on"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/components/ammo_group_card.ex:52
msgid "Used up on:"
msgstr ""

View File

@ -171,7 +171,7 @@ msgid "Invalid number of copies, must be between 1 and %{max}. Was %{multiplier}
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery/ammo.ex:407 #: lib/cannery/ammo.ex:535
msgid "Invalid multiplier" msgid "Invalid multiplier"
msgstr "" msgstr ""

View File

@ -21,7 +21,7 @@ msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/index.ex:41 #: lib/cannery_web/live/ammo_type_live/index.ex:41
#: lib/cannery_web/live/ammo_type_live/show.ex:38 #: 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:53
#: lib/cannery_web/live/invite_live/index.ex:133 #: lib/cannery_web/live/invite_live/index.ex:133
#: lib/cannery_web/live/tag_live/index.ex:38 #: lib/cannery_web/live/tag_live/index.ex:38
@ -86,7 +86,7 @@ msgid "Are you sure you want to delete the invite for %{name}?"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/index.ex:184 #: lib/cannery_web/live/ammo_group_live/index.ex:216
#: lib/cannery_web/live/ammo_group_live/show.html.heex:71 #: lib/cannery_web/live/ammo_group_live/show.html.heex:71
msgid "Are you sure you want to delete this ammo?" msgid "Are you sure you want to delete this ammo?"
msgstr "" msgstr ""
@ -273,7 +273,7 @@ msgstr[0] ""
msgstr[1] "" msgstr[1] ""
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
#: lib/cannery_web/live/ammo_type_live/index.ex:140 #: lib/cannery_web/live/ammo_type_live/index.ex:156
#: lib/cannery_web/live/ammo_type_live/show.html.heex:27 #: lib/cannery_web/live/ammo_type_live/show.html.heex:26
msgid "Are you sure you want to delete %{name}? This will delete all %{name} type ammo as well!" msgid "Are you sure you want to delete %{name}? This will delete all %{name} type ammo as well!"
msgstr "" msgstr ""

View File

@ -170,7 +170,7 @@ msgid "Invalid number of copies, must be between 1 and %{max}. Was %{multiplier}
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery/ammo.ex:407 #: lib/cannery/ammo.ex:535
msgid "Invalid multiplier" msgid "Invalid multiplier"
msgstr "" msgstr ""

View File

@ -169,7 +169,7 @@ msgid "Why not get some ready to shoot?"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/index.ex:151 #: lib/cannery_web/live/ammo_group_live/index.ex:183
#: lib/cannery_web/live/ammo_group_live/show.html.heex:91 #: lib/cannery_web/live/ammo_group_live/show.html.heex:91
#: lib/cannery_web/live/range_live/index.html.heex:36 #: lib/cannery_web/live/range_live/index.html.heex:36
msgid "Record shots" msgid "Record shots"

View File

@ -54,13 +54,13 @@ msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:21 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:21
#: lib/cannery_web/live/ammo_group_live/index.ex:81 #: lib/cannery_web/live/ammo_group_live/index.ex:90
msgid "Ammo type" msgid "Ammo type"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/index.ex:87 #: lib/cannery_web/live/ammo_type_live/index.ex:88
#: lib/cannery_web/live/ammo_type_live/show.html.heex:100 #: lib/cannery_web/live/ammo_type_live/show.html.heex:99
msgid "Average Price paid" msgid "Average Price paid"
msgstr "" msgstr ""
@ -72,7 +72,7 @@ msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:140 #: 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:71
#: lib/cannery_web/live/ammo_type_live/show.html.heex:53 #: lib/cannery_web/live/ammo_type_live/show.html.heex:52
msgid "Blank" msgid "Blank"
msgstr "" msgstr ""
@ -84,42 +84,42 @@ msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:44 #: 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:53
#: lib/cannery_web/live/ammo_type_live/show.html.heex:39 #: lib/cannery_web/live/ammo_type_live/show.html.heex:38
msgid "Bullet core" msgid "Bullet core"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:37 #: 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:52
#: lib/cannery_web/live/ammo_type_live/show.html.heex:38 #: lib/cannery_web/live/ammo_type_live/show.html.heex:37
msgid "Bullet type" msgid "Bullet type"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:58 #: 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:55
#: lib/cannery_web/live/ammo_type_live/show.html.heex:41 #: lib/cannery_web/live/ammo_type_live/show.html.heex:40
msgid "Caliber" msgid "Caliber"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:51 #: 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:54
#: lib/cannery_web/live/ammo_type_live/show.html.heex:40 #: lib/cannery_web/live/ammo_type_live/show.html.heex:39
msgid "Cartridge" msgid "Cartridge"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:65 #: 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:56
#: lib/cannery_web/live/ammo_type_live/show.html.heex:42 #: lib/cannery_web/live/ammo_type_live/show.html.heex:41
msgid "Case material" msgid "Case material"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/components/move_ammo_group_component.ex:67 #: lib/cannery_web/components/move_ammo_group_component.ex:67
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:48 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:48
#: lib/cannery_web/live/ammo_group_live/index.ex:86 #: lib/cannery_web/live/ammo_group_live/index.ex:95
msgid "Container" msgid "Container"
msgstr "" msgstr ""
@ -133,18 +133,18 @@ msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:144 #: 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:72
#: lib/cannery_web/live/ammo_type_live/show.html.heex:54 #: lib/cannery_web/live/ammo_type_live/show.html.heex:53
msgid "Corrosive" msgid "Corrosive"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:27 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:27
#: lib/cannery_web/live/ammo_group_live/index.ex:82 #: lib/cannery_web/live/ammo_group_live/index.ex:91
msgid "Count" msgid "Count"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/components/ammo_group_card.ex:29 #: lib/cannery_web/components/ammo_group_card.ex:34
#: lib/cannery_web/live/ammo_group_live/show.html.heex:8 #: lib/cannery_web/live/ammo_group_live/show.html.heex:8
msgid "Count:" msgid "Count:"
msgstr "" msgstr ""
@ -178,7 +178,7 @@ msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/index.ex:23 #: lib/cannery_web/live/ammo_type_live/index.ex:23
#: lib/cannery_web/live/ammo_type_live/show.ex:45 #: lib/cannery_web/live/ammo_type_live/show.ex:63
msgid "Edit Ammo type" msgid "Edit Ammo type"
msgstr "" msgstr ""
@ -210,14 +210,14 @@ msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:103 #: 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:65
#: lib/cannery_web/live/ammo_type_live/show.html.heex:47 #: lib/cannery_web/live/ammo_type_live/show.html.heex:46
msgid "Grains" msgid "Grains"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:136 #: 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:70
#: lib/cannery_web/live/ammo_type_live/show.html.heex:52 #: lib/cannery_web/live/ammo_type_live/show.html.heex:51
msgid "Incendiary" msgid "Incendiary"
msgstr "" msgstr ""
@ -268,7 +268,7 @@ msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:148 #: 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:73
#: lib/cannery_web/live/ammo_type_live/show.html.heex:55 #: lib/cannery_web/live/ammo_type_live/show.html.heex:54
msgid "Manufacturer" msgid "Manufacturer"
msgstr "" msgstr ""
@ -322,7 +322,7 @@ msgid "No Ammo Types"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/show.html.heex:120 #: lib/cannery_web/live/ammo_type_live/show.html.heex:127
msgid "No ammo for this type" msgid "No ammo for this type"
msgstr "" msgstr ""
@ -352,7 +352,7 @@ msgid "Notes"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/components/ammo_group_card.ex:35 #: lib/cannery_web/components/ammo_group_card.ex:40
#: lib/cannery_web/live/ammo_group_live/show.html.heex:24 #: lib/cannery_web/live/ammo_group_live/show.html.heex:24
msgid "Notes:" msgid "Notes:"
msgstr "" msgstr ""
@ -365,25 +365,25 @@ msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:111 #: 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:66
#: lib/cannery_web/live/ammo_type_live/show.html.heex:48 #: lib/cannery_web/live/ammo_type_live/show.html.heex:47
msgid "Pressure" msgid "Pressure"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:34 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:34
#: lib/cannery_web/live/ammo_group_live/index.ex:83 #: lib/cannery_web/live/ammo_group_live/index.ex:92
msgid "Price paid" msgid "Price paid"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/components/ammo_group_card.ex:47 #: lib/cannery_web/components/ammo_group_card.ex:59
msgid "Price paid:" msgid "Price paid:"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:118 #: 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:67
#: lib/cannery_web/live/ammo_type_live/show.html.heex:49 #: lib/cannery_web/live/ammo_type_live/show.html.heex:48
msgid "Primer type" msgid "Primer type"
msgstr "" msgstr ""
@ -414,7 +414,7 @@ msgid "Settings"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/show.ex:44 #: lib/cannery_web/live/ammo_type_live/show.ex:62
msgid "Show Ammo type" msgid "Show Ammo type"
msgstr "" msgstr ""
@ -458,7 +458,7 @@ msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:132 #: 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:69
#: lib/cannery_web/live/ammo_type_live/show.html.heex:51 #: lib/cannery_web/live/ammo_type_live/show.html.heex:50
msgid "Tracer" msgid "Tracer"
msgstr "" msgstr ""
@ -506,7 +506,7 @@ msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/components/topbar.ex:68 #: lib/cannery_web/components/topbar.ex:68
#: lib/cannery_web/live/ammo_group_live/index.ex:85 #: lib/cannery_web/live/ammo_group_live/index.ex:94
msgid "Range" msgid "Range"
msgstr "" msgstr ""
@ -599,6 +599,7 @@ msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/components/move_ammo_group_component.ex:80 #: lib/cannery_web/components/move_ammo_group_component.ex:80
#: lib/cannery_web/live/ammo_group_live/index.ex:240
msgid "Move ammo" msgid "Move ammo"
msgstr "" msgstr ""
@ -613,12 +614,12 @@ msgid "Shot log"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/components/ammo_group_card.ex:48 #: lib/cannery_web/components/ammo_group_card.ex:60
#: lib/cannery_web/live/ammo_group_live/index.ex:125 #: lib/cannery_web/live/ammo_group_live/index.ex:142
#: lib/cannery_web/live/ammo_group_live/show.html.heex:37 #: 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_group_live/show.html.heex:44
#: lib/cannery_web/live/ammo_type_live/index.ex:114 #: lib/cannery_web/live/ammo_type_live/index.ex:118
#: lib/cannery_web/live/ammo_type_live/show.html.heex:104 #: lib/cannery_web/live/ammo_type_live/show.html.heex:103
msgid "$%{amount}" msgid "$%{amount}"
msgstr "" msgstr ""
@ -630,35 +631,35 @@ msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:72 #: 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:57
#: lib/cannery_web/live/ammo_type_live/show.html.heex:43 #: lib/cannery_web/live/ammo_type_live/show.html.heex:42
msgid "Jacket type" msgid "Jacket type"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:79 #: 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:58
#: lib/cannery_web/live/ammo_type_live/show.html.heex:44 #: lib/cannery_web/live/ammo_type_live/show.html.heex:43
msgid "Muzzle velocity" msgid "Muzzle velocity"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:93 #: 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:61
#: lib/cannery_web/live/ammo_type_live/show.html.heex:46 #: lib/cannery_web/live/ammo_type_live/show.html.heex:45
msgid "Powder grains per charge" msgid "Powder grains per charge"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:89 #: 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:59
#: lib/cannery_web/live/ammo_type_live/show.html.heex:45 #: lib/cannery_web/live/ammo_type_live/show.html.heex:44
msgid "Powder type" msgid "Powder type"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:152 #: 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:74
#: lib/cannery_web/live/ammo_type_live/show.html.heex:56 #: lib/cannery_web/live/ammo_type_live/show.html.heex:55
msgid "UPC" msgid "UPC"
msgstr "" msgstr ""
@ -679,19 +680,19 @@ msgid "New password"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/index.ex:148 #: lib/cannery_web/live/ammo_group_live/index.ex:180
msgid "Stage" msgid "Stage"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/index.ex:148 #: lib/cannery_web/live/ammo_group_live/index.ex:180
msgid "Unstage" msgid "Unstage"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:125 #: 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:68
#: lib/cannery_web/live/ammo_type_live/show.html.heex:50 #: lib/cannery_web/live/ammo_type_live/show.html.heex:49
msgid "Firing type" msgid "Firing type"
msgstr "" msgstr ""
@ -707,13 +708,13 @@ msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/container_live/index.ex:27 #: lib/cannery_web/live/container_live/index.ex:27
#: lib/cannery_web/live/container_live/show.ex:95 #: lib/cannery_web/live/container_live/show.ex:106
msgid "Edit %{name}" msgid "Edit %{name}"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/container_live/index.ex:46 #: lib/cannery_web/live/container_live/index.ex:46
#: lib/cannery_web/live/container_live/show.ex:96 #: lib/cannery_web/live/container_live/show.ex:107
msgid "Edit %{name} tags" msgid "Edit %{name} tags"
msgstr "" msgstr ""
@ -724,18 +725,18 @@ msgid "Rounds:"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/container_live/show.ex:94 #: lib/cannery_web/live/container_live/show.ex:105
msgid "Show %{name}" msgid "Show %{name}"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/index.ex:113 #: lib/cannery_web/live/ammo_type_live/index.ex:117
#: lib/cannery_web/live/ammo_type_live/show.html.heex:110 #: lib/cannery_web/live/ammo_type_live/show.html.heex:109
msgid "No cost information" msgid "No cost information"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/index.ex:84 #: lib/cannery_web/live/ammo_group_live/index.ex:93
msgid "% left" msgid "% left"
msgstr "" msgstr ""
@ -765,7 +766,7 @@ msgid "Rounds used"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/show.html.heex:75 #: lib/cannery_web/live/ammo_type_live/show.html.heex:74
msgid "Current # of rounds:" msgid "Current # of rounds:"
msgstr "" msgstr ""
@ -775,7 +776,7 @@ msgid "Total # of rounds"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/show.html.heex:83 #: lib/cannery_web/live/ammo_type_live/show.html.heex:82
msgid "Total rounds shot:" msgid "Total rounds shot:"
msgstr "" msgstr ""
@ -821,14 +822,14 @@ msgid "Ammo types"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/index.ex:87 #: lib/cannery_web/live/ammo_group_live/index.ex:96
msgid "Added on" msgid "Added on"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/components/ammo_group_card.ex:41 #: lib/cannery_web/components/ammo_group_card.ex:46
#: lib/cannery_web/live/ammo_group_live/show.html.heex:30 #: lib/cannery_web/live/ammo_group_live/show.html.heex:30
#: lib/cannery_web/live/ammo_type_live/show.html.heex:91 #: lib/cannery_web/live/ammo_type_live/show.html.heex:90
msgid "Added on:" msgid "Added on:"
msgstr "" msgstr ""
@ -897,7 +898,7 @@ msgid "Move Ammo"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
#: lib/cannery_web/live/container_live/show.html.heex:90 #: lib/cannery_web/live/container_live/show.html.heex:98
msgid "No ammo in this container" msgid "No ammo in this container"
msgstr "" msgstr ""
@ -932,3 +933,30 @@ msgstr ""
#: lib/cannery_web/live/invite_live/form_component.html.heex:28 #: lib/cannery_web/live/invite_live/form_component.html.heex:28
msgid "Leave \"Uses left\" blank to make invite unlimited" msgid "Leave \"Uses left\" blank to make invite unlimited"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format, fuzzy
#: lib/cannery_web/live/ammo_type_live/index.ex:87
msgid "Total # of ammo"
msgstr ""
#, elixir-autogen, elixir-format, fuzzy
#: lib/cannery_web/components/ammo_group_card.ex:68
msgid "Container:"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/index.html.heex:52
#: lib/cannery_web/live/ammo_type_live/show.html.heex:119
#: lib/cannery_web/live/container_live/show.html.heex:90
msgid "Show used"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/index.ex:101
msgid "Used up on"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/components/ammo_group_card.ex:52
msgid "Used up on:"
msgstr ""

View File

@ -186,7 +186,7 @@ msgid "Invalid number of copies, must be between 1 and %{max}. Was %{multiplier}
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery/ammo.ex:407 #: lib/cannery/ammo.ex:535
msgid "Invalid multiplier" msgid "Invalid multiplier"
msgstr "" msgstr ""

View File

@ -33,7 +33,7 @@ msgstr "%{name} creado exitosamente"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/index.ex:41 #: lib/cannery_web/live/ammo_type_live/index.ex:41
#: lib/cannery_web/live/ammo_type_live/show.ex:38 #: 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:53
#: lib/cannery_web/live/invite_live/index.ex:133 #: lib/cannery_web/live/invite_live/index.ex:133
#: lib/cannery_web/live/tag_live/index.ex:38 #: lib/cannery_web/live/tag_live/index.ex:38
@ -100,7 +100,7 @@ msgid "Are you sure you want to delete the invite for %{name}?"
msgstr "Está seguro que quiere eliminar la invitación para %{name}?" msgstr "Está seguro que quiere eliminar la invitación para %{name}?"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/index.ex:184 #: lib/cannery_web/live/ammo_group_live/index.ex:216
#: lib/cannery_web/live/ammo_group_live/show.html.heex:71 #: lib/cannery_web/live/ammo_group_live/show.html.heex:71
msgid "Are you sure you want to delete this ammo?" msgid "Are you sure you want to delete this ammo?"
msgstr "Está seguro que desea eliminar esta munición?" msgstr "Está seguro que desea eliminar esta munición?"
@ -292,7 +292,7 @@ msgstr[0] ""
msgstr[1] "" msgstr[1] ""
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
#: lib/cannery_web/live/ammo_type_live/index.ex:140 #: lib/cannery_web/live/ammo_type_live/index.ex:156
#: lib/cannery_web/live/ammo_type_live/show.html.heex:27 #: lib/cannery_web/live/ammo_type_live/show.html.heex:26
msgid "Are you sure you want to delete %{name}? This will delete all %{name} type ammo as well!" msgid "Are you sure you want to delete %{name}? This will delete all %{name} type ammo as well!"
msgstr "" msgstr ""

View File

@ -169,7 +169,7 @@ msgid "Why not get some ready to shoot?"
msgstr "Pourquoi pas en préparer pour tirer?" msgstr "Pourquoi pas en préparer pour tirer?"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/index.ex:151 #: lib/cannery_web/live/ammo_group_live/index.ex:183
#: lib/cannery_web/live/ammo_group_live/show.html.heex:91 #: lib/cannery_web/live/ammo_group_live/show.html.heex:91
#: lib/cannery_web/live/range_live/index.html.heex:36 #: lib/cannery_web/live/range_live/index.html.heex:36
msgid "Record shots" msgid "Record shots"

View File

@ -54,13 +54,13 @@ msgstr "Munition"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:21 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:21
#: lib/cannery_web/live/ammo_group_live/index.ex:81 #: lib/cannery_web/live/ammo_group_live/index.ex:90
msgid "Ammo type" msgid "Ammo type"
msgstr "Type de munition" msgstr "Type de munition"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/index.ex:87 #: lib/cannery_web/live/ammo_type_live/index.ex:88
#: lib/cannery_web/live/ammo_type_live/show.html.heex:100 #: lib/cannery_web/live/ammo_type_live/show.html.heex:99
msgid "Average Price paid" msgid "Average Price paid"
msgstr "Prix acheté moyen" msgstr "Prix acheté moyen"
@ -72,7 +72,7 @@ msgstr "Couleur de fond"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:140 #: 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:71
#: lib/cannery_web/live/ammo_type_live/show.html.heex:53 #: lib/cannery_web/live/ammo_type_live/show.html.heex:52
msgid "Blank" msgid "Blank"
msgstr "Vide" msgstr "Vide"
@ -84,42 +84,42 @@ msgstr "Cuivre"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:44 #: 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:53
#: lib/cannery_web/live/ammo_type_live/show.html.heex:39 #: lib/cannery_web/live/ammo_type_live/show.html.heex:38
msgid "Bullet core" msgid "Bullet core"
msgstr "Noyau de balle" msgstr "Noyau de balle"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:37 #: 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:52
#: lib/cannery_web/live/ammo_type_live/show.html.heex:38 #: lib/cannery_web/live/ammo_type_live/show.html.heex:37
msgid "Bullet type" msgid "Bullet type"
msgstr "Type de balle" msgstr "Type de balle"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:58 #: 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:55
#: lib/cannery_web/live/ammo_type_live/show.html.heex:41 #: lib/cannery_web/live/ammo_type_live/show.html.heex:40
msgid "Caliber" msgid "Caliber"
msgstr "Calibre" msgstr "Calibre"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:51 #: 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:54
#: lib/cannery_web/live/ammo_type_live/show.html.heex:40 #: lib/cannery_web/live/ammo_type_live/show.html.heex:39
msgid "Cartridge" msgid "Cartridge"
msgstr "Cartouche" msgstr "Cartouche"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:65 #: 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:56
#: lib/cannery_web/live/ammo_type_live/show.html.heex:42 #: lib/cannery_web/live/ammo_type_live/show.html.heex:41
msgid "Case material" msgid "Case material"
msgstr "Matériau de la caisse" msgstr "Matériau de la caisse"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/components/move_ammo_group_component.ex:67 #: lib/cannery_web/components/move_ammo_group_component.ex:67
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:48 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:48
#: lib/cannery_web/live/ammo_group_live/index.ex:86 #: lib/cannery_web/live/ammo_group_live/index.ex:95
msgid "Container" msgid "Container"
msgstr "Conteneur" msgstr "Conteneur"
@ -133,18 +133,18 @@ msgstr "Conteneurs"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:144 #: 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:72
#: lib/cannery_web/live/ammo_type_live/show.html.heex:54 #: lib/cannery_web/live/ammo_type_live/show.html.heex:53
msgid "Corrosive" msgid "Corrosive"
msgstr "Corrosive" msgstr "Corrosive"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:27 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:27
#: lib/cannery_web/live/ammo_group_live/index.ex:82 #: lib/cannery_web/live/ammo_group_live/index.ex:91
msgid "Count" msgid "Count"
msgstr "Quantité" msgstr "Quantité"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/components/ammo_group_card.ex:29 #: lib/cannery_web/components/ammo_group_card.ex:34
#: lib/cannery_web/live/ammo_group_live/show.html.heex:8 #: lib/cannery_web/live/ammo_group_live/show.html.heex:8
msgid "Count:" msgid "Count:"
msgstr "Quantité:" msgstr "Quantité:"
@ -178,7 +178,7 @@ msgstr "Éditer le groupe de munition"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/index.ex:23 #: lib/cannery_web/live/ammo_type_live/index.ex:23
#: lib/cannery_web/live/ammo_type_live/show.ex:45 #: lib/cannery_web/live/ammo_type_live/show.ex:63
msgid "Edit Ammo type" msgid "Edit Ammo type"
msgstr "Éditer le type de munition" msgstr "Éditer le type de munition"
@ -210,14 +210,14 @@ msgstr "FMJ"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:103 #: 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:65
#: lib/cannery_web/live/ammo_type_live/show.html.heex:47 #: lib/cannery_web/live/ammo_type_live/show.html.heex:46
msgid "Grains" msgid "Grains"
msgstr "Graines" msgstr "Graines"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:136 #: 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:70
#: lib/cannery_web/live/ammo_type_live/show.html.heex:52 #: lib/cannery_web/live/ammo_type_live/show.html.heex:51
msgid "Incendiary" msgid "Incendiary"
msgstr "Incendiaire" msgstr "Incendiaire"
@ -268,7 +268,7 @@ msgstr "Chargeur, lame-chargeur, boite de munition, etc."
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:148 #: 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:73
#: lib/cannery_web/live/ammo_type_live/show.html.heex:55 #: lib/cannery_web/live/ammo_type_live/show.html.heex:54
msgid "Manufacturer" msgid "Manufacturer"
msgstr "Fabricant" msgstr "Fabricant"
@ -322,7 +322,7 @@ msgid "No Ammo Types"
msgstr "Aucun type de munition" msgstr "Aucun type de munition"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/show.html.heex:120 #: lib/cannery_web/live/ammo_type_live/show.html.heex:127
msgid "No ammo for this type" msgid "No ammo for this type"
msgstr "Aucune munition pour ce type" msgstr "Aucune munition pour ce type"
@ -352,7 +352,7 @@ msgid "Notes"
msgstr "Notes" msgstr "Notes"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/components/ammo_group_card.ex:35 #: lib/cannery_web/components/ammo_group_card.ex:40
#: lib/cannery_web/live/ammo_group_live/show.html.heex:24 #: lib/cannery_web/live/ammo_group_live/show.html.heex:24
msgid "Notes:" msgid "Notes:"
msgstr "Notes:" msgstr "Notes:"
@ -365,25 +365,25 @@ msgstr "Sur létagère"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:111 #: 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:66
#: lib/cannery_web/live/ammo_type_live/show.html.heex:48 #: lib/cannery_web/live/ammo_type_live/show.html.heex:47
msgid "Pressure" msgid "Pressure"
msgstr "Pression" msgstr "Pression"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:34 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:34
#: lib/cannery_web/live/ammo_group_live/index.ex:83 #: lib/cannery_web/live/ammo_group_live/index.ex:92
msgid "Price paid" msgid "Price paid"
msgstr "Prix payé" msgstr "Prix payé"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/components/ammo_group_card.ex:47 #: lib/cannery_web/components/ammo_group_card.ex:59
msgid "Price paid:" msgid "Price paid:"
msgstr "Prix payé:" msgstr "Prix payé:"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:118 #: 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:67
#: lib/cannery_web/live/ammo_type_live/show.html.heex:49 #: lib/cannery_web/live/ammo_type_live/show.html.heex:48
msgid "Primer type" msgid "Primer type"
msgstr "Type damorce" msgstr "Type damorce"
@ -416,7 +416,7 @@ msgid "Settings"
msgstr "Paramètres" msgstr "Paramètres"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/show.ex:44 #: lib/cannery_web/live/ammo_type_live/show.ex:62
msgid "Show Ammo type" msgid "Show Ammo type"
msgstr "Montrer le type de munition" msgstr "Montrer le type de munition"
@ -462,7 +462,7 @@ msgstr "Le site web de suivi darme à feux auto-hébergé"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:132 #: 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:69
#: lib/cannery_web/live/ammo_type_live/show.html.heex:51 #: lib/cannery_web/live/ammo_type_live/show.html.heex:50
msgid "Tracer" msgid "Tracer"
msgstr "Traceuse" msgstr "Traceuse"
@ -510,7 +510,7 @@ msgstr "Aucun tag pour ce conteneur"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/components/topbar.ex:68 #: lib/cannery_web/components/topbar.ex:68
#: lib/cannery_web/live/ammo_group_live/index.ex:85 #: lib/cannery_web/live/ammo_group_live/index.ex:94
msgid "Range" msgid "Range"
msgstr "Portée" msgstr "Portée"
@ -603,6 +603,7 @@ msgstr "Déplacer le groupe de munition"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/components/move_ammo_group_component.ex:80 #: lib/cannery_web/components/move_ammo_group_component.ex:80
#: lib/cannery_web/live/ammo_group_live/index.ex:240
msgid "Move ammo" msgid "Move ammo"
msgstr "Déplacer munition" msgstr "Déplacer munition"
@ -617,12 +618,12 @@ msgid "Shot log"
msgstr "Évènements de tir" msgstr "Évènements de tir"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/components/ammo_group_card.ex:48 #: lib/cannery_web/components/ammo_group_card.ex:60
#: lib/cannery_web/live/ammo_group_live/index.ex:125 #: lib/cannery_web/live/ammo_group_live/index.ex:142
#: lib/cannery_web/live/ammo_group_live/show.html.heex:37 #: 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_group_live/show.html.heex:44
#: lib/cannery_web/live/ammo_type_live/index.ex:114 #: lib/cannery_web/live/ammo_type_live/index.ex:118
#: lib/cannery_web/live/ammo_type_live/show.html.heex:104 #: lib/cannery_web/live/ammo_type_live/show.html.heex:103
msgid "$%{amount}" msgid "$%{amount}"
msgstr "%{amount}$" msgstr "%{amount}$"
@ -634,35 +635,35 @@ msgstr "Bi-métal"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:72 #: 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:57
#: lib/cannery_web/live/ammo_type_live/show.html.heex:43 #: lib/cannery_web/live/ammo_type_live/show.html.heex:42
msgid "Jacket type" msgid "Jacket type"
msgstr "Type de douille" msgstr "Type de douille"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:79 #: 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:58
#: lib/cannery_web/live/ammo_type_live/show.html.heex:44 #: lib/cannery_web/live/ammo_type_live/show.html.heex:43
msgid "Muzzle velocity" msgid "Muzzle velocity"
msgstr "Vélocité du canon" msgstr "Vélocité du canon"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:93 #: 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:61
#: lib/cannery_web/live/ammo_type_live/show.html.heex:46 #: lib/cannery_web/live/ammo_type_live/show.html.heex:45
msgid "Powder grains per charge" msgid "Powder grains per charge"
msgstr "Graines de poudre par charge" msgstr "Graines de poudre par charge"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:89 #: 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:59
#: lib/cannery_web/live/ammo_type_live/show.html.heex:45 #: lib/cannery_web/live/ammo_type_live/show.html.heex:44
msgid "Powder type" msgid "Powder type"
msgstr "Type de poudre" msgstr "Type de poudre"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:152 #: 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:74
#: lib/cannery_web/live/ammo_type_live/show.html.heex:56 #: lib/cannery_web/live/ammo_type_live/show.html.heex:55
msgid "UPC" msgid "UPC"
msgstr "UPC" msgstr "UPC"
@ -683,19 +684,19 @@ msgid "New password"
msgstr "Nouveau mot de passe" msgstr "Nouveau mot de passe"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/index.ex:148 #: lib/cannery_web/live/ammo_group_live/index.ex:180
msgid "Stage" msgid "Stage"
msgstr "Sélectionné" msgstr "Sélectionné"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/index.ex:148 #: lib/cannery_web/live/ammo_group_live/index.ex:180
msgid "Unstage" msgid "Unstage"
msgstr "Désélectionner" msgstr "Désélectionner"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:125 #: 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:68
#: lib/cannery_web/live/ammo_type_live/show.html.heex:50 #: lib/cannery_web/live/ammo_type_live/show.html.heex:49
msgid "Firing type" msgid "Firing type"
msgstr "Type dallumage" msgstr "Type dallumage"
@ -711,13 +712,13 @@ msgstr "Chargement en cours…"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/container_live/index.ex:27 #: lib/cannery_web/live/container_live/index.ex:27
#: lib/cannery_web/live/container_live/show.ex:95 #: lib/cannery_web/live/container_live/show.ex:106
msgid "Edit %{name}" msgid "Edit %{name}"
msgstr "Éditer %{name}" msgstr "Éditer %{name}"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/container_live/index.ex:46 #: lib/cannery_web/live/container_live/index.ex:46
#: lib/cannery_web/live/container_live/show.ex:96 #: lib/cannery_web/live/container_live/show.ex:107
msgid "Edit %{name} tags" msgid "Edit %{name} tags"
msgstr "Éditer les tags de %{name}" msgstr "Éditer les tags de %{name}"
@ -728,18 +729,18 @@ msgid "Rounds:"
msgstr "Cartouches:" msgstr "Cartouches:"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/container_live/show.ex:94 #: lib/cannery_web/live/container_live/show.ex:105
msgid "Show %{name}" msgid "Show %{name}"
msgstr "Montrer %{name}" msgstr "Montrer %{name}"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/index.ex:113 #: lib/cannery_web/live/ammo_type_live/index.ex:117
#: lib/cannery_web/live/ammo_type_live/show.html.heex:110 #: lib/cannery_web/live/ammo_type_live/show.html.heex:109
msgid "No cost information" msgid "No cost information"
msgstr "Aucune information de prix" msgstr "Aucune information de prix"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/index.ex:84 #: lib/cannery_web/live/ammo_group_live/index.ex:93
msgid "% left" msgid "% left"
msgstr "%restante" msgstr "%restante"
@ -769,7 +770,7 @@ msgid "Rounds used"
msgstr "Cartouches utilisées" msgstr "Cartouches utilisées"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/show.html.heex:75 #: lib/cannery_web/live/ammo_type_live/show.html.heex:74
msgid "Current # of rounds:" msgid "Current # of rounds:"
msgstr "Quantité actuelle de cartouches:" msgstr "Quantité actuelle de cartouches:"
@ -779,7 +780,7 @@ msgid "Total # of rounds"
msgstr "Quantité de cartouches" msgstr "Quantité de cartouches"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/show.html.heex:83 #: lib/cannery_web/live/ammo_type_live/show.html.heex:82
msgid "Total rounds shot:" msgid "Total rounds shot:"
msgstr "Nombre totale de cartouches tirées:" msgstr "Nombre totale de cartouches tirées:"
@ -825,14 +826,14 @@ msgid "Ammo types"
msgstr "Types de munition" msgstr "Types de munition"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/index.ex:87 #: lib/cannery_web/live/ammo_group_live/index.ex:96
msgid "Added on" msgid "Added on"
msgstr "Ajouté le" msgstr "Ajouté le"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/components/ammo_group_card.ex:41 #: lib/cannery_web/components/ammo_group_card.ex:46
#: lib/cannery_web/live/ammo_group_live/show.html.heex:30 #: lib/cannery_web/live/ammo_group_live/show.html.heex:30
#: lib/cannery_web/live/ammo_type_live/show.html.heex:91 #: lib/cannery_web/live/ammo_type_live/show.html.heex:90
msgid "Added on:" msgid "Added on:"
msgstr "Ajouté le:" msgstr "Ajouté le:"
@ -901,7 +902,7 @@ msgid "Move Ammo"
msgstr "Déplacer munition" msgstr "Déplacer munition"
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
#: lib/cannery_web/live/container_live/show.html.heex:90 #: lib/cannery_web/live/container_live/show.html.heex:98
msgid "No ammo in this container" msgid "No ammo in this container"
msgstr "Aucun groupe de munition pour ce conteneur" msgstr "Aucun groupe de munition pour ce conteneur"
@ -936,3 +937,30 @@ msgstr ""
#: lib/cannery_web/live/invite_live/form_component.html.heex:28 #: lib/cannery_web/live/invite_live/form_component.html.heex:28
msgid "Leave \"Uses left\" blank to make invite unlimited" msgid "Leave \"Uses left\" blank to make invite unlimited"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format, fuzzy
#: lib/cannery_web/live/ammo_type_live/index.ex:87
msgid "Total # of ammo"
msgstr "Quantité de cartouches"
#, elixir-autogen, elixir-format, fuzzy
#: lib/cannery_web/components/ammo_group_card.ex:68
msgid "Container:"
msgstr "Conteneur"
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/index.html.heex:52
#: lib/cannery_web/live/ammo_type_live/show.html.heex:119
#: lib/cannery_web/live/container_live/show.html.heex:90
msgid "Show used"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/index.ex:101
msgid "Used up on"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/components/ammo_group_card.ex:52
msgid "Used up on:"
msgstr ""

View File

@ -187,7 +187,7 @@ msgid "Invalid number of copies, must be between 1 and %{max}. Was %{multiplier}
msgstr "Nombre de copies invalide, doit être 1 et %{max}. Été %{multiplier}" msgstr "Nombre de copies invalide, doit être 1 et %{max}. Été %{multiplier}"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery/ammo.ex:407 #: lib/cannery/ammo.ex:535
msgid "Invalid multiplier" msgid "Invalid multiplier"
msgstr "" msgstr ""

View File

@ -33,7 +33,7 @@ msgstr "%{name} créé· avec succès"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/index.ex:41 #: lib/cannery_web/live/ammo_type_live/index.ex:41
#: lib/cannery_web/live/ammo_type_live/show.ex:38 #: 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:53
#: lib/cannery_web/live/invite_live/index.ex:133 #: lib/cannery_web/live/invite_live/index.ex:133
#: lib/cannery_web/live/tag_live/index.ex:38 #: lib/cannery_web/live/tag_live/index.ex:38
@ -101,7 +101,7 @@ msgid "Are you sure you want to delete the invite for %{name}?"
msgstr "Êtes-vous certain·e de supprimer linvitation pour %{name}?" msgstr "Êtes-vous certain·e de supprimer linvitation pour %{name}?"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/index.ex:184 #: lib/cannery_web/live/ammo_group_live/index.ex:216
#: lib/cannery_web/live/ammo_group_live/show.html.heex:71 #: lib/cannery_web/live/ammo_group_live/show.html.heex:71
msgid "Are you sure you want to delete this ammo?" msgid "Are you sure you want to delete this ammo?"
msgstr "Êtes-vous certain·e de supprimer cette munition?" msgstr "Êtes-vous certain·e de supprimer cette munition?"
@ -294,7 +294,7 @@ msgstr[0] "Groupe de munition mis à jour avec succès"
msgstr[1] "Groupe de munition mis à jour avec succès" msgstr[1] "Groupe de munition mis à jour avec succès"
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
#: lib/cannery_web/live/ammo_type_live/index.ex:140 #: lib/cannery_web/live/ammo_type_live/index.ex:156
#: lib/cannery_web/live/ammo_type_live/show.html.heex:27 #: lib/cannery_web/live/ammo_type_live/show.html.heex:26
msgid "Are you sure you want to delete %{name}? This will delete all %{name} type ammo as well!" msgid "Are you sure you want to delete %{name}? This will delete all %{name} type ammo as well!"
msgstr "Êtes-vous certain·e de supprimer %{name}?" msgstr "Êtes-vous certain·e de supprimer %{name}?"

View File

@ -20,7 +20,7 @@ msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/index.ex:41 #: lib/cannery_web/live/ammo_type_live/index.ex:41
#: lib/cannery_web/live/ammo_type_live/show.ex:38 #: 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:53
#: lib/cannery_web/live/invite_live/index.ex:133 #: lib/cannery_web/live/invite_live/index.ex:133
#: lib/cannery_web/live/tag_live/index.ex:38 #: lib/cannery_web/live/tag_live/index.ex:38
@ -85,7 +85,7 @@ msgid "Are you sure you want to delete the invite for %{name}?"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/index.ex:184 #: lib/cannery_web/live/ammo_group_live/index.ex:216
#: lib/cannery_web/live/ammo_group_live/show.html.heex:71 #: lib/cannery_web/live/ammo_group_live/show.html.heex:71
msgid "Are you sure you want to delete this ammo?" msgid "Are you sure you want to delete this ammo?"
msgstr "" msgstr ""
@ -272,7 +272,7 @@ msgstr[0] ""
msgstr[1] "" msgstr[1] ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/index.ex:140 #: lib/cannery_web/live/ammo_type_live/index.ex:156
#: lib/cannery_web/live/ammo_type_live/show.html.heex:27 #: lib/cannery_web/live/ammo_type_live/show.html.heex:26
msgid "Are you sure you want to delete %{name}? This will delete all %{name} type ammo as well!" msgid "Are you sure you want to delete %{name}? This will delete all %{name} type ammo as well!"
msgstr "" msgstr ""