Compare commits

..

No commits in common. "db4b3fab242691329a82fd0fb526f5eb78d8b226" and "cb4de9a6ff17fec4cfd5de78f6da0668b9e3f36f" have entirely different histories.

49 changed files with 322 additions and 821 deletions

View File

@ -1,3 +1,3 @@
elixir 1.14.1-otp-25
erlang 25.1.2
nodejs 18.12.1
nodejs 16.13.2

View File

@ -1,4 +1,4 @@
# v0.6.0
# v0.5.5
- Update translations
- Display used-up date on used-up ammo
- Make ammo index page a bit more compact
@ -10,8 +10,7 @@
- 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
- Add graph to range page
- Update project dependencies
- Update project dependencies, use Elixir v1.14.1
# v0.5.4
- Rename "Ammo" tab to "Catalog", and "Manage" tab is now "Ammo"

View File

@ -26,7 +26,6 @@ import { Socket } from 'phoenix'
import { LiveSocket } from 'phoenix_live_view'
import topbar from '../vendor/topbar'
import MaintainAttrs from './maintain_attrs'
import ShotLogChart from './shot_log_chart'
import Alpine from 'alpinejs'
const csrfToken = document.querySelector("meta[name='csrf-token']").getAttribute('content')
@ -37,7 +36,7 @@ const liveSocket = new LiveSocket('/live', Socket, {
}
},
params: { _csrf_token: csrfToken },
hooks: { MaintainAttrs, ShotLogChart }
hooks: { MaintainAttrs }
})
// alpine.js

View File

@ -1,83 +0,0 @@
import { Chart, Title, Tooltip, Legend, LineController, LineElement, PointElement, TimeScale, LinearScale } from 'chart.js'
import 'chartjs-adapter-date-fns'
Chart.register(Title, Tooltip, Legend, LineController, LineElement, PointElement, TimeScale, LinearScale)
export default {
initalizeChart (el) {
const data = JSON.parse(el.dataset.chartData)
this.el.chart = new Chart(el, {
type: 'line',
data: {
datasets: [{
label: el.dataset.label,
data: data.map(({ date, count, labels }) => ({
labels,
x: date,
y: count
})),
backgroundColor: el.dataset.color,
borderColor: el.dataset.color,
fill: true,
borderWidth: 4
}]
},
options: {
elements: {
point: {
radius: 7,
hoverRadius: 10
}
},
plugins: {
legend: {
position: 'bottom',
labels: {
padding: 20
}
},
tooltip: {
displayColors: false,
callbacks: {
label: ({ raw: { labels } }) => labels
}
}
},
scales: {
y: {
beginAtZero: true,
stacked: true,
grace: '15%',
ticks: {
padding: 15
}
},
x: {
type: 'time',
time: {
unit: 'day'
}
}
},
transitions: {
show: {
animations: {
x: {
from: 0
}
}
},
hide: {
animations: {
x: {
to: 0
}
}
}
}
}
})
},
mounted () { this.initalizeChart(this.el) },
updated () { this.initalizeChart(this.el) }
}

View File

@ -8,9 +8,6 @@
"dependencies": {
"@fortawesome/fontawesome-free": "^6.1.1",
"alpinejs": "^3.10.2",
"chart.js": "^3.9.1",
"chartjs-adapter-date-fns": "^2.0.0",
"date-fns": "^2.29.3",
"phoenix": "file:../deps/phoenix",
"phoenix_html": "file:../deps/phoenix_html",
"phoenix_live_view": "file:../deps/phoenix_live_view",
@ -38,21 +35,17 @@
"webpack": "^5.72.0",
"webpack-cli": "^4.9.2",
"webpack-dev-server": "^4.9.0"
},
"engines": {
"node": "18.12.1",
"npm": "8.19.2"
}
},
"../deps/phoenix": {
"version": "1.6.15",
"version": "1.6.8",
"license": "MIT"
},
"../deps/phoenix_html": {
"version": "3.2.0"
},
"../deps/phoenix_live_view": {
"version": "0.18.2",
"version": "0.17.9",
"license": "MIT"
},
"node_modules/@ampproject/remapping": {
@ -3169,19 +3162,6 @@
"node": ">=4"
}
},
"node_modules/chart.js": {
"version": "3.9.1",
"resolved": "https://registry.npmjs.org/chart.js/-/chart.js-3.9.1.tgz",
"integrity": "sha512-Ro2JbLmvg83gXF5F4sniaQ+lTbSv18E+TIf2cOeiH1Iqd2PGFOtem+DUufMZsCJwFE7ywPOpfXFBwRTGq7dh6w=="
},
"node_modules/chartjs-adapter-date-fns": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/chartjs-adapter-date-fns/-/chartjs-adapter-date-fns-2.0.0.tgz",
"integrity": "sha512-rmZINGLe+9IiiEB0kb57vH3UugAtYw33anRiw5kS2Tu87agpetDDoouquycWc9pRsKtQo5j+vLsYHyr8etAvFw==",
"peerDependencies": {
"chart.js": "^3.0.0"
}
},
"node_modules/chokidar": {
"version": "3.5.3",
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
@ -3866,18 +3846,6 @@
"node": ">=8.0.0"
}
},
"node_modules/date-fns": {
"version": "2.29.3",
"resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.29.3.tgz",
"integrity": "sha512-dDCnyH2WnnKusqvZZ6+jA1O51Ibt8ZMRNkDZdyAyK4YfbDwa/cEmuztzG5pk6hqlp9aSBPYcjOlktquahGwGeA==",
"engines": {
"node": ">=0.11"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/date-fns"
}
},
"node_modules/debug": {
"version": "4.3.4",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
@ -12565,17 +12533,6 @@
"supports-color": "^5.3.0"
}
},
"chart.js": {
"version": "3.9.1",
"resolved": "https://registry.npmjs.org/chart.js/-/chart.js-3.9.1.tgz",
"integrity": "sha512-Ro2JbLmvg83gXF5F4sniaQ+lTbSv18E+TIf2cOeiH1Iqd2PGFOtem+DUufMZsCJwFE7ywPOpfXFBwRTGq7dh6w=="
},
"chartjs-adapter-date-fns": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/chartjs-adapter-date-fns/-/chartjs-adapter-date-fns-2.0.0.tgz",
"integrity": "sha512-rmZINGLe+9IiiEB0kb57vH3UugAtYw33anRiw5kS2Tu87agpetDDoouquycWc9pRsKtQo5j+vLsYHyr8etAvFw==",
"requires": {}
},
"chokidar": {
"version": "3.5.3",
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
@ -13064,11 +13021,6 @@
"css-tree": "^1.1.2"
}
},
"date-fns": {
"version": "2.29.3",
"resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.29.3.tgz",
"integrity": "sha512-dDCnyH2WnnKusqvZZ6+jA1O51Ibt8ZMRNkDZdyAyK4YfbDwa/cEmuztzG5pk6hqlp9aSBPYcjOlktquahGwGeA=="
},
"debug": {
"version": "4.3.4",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",

View File

@ -2,10 +2,6 @@
"repository": {},
"description": " ",
"license": "MIT",
"engines": {
"node": "18.12.1",
"npm": "8.19.2"
},
"scripts": {
"deploy": "NODE_ENV=production webpack --mode production",
"watch": "webpack --mode development --watch --watch-options-stdin",
@ -15,9 +11,6 @@
"dependencies": {
"@fortawesome/fontawesome-free": "^6.1.1",
"alpinejs": "^3.10.2",
"chart.js": "^3.9.1",
"chartjs-adapter-date-fns": "^2.0.0",
"date-fns": "^2.29.3",
"phoenix": "file:../deps/phoenix",
"phoenix_html": "file:../deps/phoenix_html",
"phoenix_live_view": "file:../deps/phoenix_live_view",

View File

@ -58,7 +58,7 @@ defmodule Cannery.ActivityLog.ShotGroup do
|> cast(attrs, [:count, :notes, :date])
|> validate_number(:count, greater_than: 0)
|> validate_create_shot_group_count(ammo_group)
|> validate_required([:count, :date, :ammo_group_id, :user_id])
|> validate_required([:count, :ammo_group_id, :user_id])
end
def create_changeset(shot_group, _invalid_user, _invalid_ammo_group, attrs) do
@ -90,7 +90,7 @@ defmodule Cannery.ActivityLog.ShotGroup do
shot_group
|> cast(attrs, [:count, :notes, :date])
|> validate_number(:count, greater_than: 0)
|> validate_required([:count, :date])
|> validate_required([:count])
|> validate_update_shot_group_count(shot_group, user)
end

View File

@ -120,4 +120,18 @@ defmodule Cannery.Tags do
"""
@spec delete_tag!(Tag.t(), User.t()) :: Tag.t()
def delete_tag!(%Tag{user_id: user_id} = tag, %User{id: user_id}), do: tag |> Repo.delete!()
@doc """
Get a random tag bg_color in `#ffffff` hex format
## Examples
iex> random_color()
"#cc0066"
"""
@spec random_bg_color() :: <<_::7>>
def random_bg_color do
["#cc0066", "#ff6699", "#6666ff", "#0066cc", "#00cc66", "#669900", "#ff9900", "#996633"]
|> Enum.random()
end
end

View File

@ -4,13 +4,9 @@ defmodule CanneryWeb.Components.AmmoGroupCard do
"""
use CanneryWeb, :component
alias Cannery.{Ammo, Ammo.AmmoGroup, Repo}
alias Cannery.{Ammo, Repo}
alias CanneryWeb.Endpoint
attr :ammo_group, AmmoGroup, required: true
attr :show_container, :boolean, default: false
slot(:inner_block)
def ammo_group_card(%{ammo_group: ammo_group} = assigns) do
assigns =
%{show_container: show_container} = assigns |> assign_new(:show_container, fn -> false end)

View File

@ -5,20 +5,11 @@ defmodule CanneryWeb.Components.ContainerCard do
use CanneryWeb, :component
import CanneryWeb.Components.TagCard
alias Cannery.{Containers, Containers.Container, Repo}
alias Cannery.{Containers, Repo}
alias CanneryWeb.Endpoint
alias Phoenix.LiveView.Rendered
attr :container, Container, required: true
slot(:tag_actions)
slot(:inner_block)
@spec container_card(assigns :: map()) :: Rendered.t()
def container_card(%{container: container} = assigns) do
assigns =
assigns
|> assign(container: container |> Repo.preload([:tags, :ammo_groups]))
|> assign_new(:tag_actions, fn -> [] end)
assigns = assigns |> Map.put(:container, container |> Repo.preload([:tags, :ammo_groups]))
~H"""
<div
@ -72,7 +63,9 @@ defmodule CanneryWeb.Components.ContainerCard do
<% end %>
<% end %>
<%= render_slot(@tag_actions) %>
<%= if assigns |> Map.has_key?(:tag_actions) do %>
<%= render_slot(@tag_actions) %>
<% end %>
</div>
</div>

View File

@ -4,16 +4,9 @@ defmodule CanneryWeb.Components.InviteCard do
"""
use CanneryWeb, :component
alias Cannery.Invites.Invite
alias CanneryWeb.Endpoint
attr :invite, Invite, required: true
slot(:inner_block)
slot(:code_actions)
def invite_card(assigns) do
assigns = assigns |> assign_new(:code_actions, fn -> [] end)
~H"""
<div class="mx-4 my-2 px-8 py-4 flex flex-col justify-center items-center space-y-4
border border-gray-400 rounded-lg shadow-lg hover:shadow-md
@ -41,7 +34,9 @@ defmodule CanneryWeb.Components.InviteCard do
<%= Routes.user_registration_url(Endpoint, :new, invite: @invite.token) %>
</code>
<%= render_slot(@code_actions) %>
<%= if @code_actions do %>
<%= render_slot(@code_actions) %>
<% end %>
</div>
<%= if @inner_block do %>

View File

@ -77,7 +77,7 @@ defmodule CanneryWeb.Components.MoveAmmoGroupComponent do
~H"""
<div class="w-full flex flex-col space-y-8 justify-center items-center">
<h2 class="mb-8 text-center title text-xl text-primary-600">
<%= dgettext("actions", "Move ammo") %>
<%= gettext("Move ammo") %>
</h2>
<%= if @containers |> Enum.empty?() do %>

View File

@ -36,38 +36,18 @@ defmodule CanneryWeb.Components.TableComponent do
list(%{
(key :: atom()) => any() | {custom_sort_value :: String.t(), value :: any()}
}),
optional(:inital_key) => atom(),
optional(:initial_sort_mode) => atom(),
optional(any()) => any()
},
Socket.t()
) :: {:ok, Socket.t()}
def update(%{columns: columns, rows: rows} = assigns, socket) do
initial_key =
if assigns |> Map.has_key?(:initial_key) do
assigns.initial_key
else
columns |> List.first() |> Map.get(:key)
end
initial_sort_mode =
if assigns |> Map.has_key?(:initial_sort_mode) do
assigns.initial_sort_mode
else
:asc
end
rows = rows |> Enum.sort_by(fn row -> row |> Map.get(initial_key) end, initial_sort_mode)
initial_key = columns |> List.first() |> Map.get(:key)
rows = rows |> Enum.sort_by(fn row -> row |> Map.get(initial_key) end, :asc)
socket =
socket
|> assign(assigns)
|> assign(
columns: columns,
rows: rows,
last_sort_key: initial_key,
sort_mode: initial_sort_mode
)
|> assign(columns: columns, rows: rows, last_sort_key: initial_key, sort_mode: :asc)
{:ok, socket}
end

View File

@ -4,10 +4,6 @@ defmodule CanneryWeb.Components.TagCard do
"""
use CanneryWeb, :component
alias Cannery.Tags.Tag
attr :tag, Tag, required: true
slot(:inner_block, required: true)
def tag_card(assigns) do
~H"""
@ -23,8 +19,6 @@ defmodule CanneryWeb.Components.TagCard do
"""
end
attr :tag, Tag, required: true
def simple_tag_card(assigns) do
~H"""
<h1

View File

@ -4,10 +4,6 @@ defmodule CanneryWeb.Components.UserCard do
"""
use CanneryWeb, :component
alias Cannery.Accounts.User
attr :user, User, required: true
slot(:inner_block, required: true)
def user_card(assigns) do
~H"""

View File

@ -82,8 +82,8 @@
<div class="flex flex-wrap justify-center items-center text-primary-600">
<button type="button" class="mx-4 my-2 btn btn-primary" phx-click="toggle_staged">
<%= if @ammo_group.staged,
do: dgettext("actions", "Unstage from range"),
else: dgettext("actions", "Stage for range") %>
do: gettext("Unstage from range"),
else: gettext("Stage for range") %>
</button>
<.link

View File

@ -94,7 +94,7 @@
<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">
<%= dgettext("actions", "Show used") %>
<%= gettext("Show used") %>
</span>
</.toggle_button>
</div>

View File

@ -57,11 +57,11 @@
<%= if invite.disabled_at |> is_nil() do %>
<a href="#" class="btn btn-primary" phx-click="disable_invite" phx-value-id={invite.id}>
<%= dgettext("actions", "Disable") %>
<%= gettext("Disable") %>
</a>
<% else %>
<a href="#" class="btn btn-primary" phx-click="enable_invite" phx-value-id={invite.id}>
<%= dgettext("actions", "Enable") %>
<%= gettext("Enable") %>
</a>
<% end %>
@ -77,7 +77,7 @@
)
}
>
<%= dgettext("actions", "Set Unlimited") %>
<%= gettext("Set Unlimited") %>
</a>
<% end %>
</.invite_card>

View File

@ -88,67 +88,17 @@ defmodule CanneryWeb.RangeLive.Index do
shot_groups
|> Enum.map(fn shot_group -> shot_group |> get_row_data_for_shot_group(columns) end)
chart_data =
shot_groups
|> Enum.map(fn shot_group ->
shot_group
|> get_chart_data_for_shot_group([:name, :count, :notes, :date])
end)
|> Enum.sort_by(fn %{date: date} -> date end, Date)
socket
|> assign(
ammo_groups: ammo_groups,
columns: columns,
rows: rows,
chart_data: chart_data,
shot_groups: shot_groups
)
|> assign(ammo_groups: ammo_groups, columns: columns, rows: rows, shot_groups: shot_groups)
end
@spec get_chart_data_for_shot_group(ShotGroup.t(), keys :: [atom()]) :: map()
defp get_chart_data_for_shot_group(shot_group, keys) do
shot_group = shot_group |> Repo.preload(ammo_group: :ammo_type)
labels =
if shot_group.notes do
[gettext("Notes: %{notes}", notes: shot_group.notes)]
else
[]
end
labels = [
gettext(
"Name: %{name}",
name: shot_group.ammo_group.ammo_type.name
),
gettext(
"Rounds shot: %{count}",
count: shot_group.count
)
| labels
]
keys
|> Map.new(fn key ->
value =
case key do
:name -> shot_group.ammo_group.ammo_type.name
key -> shot_group |> Map.get(key)
end
{key, value}
end)
|> Map.put(:labels, labels)
end
@spec get_row_data_for_shot_group(ShotGroup.t(), [map()]) :: map()
@spec get_row_data_for_shot_group(ShotGroup.t(), [map()]) :: [map()]
defp get_row_data_for_shot_group(%{date: date} = shot_group, columns) do
shot_group = shot_group |> Repo.preload(ammo_group: :ammo_type)
assigns = %{shot_group: shot_group}
columns
|> Map.new(fn %{key: key} ->
|> Enum.into(%{}, fn %{key: key} ->
value =
case key do
:name ->

View File

@ -27,8 +27,8 @@
data-confirm={"#{dgettext("prompts", "Are you sure you want to unstage this ammo?")}"}
>
<%= if ammo_group.staged,
do: dgettext("actions", "Unstage from range"),
else: dgettext("actions", "Stage for range") %>
do: gettext("Unstage from range"),
else: gettext("Stage for range") %>
</button>
<.link
@ -53,27 +53,11 @@
<%= gettext("Shot log") %>
</h1>
<canvas
id="shot-log-chart"
phx-hook="ShotLogChart"
phx-update="ignore"
class="max-h-72"
data-chart-data={Jason.encode!(@chart_data)}
data-label={gettext("Rounds fired")}
data-color={random_color()}
aria-label={gettext("Rounds fired chart")}
role="img"
>
<%= dgettext("errors", "Your browser does not support the canvas element.") %>
</canvas>
<.live_component
module={CanneryWeb.Components.TableComponent}
id="shot_groups_index_table"
columns={@columns}
rows={@rows}
initial_key={:date}
initial_sort_mode={:desc}
/>
<% end %>
</div>

View File

@ -6,7 +6,7 @@ defmodule CanneryWeb.TagLive.Index do
use CanneryWeb, :live_view
import CanneryWeb.Components.TagCard
alias Cannery.{Tags, Tags.Tag}
alias CanneryWeb.{Endpoint, ViewHelpers}
alias CanneryWeb.Endpoint
@impl true
def mount(_params, _session, socket), do: {:ok, socket |> display_tags()}
@ -25,7 +25,7 @@ defmodule CanneryWeb.TagLive.Index do
defp apply_action(socket, :new, _params) do
socket
|> assign(:page_title, gettext("New Tag"))
|> assign(:tag, %Tag{bg_color: ViewHelpers.random_color(), text_color: "#ffffff"})
|> assign(:tag, %Tag{bg_color: Tags.random_bg_color(), text_color: "#ffffff"})
end
defp apply_action(socket, :index, _params) do

View File

@ -115,18 +115,4 @@ defmodule CanneryWeb.ViewHelpers do
</label>
"""
end
@doc """
Get a random color in `#ffffff` hex format
## Examples
iex> random_color()
"#cc0066"
"""
@spec random_color() :: <<_::7>>
def random_color do
["#cc0066", "#ff6699", "#6666ff", "#0066cc", "#00cc66", "#669900", "#ff9900", "#996633"]
|> Enum.random()
end
end

View File

@ -211,40 +211,3 @@ msgstr ""
#, elixir-autogen, elixir-format
msgid "add an ammo type first"
msgstr ""
#: lib/cannery_web/live/invite_live/index.html.heex:60
#, elixir-autogen, elixir-format
msgid "Disable"
msgstr ""
#: lib/cannery_web/live/invite_live/index.html.heex:64
#, elixir-autogen, elixir-format
msgid "Enable"
msgstr ""
#: lib/cannery_web/components/move_ammo_group_component.ex:80
#, elixir-autogen, elixir-format
msgid "Move ammo"
msgstr ""
#: lib/cannery_web/live/invite_live/index.html.heex:80
#, elixir-autogen, elixir-format
msgid "Set Unlimited"
msgstr ""
#: lib/cannery_web/live/container_live/show.html.heex:97
#, elixir-autogen, elixir-format
msgid "Show used"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.html.heex:86
#: lib/cannery_web/live/range_live/index.html.heex:31
#, elixir-autogen, elixir-format
msgid "Stage for range"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.html.heex:85
#: lib/cannery_web/live/range_live/index.html.heex:30
#, elixir-autogen, elixir-format
msgid "Unstage from range"
msgstr ""

View File

@ -224,40 +224,3 @@ msgstr ""
#, elixir-autogen, elixir-format
msgid "add an ammo type first"
msgstr ""
#: lib/cannery_web/live/invite_live/index.html.heex:60
#, elixir-autogen, elixir-format
msgid "Disable"
msgstr ""
#: lib/cannery_web/live/invite_live/index.html.heex:64
#, elixir-autogen, elixir-format
msgid "Enable"
msgstr ""
#: lib/cannery_web/components/move_ammo_group_component.ex:80
#, elixir-autogen, elixir-format
msgid "Move ammo"
msgstr ""
#: lib/cannery_web/live/invite_live/index.html.heex:80
#, elixir-autogen, elixir-format
msgid "Set Unlimited"
msgstr ""
#: lib/cannery_web/live/container_live/show.html.heex:97
#, elixir-autogen, elixir-format
msgid "Show used"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.html.heex:86
#: lib/cannery_web/live/range_live/index.html.heex:31
#, elixir-autogen, elixir-format
msgid "Stage for range"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.html.heex:85
#: lib/cannery_web/live/range_live/index.html.heex:30
#, elixir-autogen, elixir-format
msgid "Unstage from range"
msgstr ""

View File

@ -143,7 +143,7 @@ msgstr "Korrosiv"
msgid "Count"
msgstr "Anzahl"
#: lib/cannery_web/components/ammo_group_card.ex:37
#: lib/cannery_web/components/ammo_group_card.ex:33
#: lib/cannery_web/live/ammo_group_live/show.html.heex:8
#, elixir-autogen, elixir-format
msgid "Count:"
@ -155,12 +155,17 @@ msgstr "Anzahl:"
msgid "Description"
msgstr "Beschreibung"
#: lib/cannery_web/components/container_card.ex:39
#: lib/cannery_web/components/container_card.ex:30
#: lib/cannery_web/live/container_live/show.html.heex:8
#, elixir-autogen, elixir-format
msgid "Description:"
msgstr "Beschreibung:"
#: lib/cannery_web/live/invite_live/index.html.heex:60
#, elixir-autogen, elixir-format
msgid "Disable"
msgstr "Deaktivieren"
#: lib/cannery_web/live/home_live.ex:61
#, elixir-autogen, elixir-format
msgid "Easy to Use:"
@ -187,6 +192,11 @@ msgstr "Einladung bearbeiten"
msgid "Edit Tag"
msgstr "Tag bearbeiten"
#: lib/cannery_web/live/invite_live/index.html.heex:64
#, elixir-autogen, elixir-format
msgid "Enable"
msgstr "Aktivieren"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:35
#, elixir-autogen, elixir-format
msgid "Example bullet type abbreviations"
@ -216,7 +226,7 @@ msgstr "Brandmunition"
msgid "Instance Information"
msgstr "Instanzinformationen"
#: lib/cannery_web/components/invite_card.ex:32
#: lib/cannery_web/components/invite_card.ex:25
#, elixir-autogen, elixir-format
msgid "Invite Disabled"
msgstr "Einladung deaktiviert"
@ -244,7 +254,7 @@ msgstr "Für 60 Tage eingeloggt bleiben"
msgid "Location"
msgstr "Standort"
#: lib/cannery_web/components/container_card.ex:51
#: lib/cannery_web/components/container_card.ex:42
#: lib/cannery_web/live/container_live/show.html.heex:20
#, elixir-autogen, elixir-format
msgid "Location:"
@ -341,7 +351,7 @@ msgstr "Keine Tags"
msgid "Notes"
msgstr "Bemerkungen"
#: lib/cannery_web/components/ammo_group_card.ex:43
#: lib/cannery_web/components/ammo_group_card.ex:39
#: lib/cannery_web/live/ammo_group_live/show.html.heex:24
#, elixir-autogen, elixir-format
msgid "Notes:"
@ -365,7 +375,7 @@ msgstr "Druck"
msgid "Price paid"
msgstr "Kaufpreis"
#: lib/cannery_web/components/ammo_group_card.ex:62
#: lib/cannery_web/components/ammo_group_card.ex:58
#, elixir-autogen, elixir-format
msgid "Price paid:"
msgstr "Kaufpreis:"
@ -394,6 +404,11 @@ msgstr ""
"Hosten Sie Ihre eigene Instanz oder verwenden Sie eine Instanz, der Sie "
"vertrauen."
#: lib/cannery_web/live/invite_live/index.html.heex:80
#, elixir-autogen, elixir-format
msgid "Set Unlimited"
msgstr "Unbegrenzt setzen"
#: lib/cannery_web/controllers/user_settings_controller.ex:10
#: lib/cannery_web/templates/user_settings/edit.html.heex:3
#, elixir-autogen, elixir-format
@ -455,7 +470,7 @@ msgstr "Leuchtspur"
msgid "Type"
msgstr "Art"
#: lib/cannery_web/components/container_card.ex:45
#: lib/cannery_web/components/container_card.ex:36
#: lib/cannery_web/live/container_live/show.html.heex:14
#, elixir-autogen, elixir-format
msgid "Type:"
@ -466,7 +481,7 @@ msgstr "Art:"
msgid "Users"
msgstr "Benutzer"
#: lib/cannery_web/components/invite_card.ex:27
#: lib/cannery_web/components/invite_card.ex:20
#, elixir-autogen, elixir-format
msgid "Uses Left:"
msgstr "Verbleibende Nutzung:"
@ -518,6 +533,18 @@ msgstr "Schüsse abgegeben"
msgid "No ammo staged"
msgstr "Keine Munition selektiert"
#: lib/cannery_web/live/ammo_group_live/show.html.heex:86
#: lib/cannery_web/live/range_live/index.html.heex:31
#, elixir-autogen, elixir-format
msgid "Stage for range"
msgstr "Für Schießplatz selektieren"
#: lib/cannery_web/live/ammo_group_live/show.html.heex:85
#: lib/cannery_web/live/range_live/index.html.heex:30
#, elixir-autogen, elixir-format
msgid "Unstage from range"
msgstr "Für Schießplatz deselektieren"
#: lib/cannery_web/components/add_shot_group_component.html.heex:3
#: lib/cannery_web/live/ammo_group_live/index.ex:26
#, elixir-autogen, elixir-format
@ -572,6 +599,7 @@ msgstr "Schießkladde"
msgid "Move Ammo group"
msgstr "Munitionsgruppe verschieben"
#: lib/cannery_web/components/move_ammo_group_component.ex:80
#: lib/cannery_web/live/ammo_group_live/index.ex:253
#, elixir-autogen, elixir-format
msgid "Move ammo"
@ -587,7 +615,7 @@ msgstr "Kein weiterer Behälter"
msgid "Shot log"
msgstr "Schießkladde"
#: lib/cannery_web/components/ammo_group_card.ex:63
#: lib/cannery_web/components/ammo_group_card.ex:59
#: lib/cannery_web/live/ammo_group_live/index.ex:145
#: lib/cannery_web/live/ammo_group_live/show.html.heex:37
#: lib/cannery_web/live/ammo_group_live/show.html.heex:44
@ -692,7 +720,7 @@ msgstr "%{name} bearbeiten"
msgid "Edit %{name} tags"
msgstr "Editiere %{name} Tags"
#: lib/cannery_web/components/container_card.ex:63
#: lib/cannery_web/components/container_card.ex:54
#: lib/cannery_web/live/container_live/show.html.heex:32
#, elixir-autogen, elixir-format
msgid "Rounds:"
@ -800,14 +828,14 @@ msgstr "Munitionsart"
msgid "Added on"
msgstr "Hinzugefügt am"
#: lib/cannery_web/components/ammo_group_card.ex:49
#: lib/cannery_web/components/ammo_group_card.ex:45
#: lib/cannery_web/live/ammo_group_live/show.html.heex:30
#: lib/cannery_web/live/ammo_type_live/show.html.heex:97
#, elixir-autogen, elixir-format
msgid "Added on:"
msgstr "Hinzugefügt am:"
#: lib/cannery_web/components/user_card.ex:34
#: lib/cannery_web/components/user_card.ex:30
#, elixir-autogen, elixir-format
msgid "User registered on"
msgstr "Benutzer registriert am"
@ -886,7 +914,7 @@ msgstr "Zeige Munitionsarten"
msgid "This ammo is not in a container"
msgstr "Diese Munitionsgruppe ist nicht in einem Behälter"
#: lib/cannery_web/components/container_card.ex:58
#: lib/cannery_web/components/container_card.ex:49
#: lib/cannery_web/live/container_live/show.html.heex:27
#, elixir-autogen, elixir-format
msgid "Packs:"
@ -913,13 +941,14 @@ msgstr ""
msgid "Total # of ammo"
msgstr "Summe aller Patronen"
#: lib/cannery_web/components/ammo_group_card.ex:71
#: lib/cannery_web/components/ammo_group_card.ex:67
#, elixir-autogen, elixir-format, fuzzy
msgid "Container:"
msgstr "Behälter"
#: lib/cannery_web/live/ammo_group_live/index.html.heex:48
#: lib/cannery_web/live/ammo_type_live/show.html.heex:126
#: lib/cannery_web/live/container_live/show.html.heex:97
#, elixir-autogen, elixir-format
msgid "Show used"
msgstr ""
@ -929,7 +958,7 @@ msgstr ""
msgid "Used up on"
msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:55
#: lib/cannery_web/components/ammo_group_card.ex:51
#, elixir-autogen, elixir-format
msgid "Used up on:"
msgstr ""
@ -939,28 +968,3 @@ msgstr ""
#, elixir-autogen, elixir-format
msgid "%{percentage}%"
msgstr ""
#: lib/cannery_web/live/range_live/index.ex:121
#, elixir-autogen, elixir-format
msgid "Name: %{name}"
msgstr ""
#: lib/cannery_web/live/range_live/index.ex:115
#, elixir-autogen, elixir-format
msgid "Notes: %{notes}"
msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:62
#, elixir-autogen, elixir-format, fuzzy
msgid "Rounds fired"
msgstr "Patronen verbraucht"
#: lib/cannery_web/live/range_live/index.html.heex:64
#, elixir-autogen, elixir-format
msgid "Rounds fired chart"
msgstr ""
#: lib/cannery_web/live/range_live/index.ex:125
#, elixir-autogen, elixir-format, fuzzy
msgid "Rounds shot: %{count}"
msgstr "Patronen abgefeuert"

View File

@ -201,8 +201,3 @@ msgstr ""
#, elixir-autogen, elixir-format
msgid "Please select a valid user and ammo group"
msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:67
#, elixir-autogen, elixir-format
msgid "Your browser does not support the canvas element."
msgstr ""

View File

@ -213,7 +213,7 @@ msgid "Are you sure you want to unstage this ammo?"
msgstr "Sind sie sicher, dass Sie diese Munition demarkieren möchten?"
#: lib/cannery_web/live/ammo_group_live/show.ex:132
#: lib/cannery_web/live/range_live/index.ex:181
#: lib/cannery_web/live/range_live/index.ex:131
#, elixir-autogen, elixir-format
msgid "Are you sure you want to delete this shot record?"
msgstr "Sind sie sicher, dass sie die Schießkladde löschen möchten?"

View File

@ -128,7 +128,7 @@ msgstr ""
msgid "Count"
msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:37
#: lib/cannery_web/components/ammo_group_card.ex:33
#: lib/cannery_web/live/ammo_group_live/show.html.heex:8
#, elixir-autogen, elixir-format
msgid "Count:"
@ -140,12 +140,17 @@ msgstr ""
msgid "Description"
msgstr ""
#: lib/cannery_web/components/container_card.ex:39
#: lib/cannery_web/components/container_card.ex:30
#: lib/cannery_web/live/container_live/show.html.heex:8
#, elixir-autogen, elixir-format
msgid "Description:"
msgstr ""
#: lib/cannery_web/live/invite_live/index.html.heex:60
#, elixir-autogen, elixir-format
msgid "Disable"
msgstr ""
#: lib/cannery_web/live/home_live.ex:61
#, elixir-autogen, elixir-format
msgid "Easy to Use:"
@ -172,6 +177,11 @@ msgstr ""
msgid "Edit Tag"
msgstr ""
#: lib/cannery_web/live/invite_live/index.html.heex:64
#, elixir-autogen, elixir-format
msgid "Enable"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:35
#, elixir-autogen, elixir-format
msgid "Example bullet type abbreviations"
@ -201,7 +211,7 @@ msgstr ""
msgid "Instance Information"
msgstr ""
#: lib/cannery_web/components/invite_card.ex:32
#: lib/cannery_web/components/invite_card.ex:25
#, elixir-autogen, elixir-format
msgid "Invite Disabled"
msgstr ""
@ -229,7 +239,7 @@ msgstr ""
msgid "Location"
msgstr ""
#: lib/cannery_web/components/container_card.ex:51
#: lib/cannery_web/components/container_card.ex:42
#: lib/cannery_web/live/container_live/show.html.heex:20
#, elixir-autogen, elixir-format
msgid "Location:"
@ -326,7 +336,7 @@ msgstr ""
msgid "Notes"
msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:43
#: lib/cannery_web/components/ammo_group_card.ex:39
#: lib/cannery_web/live/ammo_group_live/show.html.heex:24
#, elixir-autogen, elixir-format
msgid "Notes:"
@ -350,7 +360,7 @@ msgstr ""
msgid "Price paid"
msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:62
#: lib/cannery_web/components/ammo_group_card.ex:58
#, elixir-autogen, elixir-format
msgid "Price paid:"
msgstr ""
@ -377,6 +387,11 @@ msgstr ""
msgid "Self-host your own instance, or use an instance from someone you trust."
msgstr ""
#: lib/cannery_web/live/invite_live/index.html.heex:80
#, elixir-autogen, elixir-format
msgid "Set Unlimited"
msgstr ""
#: lib/cannery_web/controllers/user_settings_controller.ex:10
#: lib/cannery_web/templates/user_settings/edit.html.heex:3
#, elixir-autogen, elixir-format
@ -438,7 +453,7 @@ msgstr ""
msgid "Type"
msgstr ""
#: lib/cannery_web/components/container_card.ex:45
#: lib/cannery_web/components/container_card.ex:36
#: lib/cannery_web/live/container_live/show.html.heex:14
#, elixir-autogen, elixir-format
msgid "Type:"
@ -449,7 +464,7 @@ msgstr ""
msgid "Users"
msgstr ""
#: lib/cannery_web/components/invite_card.ex:27
#: lib/cannery_web/components/invite_card.ex:20
#, elixir-autogen, elixir-format
msgid "Uses Left:"
msgstr ""
@ -501,6 +516,18 @@ msgstr ""
msgid "No ammo staged"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.html.heex:86
#: lib/cannery_web/live/range_live/index.html.heex:31
#, elixir-autogen, elixir-format
msgid "Stage for range"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.html.heex:85
#: lib/cannery_web/live/range_live/index.html.heex:30
#, elixir-autogen, elixir-format
msgid "Unstage from range"
msgstr ""
#: lib/cannery_web/components/add_shot_group_component.html.heex:3
#: lib/cannery_web/live/ammo_group_live/index.ex:26
#, elixir-autogen, elixir-format
@ -555,6 +582,7 @@ msgstr ""
msgid "Move Ammo group"
msgstr ""
#: lib/cannery_web/components/move_ammo_group_component.ex:80
#: lib/cannery_web/live/ammo_group_live/index.ex:253
#, elixir-autogen, elixir-format
msgid "Move ammo"
@ -570,7 +598,7 @@ msgstr ""
msgid "Shot log"
msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:63
#: lib/cannery_web/components/ammo_group_card.ex:59
#: lib/cannery_web/live/ammo_group_live/index.ex:145
#: lib/cannery_web/live/ammo_group_live/show.html.heex:37
#: lib/cannery_web/live/ammo_group_live/show.html.heex:44
@ -675,7 +703,7 @@ msgstr ""
msgid "Edit %{name} tags"
msgstr ""
#: lib/cannery_web/components/container_card.ex:63
#: lib/cannery_web/components/container_card.ex:54
#: lib/cannery_web/live/container_live/show.html.heex:32
#, elixir-autogen, elixir-format
msgid "Rounds:"
@ -783,14 +811,14 @@ msgstr ""
msgid "Added on"
msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:49
#: lib/cannery_web/components/ammo_group_card.ex:45
#: lib/cannery_web/live/ammo_group_live/show.html.heex:30
#: lib/cannery_web/live/ammo_type_live/show.html.heex:97
#, elixir-autogen, elixir-format
msgid "Added on:"
msgstr ""
#: lib/cannery_web/components/user_card.ex:34
#: lib/cannery_web/components/user_card.ex:30
#, elixir-autogen, elixir-format
msgid "User registered on"
msgstr ""
@ -869,7 +897,7 @@ msgstr ""
msgid "This ammo is not in a container"
msgstr ""
#: lib/cannery_web/components/container_card.ex:58
#: lib/cannery_web/components/container_card.ex:49
#: lib/cannery_web/live/container_live/show.html.heex:27
#, elixir-autogen, elixir-format
msgid "Packs:"
@ -896,13 +924,14 @@ msgstr ""
msgid "Total # of ammo"
msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:71
#: lib/cannery_web/components/ammo_group_card.ex:67
#, elixir-autogen, elixir-format
msgid "Container:"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:48
#: lib/cannery_web/live/ammo_type_live/show.html.heex:126
#: lib/cannery_web/live/container_live/show.html.heex:97
#, elixir-autogen, elixir-format
msgid "Show used"
msgstr ""
@ -912,7 +941,7 @@ msgstr ""
msgid "Used up on"
msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:55
#: lib/cannery_web/components/ammo_group_card.ex:51
#, elixir-autogen, elixir-format
msgid "Used up on:"
msgstr ""
@ -922,28 +951,3 @@ msgstr ""
#, elixir-autogen, elixir-format
msgid "%{percentage}%"
msgstr ""
#: lib/cannery_web/live/range_live/index.ex:121
#, elixir-autogen, elixir-format
msgid "Name: %{name}"
msgstr ""
#: lib/cannery_web/live/range_live/index.ex:115
#, elixir-autogen, elixir-format
msgid "Notes: %{notes}"
msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:62
#, elixir-autogen, elixir-format
msgid "Rounds fired"
msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:64
#, elixir-autogen, elixir-format
msgid "Rounds fired chart"
msgstr ""
#: lib/cannery_web/live/range_live/index.ex:125
#, elixir-autogen, elixir-format
msgid "Rounds shot: %{count}"
msgstr ""

View File

@ -212,40 +212,3 @@ msgstr ""
#, elixir-autogen, elixir-format
msgid "add an ammo type first"
msgstr ""
#: lib/cannery_web/live/invite_live/index.html.heex:60
#, elixir-autogen, elixir-format
msgid "Disable"
msgstr ""
#: lib/cannery_web/live/invite_live/index.html.heex:64
#, elixir-autogen, elixir-format
msgid "Enable"
msgstr ""
#: lib/cannery_web/components/move_ammo_group_component.ex:80
#, elixir-autogen, elixir-format
msgid "Move ammo"
msgstr ""
#: lib/cannery_web/live/invite_live/index.html.heex:80
#, elixir-autogen, elixir-format
msgid "Set Unlimited"
msgstr ""
#: lib/cannery_web/live/container_live/show.html.heex:97
#, elixir-autogen, elixir-format
msgid "Show used"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.html.heex:86
#: lib/cannery_web/live/range_live/index.html.heex:31
#, elixir-autogen, elixir-format
msgid "Stage for range"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.html.heex:85
#: lib/cannery_web/live/range_live/index.html.heex:30
#, elixir-autogen, elixir-format
msgid "Unstage from range"
msgstr ""

View File

@ -129,7 +129,7 @@ msgstr ""
msgid "Count"
msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:37
#: lib/cannery_web/components/ammo_group_card.ex:33
#: lib/cannery_web/live/ammo_group_live/show.html.heex:8
#, elixir-autogen, elixir-format
msgid "Count:"
@ -141,12 +141,17 @@ msgstr ""
msgid "Description"
msgstr ""
#: lib/cannery_web/components/container_card.ex:39
#: lib/cannery_web/components/container_card.ex:30
#: lib/cannery_web/live/container_live/show.html.heex:8
#, elixir-autogen, elixir-format
msgid "Description:"
msgstr ""
#: lib/cannery_web/live/invite_live/index.html.heex:60
#, elixir-autogen, elixir-format
msgid "Disable"
msgstr ""
#: lib/cannery_web/live/home_live.ex:61
#, elixir-autogen, elixir-format
msgid "Easy to Use:"
@ -173,6 +178,11 @@ msgstr ""
msgid "Edit Tag"
msgstr ""
#: lib/cannery_web/live/invite_live/index.html.heex:64
#, elixir-autogen, elixir-format
msgid "Enable"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:35
#, elixir-autogen, elixir-format
msgid "Example bullet type abbreviations"
@ -202,7 +212,7 @@ msgstr ""
msgid "Instance Information"
msgstr ""
#: lib/cannery_web/components/invite_card.ex:32
#: lib/cannery_web/components/invite_card.ex:25
#, elixir-autogen, elixir-format
msgid "Invite Disabled"
msgstr ""
@ -230,7 +240,7 @@ msgstr ""
msgid "Location"
msgstr ""
#: lib/cannery_web/components/container_card.ex:51
#: lib/cannery_web/components/container_card.ex:42
#: lib/cannery_web/live/container_live/show.html.heex:20
#, elixir-autogen, elixir-format
msgid "Location:"
@ -327,7 +337,7 @@ msgstr ""
msgid "Notes"
msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:43
#: lib/cannery_web/components/ammo_group_card.ex:39
#: lib/cannery_web/live/ammo_group_live/show.html.heex:24
#, elixir-autogen, elixir-format
msgid "Notes:"
@ -351,7 +361,7 @@ msgstr ""
msgid "Price paid"
msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:62
#: lib/cannery_web/components/ammo_group_card.ex:58
#, elixir-autogen, elixir-format
msgid "Price paid:"
msgstr ""
@ -378,6 +388,11 @@ msgstr ""
msgid "Self-host your own instance, or use an instance from someone you trust."
msgstr ""
#: lib/cannery_web/live/invite_live/index.html.heex:80
#, elixir-autogen, elixir-format
msgid "Set Unlimited"
msgstr ""
#: lib/cannery_web/controllers/user_settings_controller.ex:10
#: lib/cannery_web/templates/user_settings/edit.html.heex:3
#, elixir-autogen, elixir-format
@ -439,7 +454,7 @@ msgstr ""
msgid "Type"
msgstr ""
#: lib/cannery_web/components/container_card.ex:45
#: lib/cannery_web/components/container_card.ex:36
#: lib/cannery_web/live/container_live/show.html.heex:14
#, elixir-autogen, elixir-format
msgid "Type:"
@ -450,7 +465,7 @@ msgstr ""
msgid "Users"
msgstr ""
#: lib/cannery_web/components/invite_card.ex:27
#: lib/cannery_web/components/invite_card.ex:20
#, elixir-autogen, elixir-format
msgid "Uses Left:"
msgstr ""
@ -502,6 +517,18 @@ msgstr ""
msgid "No ammo staged"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.html.heex:86
#: lib/cannery_web/live/range_live/index.html.heex:31
#, elixir-autogen, elixir-format
msgid "Stage for range"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.html.heex:85
#: lib/cannery_web/live/range_live/index.html.heex:30
#, elixir-autogen, elixir-format
msgid "Unstage from range"
msgstr ""
#: lib/cannery_web/components/add_shot_group_component.html.heex:3
#: lib/cannery_web/live/ammo_group_live/index.ex:26
#, elixir-autogen, elixir-format
@ -556,6 +583,7 @@ msgstr ""
msgid "Move Ammo group"
msgstr ""
#: lib/cannery_web/components/move_ammo_group_component.ex:80
#: lib/cannery_web/live/ammo_group_live/index.ex:253
#, elixir-autogen, elixir-format
msgid "Move ammo"
@ -571,7 +599,7 @@ msgstr ""
msgid "Shot log"
msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:63
#: lib/cannery_web/components/ammo_group_card.ex:59
#: lib/cannery_web/live/ammo_group_live/index.ex:145
#: lib/cannery_web/live/ammo_group_live/show.html.heex:37
#: lib/cannery_web/live/ammo_group_live/show.html.heex:44
@ -676,7 +704,7 @@ msgstr ""
msgid "Edit %{name} tags"
msgstr ""
#: lib/cannery_web/components/container_card.ex:63
#: lib/cannery_web/components/container_card.ex:54
#: lib/cannery_web/live/container_live/show.html.heex:32
#, elixir-autogen, elixir-format, fuzzy
msgid "Rounds:"
@ -784,14 +812,14 @@ msgstr ""
msgid "Added on"
msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:49
#: lib/cannery_web/components/ammo_group_card.ex:45
#: lib/cannery_web/live/ammo_group_live/show.html.heex:30
#: lib/cannery_web/live/ammo_type_live/show.html.heex:97
#, elixir-autogen, elixir-format
msgid "Added on:"
msgstr ""
#: lib/cannery_web/components/user_card.ex:34
#: lib/cannery_web/components/user_card.ex:30
#, elixir-autogen, elixir-format
msgid "User registered on"
msgstr ""
@ -870,7 +898,7 @@ msgstr ""
msgid "This ammo is not in a container"
msgstr ""
#: lib/cannery_web/components/container_card.ex:58
#: lib/cannery_web/components/container_card.ex:49
#: lib/cannery_web/live/container_live/show.html.heex:27
#, elixir-autogen, elixir-format
msgid "Packs:"
@ -897,13 +925,14 @@ msgstr ""
msgid "Total # of ammo"
msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:71
#: lib/cannery_web/components/ammo_group_card.ex:67
#, elixir-autogen, elixir-format, fuzzy
msgid "Container:"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:48
#: lib/cannery_web/live/ammo_type_live/show.html.heex:126
#: lib/cannery_web/live/container_live/show.html.heex:97
#, elixir-autogen, elixir-format
msgid "Show used"
msgstr ""
@ -913,7 +942,7 @@ msgstr ""
msgid "Used up on"
msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:55
#: lib/cannery_web/components/ammo_group_card.ex:51
#, elixir-autogen, elixir-format
msgid "Used up on:"
msgstr ""
@ -923,28 +952,3 @@ msgstr ""
#, elixir-autogen, elixir-format
msgid "%{percentage}%"
msgstr ""
#: lib/cannery_web/live/range_live/index.ex:121
#, elixir-autogen, elixir-format
msgid "Name: %{name}"
msgstr ""
#: lib/cannery_web/live/range_live/index.ex:115
#, elixir-autogen, elixir-format
msgid "Notes: %{notes}"
msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:62
#, elixir-autogen, elixir-format, fuzzy
msgid "Rounds fired"
msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:64
#, elixir-autogen, elixir-format
msgid "Rounds fired chart"
msgstr ""
#: lib/cannery_web/live/range_live/index.ex:125
#, elixir-autogen, elixir-format, fuzzy
msgid "Rounds shot: %{count}"
msgstr ""

View File

@ -184,8 +184,3 @@ msgstr ""
#, elixir-autogen, elixir-format
msgid "Please select a valid user and ammo group"
msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:67
#, elixir-autogen, elixir-format
msgid "Your browser does not support the canvas element."
msgstr ""

View File

@ -193,7 +193,7 @@ msgid "Are you sure you want to unstage this ammo?"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.ex:132
#: lib/cannery_web/live/range_live/index.ex:181
#: lib/cannery_web/live/range_live/index.ex:131
#, elixir-autogen, elixir-format
msgid "Are you sure you want to delete this shot record?"
msgstr ""

View File

@ -183,8 +183,3 @@ msgstr ""
#, elixir-autogen, elixir-format
msgid "Please select a valid user and ammo group"
msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:67
#, elixir-autogen, elixir-format
msgid "Your browser does not support the canvas element."
msgstr ""

View File

@ -224,40 +224,3 @@ msgstr ""
#, elixir-autogen, elixir-format
msgid "add an ammo type first"
msgstr ""
#: lib/cannery_web/live/invite_live/index.html.heex:60
#, elixir-autogen, elixir-format
msgid "Disable"
msgstr ""
#: lib/cannery_web/live/invite_live/index.html.heex:64
#, elixir-autogen, elixir-format
msgid "Enable"
msgstr ""
#: lib/cannery_web/components/move_ammo_group_component.ex:80
#, elixir-autogen, elixir-format
msgid "Move ammo"
msgstr ""
#: lib/cannery_web/live/invite_live/index.html.heex:80
#, elixir-autogen, elixir-format
msgid "Set Unlimited"
msgstr ""
#: lib/cannery_web/live/container_live/show.html.heex:97
#, elixir-autogen, elixir-format
msgid "Show used"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.html.heex:86
#: lib/cannery_web/live/range_live/index.html.heex:31
#, elixir-autogen, elixir-format
msgid "Stage for range"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.html.heex:85
#: lib/cannery_web/live/range_live/index.html.heex:30
#, elixir-autogen, elixir-format
msgid "Unstage from range"
msgstr ""

View File

@ -143,7 +143,7 @@ msgstr ""
msgid "Count"
msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:37
#: lib/cannery_web/components/ammo_group_card.ex:33
#: lib/cannery_web/live/ammo_group_live/show.html.heex:8
#, elixir-autogen, elixir-format
msgid "Count:"
@ -155,12 +155,17 @@ msgstr ""
msgid "Description"
msgstr ""
#: lib/cannery_web/components/container_card.ex:39
#: lib/cannery_web/components/container_card.ex:30
#: lib/cannery_web/live/container_live/show.html.heex:8
#, elixir-autogen, elixir-format
msgid "Description:"
msgstr ""
#: lib/cannery_web/live/invite_live/index.html.heex:60
#, elixir-autogen, elixir-format
msgid "Disable"
msgstr ""
#: lib/cannery_web/live/home_live.ex:61
#, elixir-autogen, elixir-format
msgid "Easy to Use:"
@ -187,6 +192,11 @@ msgstr ""
msgid "Edit Tag"
msgstr ""
#: lib/cannery_web/live/invite_live/index.html.heex:64
#, elixir-autogen, elixir-format
msgid "Enable"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:35
#, elixir-autogen, elixir-format
msgid "Example bullet type abbreviations"
@ -216,7 +226,7 @@ msgstr ""
msgid "Instance Information"
msgstr ""
#: lib/cannery_web/components/invite_card.ex:32
#: lib/cannery_web/components/invite_card.ex:25
#, elixir-autogen, elixir-format
msgid "Invite Disabled"
msgstr ""
@ -244,7 +254,7 @@ msgstr ""
msgid "Location"
msgstr ""
#: lib/cannery_web/components/container_card.ex:51
#: lib/cannery_web/components/container_card.ex:42
#: lib/cannery_web/live/container_live/show.html.heex:20
#, elixir-autogen, elixir-format
msgid "Location:"
@ -341,7 +351,7 @@ msgstr ""
msgid "Notes"
msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:43
#: lib/cannery_web/components/ammo_group_card.ex:39
#: lib/cannery_web/live/ammo_group_live/show.html.heex:24
#, elixir-autogen, elixir-format
msgid "Notes:"
@ -365,7 +375,7 @@ msgstr ""
msgid "Price paid"
msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:62
#: lib/cannery_web/components/ammo_group_card.ex:58
#, elixir-autogen, elixir-format
msgid "Price paid:"
msgstr ""
@ -392,6 +402,11 @@ msgstr ""
msgid "Self-host your own instance, or use an instance from someone you trust."
msgstr ""
#: lib/cannery_web/live/invite_live/index.html.heex:80
#, elixir-autogen, elixir-format
msgid "Set Unlimited"
msgstr ""
#: lib/cannery_web/controllers/user_settings_controller.ex:10
#: lib/cannery_web/templates/user_settings/edit.html.heex:3
#, elixir-autogen, elixir-format
@ -453,7 +468,7 @@ msgstr ""
msgid "Type"
msgstr ""
#: lib/cannery_web/components/container_card.ex:45
#: lib/cannery_web/components/container_card.ex:36
#: lib/cannery_web/live/container_live/show.html.heex:14
#, elixir-autogen, elixir-format
msgid "Type:"
@ -464,7 +479,7 @@ msgstr ""
msgid "Users"
msgstr ""
#: lib/cannery_web/components/invite_card.ex:27
#: lib/cannery_web/components/invite_card.ex:20
#, elixir-autogen, elixir-format
msgid "Uses Left:"
msgstr ""
@ -516,6 +531,18 @@ msgstr ""
msgid "No ammo staged"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.html.heex:86
#: lib/cannery_web/live/range_live/index.html.heex:31
#, elixir-autogen, elixir-format
msgid "Stage for range"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.html.heex:85
#: lib/cannery_web/live/range_live/index.html.heex:30
#, elixir-autogen, elixir-format
msgid "Unstage from range"
msgstr ""
#: lib/cannery_web/components/add_shot_group_component.html.heex:3
#: lib/cannery_web/live/ammo_group_live/index.ex:26
#, elixir-autogen, elixir-format
@ -570,6 +597,7 @@ msgstr ""
msgid "Move Ammo group"
msgstr ""
#: lib/cannery_web/components/move_ammo_group_component.ex:80
#: lib/cannery_web/live/ammo_group_live/index.ex:253
#, elixir-autogen, elixir-format
msgid "Move ammo"
@ -585,7 +613,7 @@ msgstr ""
msgid "Shot log"
msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:63
#: lib/cannery_web/components/ammo_group_card.ex:59
#: lib/cannery_web/live/ammo_group_live/index.ex:145
#: lib/cannery_web/live/ammo_group_live/show.html.heex:37
#: lib/cannery_web/live/ammo_group_live/show.html.heex:44
@ -690,7 +718,7 @@ msgstr ""
msgid "Edit %{name} tags"
msgstr ""
#: lib/cannery_web/components/container_card.ex:63
#: lib/cannery_web/components/container_card.ex:54
#: lib/cannery_web/live/container_live/show.html.heex:32
#, elixir-autogen, elixir-format
msgid "Rounds:"
@ -798,14 +826,14 @@ msgstr ""
msgid "Added on"
msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:49
#: lib/cannery_web/components/ammo_group_card.ex:45
#: lib/cannery_web/live/ammo_group_live/show.html.heex:30
#: lib/cannery_web/live/ammo_type_live/show.html.heex:97
#, elixir-autogen, elixir-format
msgid "Added on:"
msgstr ""
#: lib/cannery_web/components/user_card.ex:34
#: lib/cannery_web/components/user_card.ex:30
#, elixir-autogen, elixir-format
msgid "User registered on"
msgstr ""
@ -884,7 +912,7 @@ msgstr ""
msgid "This ammo is not in a container"
msgstr ""
#: lib/cannery_web/components/container_card.ex:58
#: lib/cannery_web/components/container_card.ex:49
#: lib/cannery_web/live/container_live/show.html.heex:27
#, elixir-autogen, elixir-format
msgid "Packs:"
@ -911,13 +939,14 @@ msgstr ""
msgid "Total # of ammo"
msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:71
#: lib/cannery_web/components/ammo_group_card.ex:67
#, elixir-autogen, elixir-format, fuzzy
msgid "Container:"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:48
#: lib/cannery_web/live/ammo_type_live/show.html.heex:126
#: lib/cannery_web/live/container_live/show.html.heex:97
#, elixir-autogen, elixir-format
msgid "Show used"
msgstr ""
@ -927,7 +956,7 @@ msgstr ""
msgid "Used up on"
msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:55
#: lib/cannery_web/components/ammo_group_card.ex:51
#, elixir-autogen, elixir-format
msgid "Used up on:"
msgstr ""
@ -937,28 +966,3 @@ msgstr ""
#, elixir-autogen, elixir-format
msgid "%{percentage}%"
msgstr ""
#: lib/cannery_web/live/range_live/index.ex:121
#, elixir-autogen, elixir-format
msgid "Name: %{name}"
msgstr ""
#: lib/cannery_web/live/range_live/index.ex:115
#, elixir-autogen, elixir-format
msgid "Notes: %{notes}"
msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:62
#, elixir-autogen, elixir-format, fuzzy
msgid "Rounds fired"
msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:64
#, elixir-autogen, elixir-format
msgid "Rounds fired chart"
msgstr ""
#: lib/cannery_web/live/range_live/index.ex:125
#, elixir-autogen, elixir-format, fuzzy
msgid "Rounds shot: %{count}"
msgstr ""

View File

@ -199,8 +199,3 @@ msgstr ""
#, elixir-autogen, elixir-format
msgid "Please select a valid user and ammo group"
msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:67
#, elixir-autogen, elixir-format
msgid "Your browser does not support the canvas element."
msgstr ""

View File

@ -212,7 +212,7 @@ msgid "Are you sure you want to unstage this ammo?"
msgstr "Está seguro que desea desmontar esta munición?"
#: lib/cannery_web/live/ammo_group_live/show.ex:132
#: lib/cannery_web/live/range_live/index.ex:181
#: lib/cannery_web/live/range_live/index.ex:131
#, elixir-autogen, elixir-format
msgid "Are you sure you want to delete this shot record?"
msgstr ""

View File

@ -224,40 +224,3 @@ msgstr "Voir en catalogue"
#, elixir-autogen, elixir-format
msgid "add an ammo type first"
msgstr "Ajoutez d'abord un type de munitions"
#: lib/cannery_web/live/invite_live/index.html.heex:60
#, elixir-autogen, elixir-format
msgid "Disable"
msgstr ""
#: lib/cannery_web/live/invite_live/index.html.heex:64
#, elixir-autogen, elixir-format
msgid "Enable"
msgstr ""
#: lib/cannery_web/components/move_ammo_group_component.ex:80
#, elixir-autogen, elixir-format
msgid "Move ammo"
msgstr ""
#: lib/cannery_web/live/invite_live/index.html.heex:80
#, elixir-autogen, elixir-format
msgid "Set Unlimited"
msgstr ""
#: lib/cannery_web/live/container_live/show.html.heex:97
#, elixir-autogen, elixir-format
msgid "Show used"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.html.heex:86
#: lib/cannery_web/live/range_live/index.html.heex:31
#, elixir-autogen, elixir-format
msgid "Stage for range"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.html.heex:85
#: lib/cannery_web/live/range_live/index.html.heex:30
#, elixir-autogen, elixir-format
msgid "Unstage from range"
msgstr ""

View File

@ -143,7 +143,7 @@ msgstr "Corrosive"
msgid "Count"
msgstr "Quantité"
#: lib/cannery_web/components/ammo_group_card.ex:37
#: lib/cannery_web/components/ammo_group_card.ex:33
#: lib/cannery_web/live/ammo_group_live/show.html.heex:8
#, elixir-autogen, elixir-format
msgid "Count:"
@ -155,12 +155,17 @@ msgstr "Quantité:"
msgid "Description"
msgstr "Description"
#: lib/cannery_web/components/container_card.ex:39
#: lib/cannery_web/components/container_card.ex:30
#: lib/cannery_web/live/container_live/show.html.heex:8
#, elixir-autogen, elixir-format
msgid "Description:"
msgstr "Description:"
#: lib/cannery_web/live/invite_live/index.html.heex:60
#, elixir-autogen, elixir-format
msgid "Disable"
msgstr "Désactiver"
#: lib/cannery_web/live/home_live.ex:61
#, elixir-autogen, elixir-format
msgid "Easy to Use:"
@ -187,6 +192,11 @@ msgstr "Modifier linvitation"
msgid "Edit Tag"
msgstr "Modifier le tag"
#: lib/cannery_web/live/invite_live/index.html.heex:64
#, elixir-autogen, elixir-format
msgid "Enable"
msgstr "Activer"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:35
#, elixir-autogen, elixir-format
msgid "Example bullet type abbreviations"
@ -216,7 +226,7 @@ msgstr "Incendiaire"
msgid "Instance Information"
msgstr "Information de linstance"
#: lib/cannery_web/components/invite_card.ex:32
#: lib/cannery_web/components/invite_card.ex:25
#, elixir-autogen, elixir-format
msgid "Invite Disabled"
msgstr "Invitation désactivée"
@ -244,7 +254,7 @@ msgstr "Me garder authentifié durant 60 jours"
msgid "Location"
msgstr "Localisation"
#: lib/cannery_web/components/container_card.ex:51
#: lib/cannery_web/components/container_card.ex:42
#: lib/cannery_web/live/container_live/show.html.heex:20
#, elixir-autogen, elixir-format
msgid "Location:"
@ -341,7 +351,7 @@ msgstr "Aucun tag"
msgid "Notes"
msgstr "Notes"
#: lib/cannery_web/components/ammo_group_card.ex:43
#: lib/cannery_web/components/ammo_group_card.ex:39
#: lib/cannery_web/live/ammo_group_live/show.html.heex:24
#, elixir-autogen, elixir-format
msgid "Notes:"
@ -365,7 +375,7 @@ msgstr "Pression"
msgid "Price paid"
msgstr "Prix payé"
#: lib/cannery_web/components/ammo_group_card.ex:62
#: lib/cannery_web/components/ammo_group_card.ex:58
#, elixir-autogen, elixir-format
msgid "Price paid:"
msgstr "Prix payé:"
@ -394,6 +404,11 @@ msgstr ""
"Auto-hébergez votre propre instance ou utilisez celle dune personne à "
"laquelle vous faîtes confiance."
#: lib/cannery_web/live/invite_live/index.html.heex:80
#, elixir-autogen, elixir-format
msgid "Set Unlimited"
msgstr "Mettre illimité"
#: lib/cannery_web/controllers/user_settings_controller.ex:10
#: lib/cannery_web/templates/user_settings/edit.html.heex:3
#, elixir-autogen, elixir-format
@ -457,7 +472,7 @@ msgstr "Traceuse"
msgid "Type"
msgstr "Type"
#: lib/cannery_web/components/container_card.ex:45
#: lib/cannery_web/components/container_card.ex:36
#: lib/cannery_web/live/container_live/show.html.heex:14
#, elixir-autogen, elixir-format
msgid "Type:"
@ -468,7 +483,7 @@ msgstr "Type:"
msgid "Users"
msgstr "Utilisateurs"
#: lib/cannery_web/components/invite_card.ex:27
#: lib/cannery_web/components/invite_card.ex:20
#, elixir-autogen, elixir-format
msgid "Uses Left:"
msgstr "Utilisations restantes:"
@ -520,6 +535,18 @@ msgstr "Tirs réalisés"
msgid "No ammo staged"
msgstr "Aucune munition sélectionnée"
#: lib/cannery_web/live/ammo_group_live/show.html.heex:86
#: lib/cannery_web/live/range_live/index.html.heex:31
#, elixir-autogen, elixir-format
msgid "Stage for range"
msgstr "Sélectionné pour le stand"
#: lib/cannery_web/live/ammo_group_live/show.html.heex:85
#: lib/cannery_web/live/range_live/index.html.heex:30
#, elixir-autogen, elixir-format
msgid "Unstage from range"
msgstr "Désélectionner pour le stand"
#: lib/cannery_web/components/add_shot_group_component.html.heex:3
#: lib/cannery_web/live/ammo_group_live/index.ex:26
#, elixir-autogen, elixir-format
@ -574,6 +601,7 @@ msgstr "Enregistrements de tir"
msgid "Move Ammo group"
msgstr "Déplacer le groupe de munition"
#: lib/cannery_web/components/move_ammo_group_component.ex:80
#: lib/cannery_web/live/ammo_group_live/index.ex:253
#, elixir-autogen, elixir-format
msgid "Move ammo"
@ -589,7 +617,7 @@ msgstr "Aucun autre conteneur"
msgid "Shot log"
msgstr "Évènements de tir"
#: lib/cannery_web/components/ammo_group_card.ex:63
#: lib/cannery_web/components/ammo_group_card.ex:59
#: lib/cannery_web/live/ammo_group_live/index.ex:145
#: lib/cannery_web/live/ammo_group_live/show.html.heex:37
#: lib/cannery_web/live/ammo_group_live/show.html.heex:44
@ -694,7 +722,7 @@ msgstr "Éditer %{name}"
msgid "Edit %{name} tags"
msgstr "Éditer les tags de %{name}"
#: lib/cannery_web/components/container_card.ex:63
#: lib/cannery_web/components/container_card.ex:54
#: lib/cannery_web/live/container_live/show.html.heex:32
#, elixir-autogen, elixir-format
msgid "Rounds:"
@ -802,14 +830,14 @@ msgstr "Types de munition"
msgid "Added on"
msgstr "Ajouté le"
#: lib/cannery_web/components/ammo_group_card.ex:49
#: lib/cannery_web/components/ammo_group_card.ex:45
#: lib/cannery_web/live/ammo_group_live/show.html.heex:30
#: lib/cannery_web/live/ammo_type_live/show.html.heex:97
#, elixir-autogen, elixir-format
msgid "Added on:"
msgstr "Ajouté le:"
#: lib/cannery_web/components/user_card.ex:34
#: lib/cannery_web/components/user_card.ex:30
#, elixir-autogen, elixir-format
msgid "User registered on"
msgstr "Utilisateur·ice enregistré·e le"
@ -888,7 +916,7 @@ msgstr "Montrer le type de munition"
msgid "This ammo is not in a container"
msgstr "Ce groupe de munition nest pas dans un conteneur"
#: lib/cannery_web/components/container_card.ex:58
#: lib/cannery_web/components/container_card.ex:49
#: lib/cannery_web/live/container_live/show.html.heex:27
#, elixir-autogen, elixir-format
msgid "Packs:"
@ -916,13 +944,14 @@ msgstr ""
msgid "Total # of ammo"
msgstr "Quantité de cartouches"
#: lib/cannery_web/components/ammo_group_card.ex:71
#: lib/cannery_web/components/ammo_group_card.ex:67
#, elixir-autogen, elixir-format, fuzzy
msgid "Container:"
msgstr "Conteneur"
#: lib/cannery_web/live/ammo_group_live/index.html.heex:48
#: lib/cannery_web/live/ammo_type_live/show.html.heex:126
#: lib/cannery_web/live/container_live/show.html.heex:97
#, elixir-autogen, elixir-format
msgid "Show used"
msgstr ""
@ -932,7 +961,7 @@ msgstr ""
msgid "Used up on"
msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:55
#: lib/cannery_web/components/ammo_group_card.ex:51
#, elixir-autogen, elixir-format
msgid "Used up on:"
msgstr ""
@ -942,28 +971,3 @@ msgstr ""
#, elixir-autogen, elixir-format
msgid "%{percentage}%"
msgstr ""
#: lib/cannery_web/live/range_live/index.ex:121
#, elixir-autogen, elixir-format
msgid "Name: %{name}"
msgstr ""
#: lib/cannery_web/live/range_live/index.ex:115
#, elixir-autogen, elixir-format
msgid "Notes: %{notes}"
msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:62
#, elixir-autogen, elixir-format, fuzzy
msgid "Rounds fired"
msgstr "Cartouches utilisées"
#: lib/cannery_web/live/range_live/index.html.heex:64
#, elixir-autogen, elixir-format
msgid "Rounds fired chart"
msgstr ""
#: lib/cannery_web/live/range_live/index.ex:125
#, elixir-autogen, elixir-format, fuzzy
msgid "Rounds shot: %{count}"
msgstr "Cartouches tirées"

View File

@ -200,8 +200,3 @@ msgstr "Veuillez choisir un type de munitions et un conteneur"
#, elixir-autogen, elixir-format
msgid "Please select a valid user and ammo group"
msgstr "Veuillez choisir un utilisateur valide et un groupe de munitions"
#: lib/cannery_web/live/range_live/index.html.heex:67
#, elixir-autogen, elixir-format
msgid "Your browser does not support the canvas element."
msgstr ""

View File

@ -214,7 +214,7 @@ msgid "Are you sure you want to unstage this ammo?"
msgstr "Êtes-vous certain·e de vouloir désélectionner cette munition?"
#: lib/cannery_web/live/ammo_group_live/show.ex:132
#: lib/cannery_web/live/range_live/index.ex:181
#: lib/cannery_web/live/range_live/index.ex:131
#, elixir-autogen, elixir-format
msgid "Are you sure you want to delete this shot record?"
msgstr "Êtes-vous certain·e de vouloir supprimer cet enregistrement de tir?"

View File

@ -222,40 +222,3 @@ msgstr ""
#, elixir-autogen, elixir-format
msgid "add an ammo type first"
msgstr ""
#: lib/cannery_web/live/invite_live/index.html.heex:60
#, elixir-autogen, elixir-format
msgid "Disable"
msgstr ""
#: lib/cannery_web/live/invite_live/index.html.heex:64
#, elixir-autogen, elixir-format
msgid "Enable"
msgstr ""
#: lib/cannery_web/components/move_ammo_group_component.ex:80
#, elixir-autogen, elixir-format
msgid "Move ammo"
msgstr ""
#: lib/cannery_web/live/invite_live/index.html.heex:80
#, elixir-autogen, elixir-format
msgid "Set Unlimited"
msgstr ""
#: lib/cannery_web/live/container_live/show.html.heex:97
#, elixir-autogen, elixir-format
msgid "Show used"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.html.heex:86
#: lib/cannery_web/live/range_live/index.html.heex:31
#, elixir-autogen, elixir-format
msgid "Stage for range"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.html.heex:85
#: lib/cannery_web/live/range_live/index.html.heex:30
#, elixir-autogen, elixir-format
msgid "Unstage from range"
msgstr ""

View File

@ -139,7 +139,7 @@ msgstr ""
msgid "Count"
msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:37
#: lib/cannery_web/components/ammo_group_card.ex:33
#: lib/cannery_web/live/ammo_group_live/show.html.heex:8
#, elixir-autogen, elixir-format
msgid "Count:"
@ -151,12 +151,17 @@ msgstr ""
msgid "Description"
msgstr ""
#: lib/cannery_web/components/container_card.ex:39
#: lib/cannery_web/components/container_card.ex:30
#: lib/cannery_web/live/container_live/show.html.heex:8
#, elixir-autogen, elixir-format
msgid "Description:"
msgstr ""
#: lib/cannery_web/live/invite_live/index.html.heex:60
#, elixir-autogen, elixir-format
msgid "Disable"
msgstr ""
#: lib/cannery_web/live/home_live.ex:61
#, elixir-autogen, elixir-format
msgid "Easy to Use:"
@ -183,6 +188,11 @@ msgstr ""
msgid "Edit Tag"
msgstr ""
#: lib/cannery_web/live/invite_live/index.html.heex:64
#, elixir-autogen, elixir-format
msgid "Enable"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:35
#, elixir-autogen, elixir-format
msgid "Example bullet type abbreviations"
@ -212,7 +222,7 @@ msgstr ""
msgid "Instance Information"
msgstr ""
#: lib/cannery_web/components/invite_card.ex:32
#: lib/cannery_web/components/invite_card.ex:25
#, elixir-autogen, elixir-format
msgid "Invite Disabled"
msgstr ""
@ -240,7 +250,7 @@ msgstr ""
msgid "Location"
msgstr ""
#: lib/cannery_web/components/container_card.ex:51
#: lib/cannery_web/components/container_card.ex:42
#: lib/cannery_web/live/container_live/show.html.heex:20
#, elixir-autogen, elixir-format
msgid "Location:"
@ -337,7 +347,7 @@ msgstr ""
msgid "Notes"
msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:43
#: lib/cannery_web/components/ammo_group_card.ex:39
#: lib/cannery_web/live/ammo_group_live/show.html.heex:24
#, elixir-autogen, elixir-format
msgid "Notes:"
@ -361,7 +371,7 @@ msgstr ""
msgid "Price paid"
msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:62
#: lib/cannery_web/components/ammo_group_card.ex:58
#, elixir-autogen, elixir-format
msgid "Price paid:"
msgstr ""
@ -388,6 +398,11 @@ msgstr ""
msgid "Self-host your own instance, or use an instance from someone you trust."
msgstr ""
#: lib/cannery_web/live/invite_live/index.html.heex:80
#, elixir-autogen, elixir-format
msgid "Set Unlimited"
msgstr ""
#: lib/cannery_web/controllers/user_settings_controller.ex:10
#: lib/cannery_web/templates/user_settings/edit.html.heex:3
#, elixir-autogen, elixir-format
@ -449,7 +464,7 @@ msgstr ""
msgid "Type"
msgstr ""
#: lib/cannery_web/components/container_card.ex:45
#: lib/cannery_web/components/container_card.ex:36
#: lib/cannery_web/live/container_live/show.html.heex:14
#, elixir-autogen, elixir-format
msgid "Type:"
@ -460,7 +475,7 @@ msgstr ""
msgid "Users"
msgstr ""
#: lib/cannery_web/components/invite_card.ex:27
#: lib/cannery_web/components/invite_card.ex:20
#, elixir-autogen, elixir-format
msgid "Uses Left:"
msgstr ""
@ -512,6 +527,18 @@ msgstr ""
msgid "No ammo staged"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.html.heex:86
#: lib/cannery_web/live/range_live/index.html.heex:31
#, elixir-autogen, elixir-format
msgid "Stage for range"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.html.heex:85
#: lib/cannery_web/live/range_live/index.html.heex:30
#, elixir-autogen, elixir-format
msgid "Unstage from range"
msgstr ""
#: lib/cannery_web/components/add_shot_group_component.html.heex:3
#: lib/cannery_web/live/ammo_group_live/index.ex:26
#, elixir-autogen, elixir-format
@ -566,6 +593,7 @@ msgstr ""
msgid "Move Ammo group"
msgstr ""
#: lib/cannery_web/components/move_ammo_group_component.ex:80
#: lib/cannery_web/live/ammo_group_live/index.ex:253
#, elixir-autogen, elixir-format
msgid "Move ammo"
@ -581,7 +609,7 @@ msgstr ""
msgid "Shot log"
msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:63
#: lib/cannery_web/components/ammo_group_card.ex:59
#: lib/cannery_web/live/ammo_group_live/index.ex:145
#: lib/cannery_web/live/ammo_group_live/show.html.heex:37
#: lib/cannery_web/live/ammo_group_live/show.html.heex:44
@ -686,7 +714,7 @@ msgstr ""
msgid "Edit %{name} tags"
msgstr ""
#: lib/cannery_web/components/container_card.ex:63
#: lib/cannery_web/components/container_card.ex:54
#: lib/cannery_web/live/container_live/show.html.heex:32
#, elixir-autogen, elixir-format
msgid "Rounds:"
@ -794,14 +822,14 @@ msgstr ""
msgid "Added on"
msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:49
#: lib/cannery_web/components/ammo_group_card.ex:45
#: lib/cannery_web/live/ammo_group_live/show.html.heex:30
#: lib/cannery_web/live/ammo_type_live/show.html.heex:97
#, elixir-autogen, elixir-format
msgid "Added on:"
msgstr ""
#: lib/cannery_web/components/user_card.ex:34
#: lib/cannery_web/components/user_card.ex:30
#, elixir-autogen, elixir-format
msgid "User registered on"
msgstr ""
@ -880,7 +908,7 @@ msgstr ""
msgid "This ammo is not in a container"
msgstr ""
#: lib/cannery_web/components/container_card.ex:58
#: lib/cannery_web/components/container_card.ex:49
#: lib/cannery_web/live/container_live/show.html.heex:27
#, elixir-autogen, elixir-format
msgid "Packs:"
@ -907,13 +935,14 @@ msgstr ""
msgid "Total # of ammo"
msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:71
#: lib/cannery_web/components/ammo_group_card.ex:67
#, elixir-autogen, elixir-format
msgid "Container:"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:48
#: lib/cannery_web/live/ammo_type_live/show.html.heex:126
#: lib/cannery_web/live/container_live/show.html.heex:97
#, elixir-autogen, elixir-format
msgid "Show used"
msgstr ""
@ -923,7 +952,7 @@ msgstr ""
msgid "Used up on"
msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:55
#: lib/cannery_web/components/ammo_group_card.ex:51
#, elixir-autogen, elixir-format
msgid "Used up on:"
msgstr ""
@ -933,28 +962,3 @@ msgstr ""
#, elixir-autogen, elixir-format
msgid "%{percentage}%"
msgstr ""
#: lib/cannery_web/live/range_live/index.ex:121
#, elixir-autogen, elixir-format
msgid "Name: %{name}"
msgstr ""
#: lib/cannery_web/live/range_live/index.ex:115
#, elixir-autogen, elixir-format
msgid "Notes: %{notes}"
msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:62
#, elixir-autogen, elixir-format, fuzzy
msgid "Rounds fired"
msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:64
#, elixir-autogen, elixir-format
msgid "Rounds fired chart"
msgstr ""
#: lib/cannery_web/live/range_live/index.ex:125
#, elixir-autogen, elixir-format, fuzzy
msgid "Rounds shot: %{count}"
msgstr ""

View File

@ -199,8 +199,3 @@ msgstr ""
#, elixir-autogen, elixir-format
msgid "Please select a valid user and ammo group"
msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:67
#, elixir-autogen, elixir-format
msgid "Your browser does not support the canvas element."
msgstr ""

View File

@ -203,7 +203,7 @@ msgid "Are you sure you want to unstage this ammo?"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.ex:132
#: lib/cannery_web/live/range_live/index.ex:181
#: lib/cannery_web/live/range_live/index.ex:131
#, elixir-autogen, elixir-format
msgid "Are you sure you want to delete this shot record?"
msgstr ""

View File

@ -192,7 +192,7 @@ msgid "Are you sure you want to unstage this ammo?"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.ex:132
#: lib/cannery_web/live/range_live/index.ex:181
#: lib/cannery_web/live/range_live/index.ex:131
#, elixir-autogen, elixir-format
msgid "Are you sure you want to delete this shot record?"
msgstr ""

View File

@ -212,7 +212,7 @@ defmodule CanneryWeb.AmmoGroupLiveTest do
test "hides empty ammo groups by default", %{conn: conn, empty_ammo_group: ammo_group} do
{:ok, show_live, html} = live(conn, Routes.ammo_group_index_path(conn, :index))
assert html =~ dgettext("actions", "Show used")
assert html =~ gettext("Show used")
refute html =~ gettext("$%{amount}", amount: 50.00 |> :erlang.float_to_binary(decimals: 2))
refute html =~

View File

@ -48,20 +48,13 @@ defmodule CanneryWeb.AmmoTypeLiveTest do
%{ammo_type: ammo_type_fixture(@create_attrs, current_user)}
end
defp create_ammo_group(%{ammo_type: ammo_type, current_user: current_user}) do
container = container_fixture(current_user)
{1, [ammo_group]} = ammo_group_fixture(@ammo_group_attrs, ammo_type, container, current_user)
%{ammo_group: ammo_group, container: container}
end
defp create_empty_ammo_group(%{ammo_type: ammo_type, current_user: current_user}) do
container = container_fixture(current_user)
{1, [ammo_group]} = ammo_group_fixture(@ammo_group_attrs, ammo_type, container, current_user)
shot_group = shot_group_fixture(@shot_group_attrs, current_user, ammo_group)
ammo_group = ammo_group |> Repo.reload!()
%{ammo_group: ammo_group, container: container, shot_group: shot_group}
%{ammo_group: ammo_group, shot_group: shot_group}
end
describe "Index" do
@ -164,18 +157,6 @@ defmodule CanneryWeb.AmmoTypeLiveTest do
end
end
describe "Show ammo type with ammo group" do
setup [:register_and_log_in_user, :create_ammo_type, :create_ammo_group]
test "displays ammo group", %{conn: conn, ammo_type: ammo_type, container: container} do
{:ok, _show_live, html} = live(conn, Routes.ammo_type_show_path(conn, :show, ammo_type))
assert html =~ gettext("Show Ammo type")
assert html =~ "some ammo group"
assert html =~ container.name
end
end
describe "Show ammo type with empty ammo group" do
setup [:register_and_log_in_user, :create_ammo_type, :create_empty_ammo_group]
@ -183,7 +164,7 @@ defmodule CanneryWeb.AmmoTypeLiveTest do
%{conn: conn, ammo_type: ammo_type} do
{:ok, show_live, html} = live(conn, Routes.ammo_type_show_path(conn, :show, ammo_type))
assert html =~ dgettext("actions", "Show used")
assert html =~ gettext("Show used")
refute html =~ "some ammo group"
html = show_live |> element("[data-qa=\"toggle_show_used\"]") |> render_click()

View File

@ -167,7 +167,7 @@ defmodule CanneryWeb.ContainerLiveTest do
%{conn: conn, container: container} do
{:ok, show_live, html} = live(conn, Routes.container_show_path(conn, :show, container))
assert html =~ dgettext("actions", "Show used")
assert html =~ gettext("Show used")
refute html =~ "some ammo group"
html = show_live |> element("[data-qa=\"toggle_show_used\"]") |> render_click()