add used filtering to ammo type show page
This commit is contained in:
parent
2e0bb861f1
commit
36a0a1c6c8
@ -4,6 +4,7 @@
|
|||||||
- Make ammo catalog page include ammo count
|
- Make ammo catalog page include ammo count
|
||||||
- Make ammo type show page a bit more compact
|
- 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 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 a bit more compact
|
||||||
- Forgot to add the logo as the favicon whoops
|
- Forgot to add the logo as the favicon whoops
|
||||||
|
|
||||||
|
@ -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},
|
||||||
|
_include_empty = true
|
||||||
|
) 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,22 @@ 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},
|
||||||
|
_include_empty = false
|
||||||
|
) 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 """
|
@doc """
|
||||||
Returns the count of ammo_groups for an ammo type.
|
Returns the count of ammo_groups for an ammo type.
|
||||||
|
|
||||||
@ -285,22 +309,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}, _include_empty = true) 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}, _include_empty = false) 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 """
|
||||||
|
@ -32,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 %>
|
||||||
|
@ -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", _, %{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
|
||||||
|
@ -113,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">
|
||||||
|
@ -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
|
||||||
|
@ -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"
|
||||||
|
|
||||||
@ -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:119
|
#: 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"
|
||||||
|
|
||||||
@ -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"
|
||||||
|
|
||||||
@ -945,3 +945,8 @@ msgstr "Summe aller Patronen"
|
|||||||
#: lib/cannery_web/components/ammo_group_card.ex:61
|
#: lib/cannery_web/components/ammo_group_card.ex:61
|
||||||
msgid "Container:"
|
msgid "Container:"
|
||||||
msgstr "Behälter"
|
msgstr "Behälter"
|
||||||
|
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
#: lib/cannery_web/live/ammo_type_live/show.html.heex:119
|
||||||
|
msgid "Show used"
|
||||||
|
msgstr ""
|
||||||
|
@ -188,7 +188,7 @@ msgstr ""
|
|||||||
"%{multiplier}"
|
"%{multiplier}"
|
||||||
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
#: lib/cannery/ammo.ex:442
|
#: lib/cannery/ammo.ex:479
|
||||||
msgid "Invalid multiplier"
|
msgid "Invalid multiplier"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -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
|
||||||
|
@ -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 ""
|
||||||
|
|
||||||
@ -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:119
|
#: 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 ""
|
||||||
|
|
||||||
@ -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 ""
|
||||||
|
|
||||||
@ -928,3 +928,8 @@ msgstr ""
|
|||||||
#: lib/cannery_web/components/ammo_group_card.ex:61
|
#: lib/cannery_web/components/ammo_group_card.ex:61
|
||||||
msgid "Container:"
|
msgid "Container:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
#: lib/cannery_web/live/ammo_type_live/show.html.heex:119
|
||||||
|
msgid "Show used"
|
||||||
|
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 ""
|
||||||
|
|
||||||
@ -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:119
|
#: 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 ""
|
||||||
|
|
||||||
@ -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 ""
|
||||||
|
|
||||||
@ -929,3 +929,8 @@ msgstr ""
|
|||||||
#: lib/cannery_web/components/ammo_group_card.ex:61
|
#: lib/cannery_web/components/ammo_group_card.ex:61
|
||||||
msgid "Container:"
|
msgid "Container:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
#: lib/cannery_web/live/ammo_type_live/show.html.heex:119
|
||||||
|
msgid "Show used"
|
||||||
|
msgstr ""
|
||||||
|
@ -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:442
|
#: lib/cannery/ammo.ex:479
|
||||||
msgid "Invalid multiplier"
|
msgid "Invalid multiplier"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -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
|
||||||
|
@ -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:442
|
#: lib/cannery/ammo.ex:479
|
||||||
msgid "Invalid multiplier"
|
msgid "Invalid multiplier"
|
||||||
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 ""
|
||||||
|
|
||||||
@ -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:119
|
#: 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 ""
|
||||||
|
|
||||||
@ -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 ""
|
||||||
|
|
||||||
@ -943,3 +943,8 @@ msgstr ""
|
|||||||
#: lib/cannery_web/components/ammo_group_card.ex:61
|
#: lib/cannery_web/components/ammo_group_card.ex:61
|
||||||
msgid "Container:"
|
msgid "Container:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
#: lib/cannery_web/live/ammo_type_live/show.html.heex:119
|
||||||
|
msgid "Show used"
|
||||||
|
msgstr ""
|
||||||
|
@ -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:442
|
#: lib/cannery/ammo.ex:479
|
||||||
msgid "Invalid multiplier"
|
msgid "Invalid multiplier"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -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
|
||||||
|
@ -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"
|
||||||
|
|
||||||
@ -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:119
|
#: 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"
|
||||||
|
|
||||||
@ -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"
|
||||||
|
|
||||||
@ -947,3 +947,8 @@ msgstr "Quantité de cartouches"
|
|||||||
#: lib/cannery_web/components/ammo_group_card.ex:61
|
#: lib/cannery_web/components/ammo_group_card.ex:61
|
||||||
msgid "Container:"
|
msgid "Container:"
|
||||||
msgstr "Conteneur"
|
msgstr "Conteneur"
|
||||||
|
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
#: lib/cannery_web/live/ammo_type_live/show.html.heex:119
|
||||||
|
msgid "Show used"
|
||||||
|
msgstr ""
|
||||||
|
@ -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:442
|
#: lib/cannery/ammo.ex:479
|
||||||
msgid "Invalid multiplier"
|
msgid "Invalid multiplier"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
Loading…
Reference in New Issue
Block a user