17 Commits

Author SHA1 Message Date
cad2fc9c3a run mix format
All checks were successful
continuous-integration/drone/push Build is passing
2022-02-18 19:00:49 -05:00
9e0e9ea2ae fix ammo group create not handling invalid attrs
Some checks failed
continuous-integration/drone/push Build is failing
2022-02-18 18:49:11 -05:00
2a0f5720ee fix confusing placeholder
Some checks reported errors
continuous-integration/drone/push Build was killed
2022-02-18 18:41:45 -05:00
aede4f45ba fix tests and mix format
All checks were successful
continuous-integration/drone/push Build is passing
2022-02-18 18:25:28 -05:00
889e08e42c fix grid styling
Some checks failed
continuous-integration/drone/push Build is failing
2022-02-18 18:21:56 -05:00
8fae6c4661 fix email link 2022-02-18 18:05:20 -05:00
9529343a91 run mix format
All checks were successful
continuous-integration/drone/push Build is passing
2022-02-18 17:49:19 -05:00
676623d4c1 fix docker compose 2022-02-18 17:47:30 -05:00
25bca35e0e fix docker versions 2022-02-18 17:44:58 -05:00
3a17c40795 fix tailwind discard for heex templates 2022-02-18 17:44:36 -05:00
f63aa4c832 tag email jobs 2022-02-18 17:44:18 -05:00
f55f113622 use live_redirect for topbar links 2022-02-18 17:43:51 -05:00
b86667da98 fix container style being applied 2022-02-18 17:43:33 -05:00
290b4b791d swap copy to clipboard handlers 2022-02-18 17:43:22 -05:00
736cd3ab57 add liveview loading and reconnection screen 2022-02-18 17:43:08 -05:00
f0589348cc comment secret key base by default
All checks were successful
continuous-integration/drone/push Build is passing
2022-02-18 01:35:31 -05:00
d472dc90e8 add po files
All checks were successful
continuous-integration/drone/push Build is passing
2022-02-18 00:07:20 -05:00
38 changed files with 1628 additions and 247 deletions

View File

@@ -1,4 +1,4 @@
FROM elixir:1.12.2-alpine AS build FROM elixir:1.13-alpine AS build
# install build dependencies # install build dependencies
RUN apk add --no-cache build-base npm git python3 RUN apk add --no-cache build-base npm git python3
@@ -34,7 +34,7 @@ RUN mix do phx.digest, gettext.extract
RUN mix do compile, release RUN mix do compile, release
# prepare release image # prepare release image
FROM alpine:3.9 AS app FROM alpine:latest AS app
RUN apk upgrade --no-cache && \ RUN apk upgrade --no-cache && \
apk add --no-cache bash openssl libgcc libstdc++ ncurses-libs apk add --no-cache bash openssl libgcc libstdc++ ncurses-libs

View File

@@ -16,6 +16,24 @@ $fa-font-path: "@fortawesome/fontawesome-free/webfonts";
scrollbar-color: rgba(161, 161, 170, var(--tw-bg-opacity)) white; scrollbar-color: rgba(161, 161, 170, var(--tw-bg-opacity)) white;
} }
.fa-fade {
animation: pulse 1s ease-in-out 0s infinite alternate;
}
@keyframes pulse {
0% { scale: 0.95; opacity: 0.5; }
100% { scale: 1.0; opacity: 1; }
}
.phx-connected > #disconnect, #loading {
opacity: 0 !important;
pointer-events: none;
}
.phx-loading:not(.phx-error) > #loading, .phx-error > #disconnect {
opacity: 0.95 !important;
}
/* Alerts and form errors used by phx.new */ /* Alerts and form errors used by phx.new */
.alert { .alert {
padding: 15px; padding: 15px;

View File

@@ -3,6 +3,7 @@ const colors = require('tailwindcss/colors')
module.exports = { module.exports = {
purge: [ purge: [
'../lib/**/*.ex', '../lib/**/*.ex',
'../lib/**/*.heex',
'../lib/**/*.leex', '../lib/**/*.leex',
'../lib/**/*.eex', '../lib/**/*.eex',
'./js/**/*.js' './js/**/*.js'

View File

@@ -6,19 +6,26 @@ services:
container_name: cannery container_name: cannery
restart: always restart: always
environment: environment:
- HOST="your.domain.com" # HOST must be set!
- DATABASE_URL="ecto://postgres:postgres@cannery-db/cannery" # - HOST=your.domain.com
- DATABASE_URL=ecto://postgres:postgres@cannery-db/cannery
# Use `docker run -it shibaobun/cannery /app/priv/random.sh` to generate a secret key base # Use `docker run -it shibaobun/cannery /app/priv/random.sh` to generate a secret key base
- SECRET_KEY_BASE="change-me-this-is-really-important-seriously-change-it" # - SECRET_KEY_BASE=change-me-this-is-really-important-seriously-change-it
# uncomment to enable public sign ups, not recommended # uncomment to enable public sign ups, not recommended
# - REGISTRATION="public" # - REGISTRATION=public
# - SMTP_HOST="cannery.example.tld" # must be set! # SMTP host must be set!
# - SMTP_PORT="587" # optional # - SMTP_HOST=smtp.mailserver.tld
# - SMTP_USERNAME="username" # optional, default is 587
# - SMTP_PASSWORD="password" # - SMTP_PORT=587
# - SMTP_SSL="false" # optional # SMTP username/passwords must be set!
# - EMAIL_FROM="no-reply@cannery.example.tld" # optional # - SMTP_USERNAME=username
# - EMAIL_NAME="Cannery" # optional # - SMTP_PASSWORD=password
# optional, default is false
# - SMTP_SSL=false
# optional, default is format below
# - EMAIL_FROM=no-reply@cannery.example.tld
# optional, default is "Cannery"
# - EMAIL_NAME=Cannery
expose: expose:
- "4000" - "4000"
depends_on: depends_on:

View File

@@ -3,7 +3,7 @@ defmodule Cannery.EmailWorker do
Oban worker that dispatches emails Oban worker that dispatches emails
""" """
use Oban.Worker, queue: :mailers use Oban.Worker, queue: :mailers, tags: ["email"]
alias Cannery.{Accounts, Email, Mailer} alias Cannery.{Accounts, Email, Mailer}
@impl Oban.Worker @impl Oban.Worker

View File

@@ -256,6 +256,12 @@ defmodule Cannery.Ammo do
|> Repo.insert() |> Repo.insert()
end end
def create_ammo_group(invalid_attrs, _user) do
%AmmoGroup{}
|> AmmoGroup.create_changeset(invalid_attrs |> Map.put("user_id", "-1"))
|> Repo.insert()
end
@doc """ @doc """
Updates a ammo_group. Updates a ammo_group.

View File

@@ -1,5 +1,5 @@
<div> <div>
<h2 class="text-center title text-xl text-primary-600"> <h2 class="mb-8 text-center title text-xl text-primary-600">
<%= gettext("Record shots") %> <%= gettext("Record shots") %>
</h2> </h2>
@@ -7,7 +7,7 @@
let={f} let={f}
for={@changeset} for={@changeset}
id="shot-group-form" id="shot-group-form"
class="flex flex-col sm:grid sm:grid-cols-3 justify-center items-center space-y-4" class="flex flex-col sm:grid sm:grid-cols-3 sm:gap-4 justify-center items-center"
phx-target={@myself} phx-target={@myself}
phx-change="validate" phx-change="validate"
phx-submit="save" phx-submit="save"

View File

@@ -1,5 +1,5 @@
<div class="w-full flex flex-col space-y-8 justify-center items-center"> <div class="w-full flex flex-col space-y-8 justify-center items-center">
<h2 class="text-center title text-xl text-primary-600"> <h2 class="mb-8 text-center title text-xl text-primary-600">
<%= gettext("Move ammo") %> <%= gettext("Move ammo") %>
</h2> </h2>

View File

@@ -16,11 +16,10 @@ defmodule CanneryWeb.Components.Topbar do
<nav role="navigation" class="mb-8 px-8 py-4 w-full bg-primary-400"> <nav role="navigation" class="mb-8 px-8 py-4 w-full bg-primary-400">
<div class="flex flex-col sm:flex-row justify-between items-center"> <div class="flex flex-col sm:flex-row justify-between items-center">
<div class="mb-4 sm:mb-0 sm:mr-8 flex flex-row justify-start items-center space-x-2"> <div class="mb-4 sm:mb-0 sm:mr-8 flex flex-row justify-start items-center space-x-2">
<%= link to: Routes.live_path(Endpoint, HomeLive) do %> <%= live_redirect("Cannery",
<h1 class="mx-2 my-1 leading-5 text-xl text-white hover:underline"> to: Routes.live_path(Endpoint, HomeLive),
Cannery class: "mx-2 my-1 leading-5 text-xl text-white hover:underline"
</h1> ) %>
<% end %>
<%= if @title_content do %> <%= if @title_content do %>
<span class="mx-2 my-1"> <span class="mx-2 my-1">
@@ -38,47 +37,47 @@ defmodule CanneryWeb.Components.Topbar do
> >
<%= if @current_user do %> <%= if @current_user do %>
<li class="mx-2 my-1"> <li class="mx-2 my-1">
<%= link(gettext("Tags"), <%= live_redirect(gettext("Tags"),
class: "hover:underline", to: Routes.tag_index_path(Endpoint, :index),
to: Routes.tag_index_path(Endpoint, :index) class: "text-primary-600 text-white hover:underline"
) %> ) %>
</li> </li>
<li class="mx-2 my-1"> <li class="mx-2 my-1">
<%= link(gettext("Containers"), <%= live_redirect(gettext("Containers"),
class: "hover:underline", to: Routes.container_index_path(Endpoint, :index),
to: Routes.container_index_path(Endpoint, :index) class: "text-primary-600 text-white hover:underline"
) %> ) %>
</li> </li>
<li class="mx-2 my-1"> <li class="mx-2 my-1">
<%= link(gettext("Ammo"), <%= live_redirect(gettext("Ammo"),
class: "hover:underline", to: Routes.ammo_type_index_path(Endpoint, :index),
to: Routes.ammo_type_index_path(Endpoint, :index) class: "text-primary-600 text-white hover:underline"
) %> ) %>
</li> </li>
<li class="mx-2 my-1"> <li class="mx-2 my-1">
<%= link(gettext("Manage"), <%= live_redirect(gettext("Manage"),
class: "hover:underline", to: Routes.ammo_group_index_path(Endpoint, :index),
to: Routes.ammo_group_index_path(Endpoint, :index) class: "text-primary-600 text-white hover:underline"
) %> ) %>
</li> </li>
<li class="mx-2 my-1"> <li class="mx-2 my-1">
<%= link(gettext("Range"), <%= live_redirect(gettext("Range"),
class: "hover:underline", to: Routes.range_index_path(Endpoint, :index),
to: Routes.range_index_path(Endpoint, :index) class: "text-primary-600 text-white hover:underline"
) %> ) %>
</li> </li>
<%= if @current_user.role == :admin do %> <%= if @current_user.role == :admin do %>
<li class="mx-2 my-1"> <li class="mx-2 my-1">
<%= link(gettext("Invites"), <%= live_redirect(gettext("Invites"),
class: "hover:underline", to: Routes.invite_index_path(Endpoint, :index),
to: Routes.invite_index_path(Endpoint, :index) class: "text-primary-600 text-white hover:underline"
) %> ) %>
</li> </li>
<% end %> <% end %>
<li class="mx-2 my-1"> <li class="mx-2 my-1">
<%= link(@current_user.email, <%= live_redirect(@current_user.email,
class: "hover:underline truncate", to: Routes.user_settings_path(Endpoint, :edit),
to: Routes.user_settings_path(Endpoint, :edit) class: "text-primary-600 text-white hover:underline truncate"
) %> ) %>
</li> </li>
<li class="mx-2 my-1"> <li class="mx-2 my-1">
@@ -90,7 +89,8 @@ defmodule CanneryWeb.Components.Topbar do
</li> </li>
<%= if @current_user.role == :admin and function_exported?(Routes, :live_dashboard_path, 2) do %> <%= if @current_user.role == :admin and function_exported?(Routes, :live_dashboard_path, 2) do %>
<li class="mx-2 my-1"> <li class="mx-2 my-1">
<%= link to: Routes.live_dashboard_path(Endpoint, :home) do %> <%= live_redirect to: Routes.live_dashboard_path(Endpoint, :home),
class: "text-primary-600 text-white hover:underline" do %>
<i class="fas fa-tachometer-alt"></i> <i class="fas fa-tachometer-alt"></i>
<% end %> <% end %>
</li> </li>
@@ -98,16 +98,16 @@ defmodule CanneryWeb.Components.Topbar do
<% else %> <% else %>
<%= if Accounts.allow_registration?() do %> <%= if Accounts.allow_registration?() do %>
<li class="mx-2 my-1"> <li class="mx-2 my-1">
<%= link(dgettext("actions", "Register"), <%= live_redirect(dgettext("actions", "Register"),
class: "hover:underline", to: Routes.user_registration_path(Endpoint, :new),
to: Routes.user_registration_path(Endpoint, :new) class: "text-primary-600 text-white hover:underline truncate"
) %> ) %>
</li> </li>
<% end %> <% end %>
<li class="mx-2 my-1"> <li class="mx-2 my-1">
<%= link(dgettext("actions", "Log in"), <%= live_redirect(dgettext("actions", "Log in"),
class: "hover:underline", to: Routes.user_session_path(Endpoint, :new),
to: Routes.user_session_path(Endpoint, :new) class: "text-primary-600 text-white hover:underline truncate"
) %> ) %>
</li> </li>
<% end %> <% end %>

View File

@@ -1,5 +1,5 @@
<div> <div>
<h2 class="text-center title text-xl text-primary-600"> <h2 class="mb-8 text-center title text-xl text-primary-600">
<%= @title %> <%= @title %>
</h2> </h2>
@@ -10,7 +10,7 @@
phx-target={@myself} phx-target={@myself}
phx-change="validate" phx-change="validate"
phx-submit="save" phx-submit="save"
class="flex flex-col sm:grid sm:grid-cols-3 justify-center items-center space-y-4" class="flex flex-col sm:grid sm:grid-cols-3 sm:gap-4 justify-center items-center"
> >
<%= if @changeset.action && not @changeset.valid? do %> <%= if @changeset.action && not @changeset.valid? do %>
<div class="invalid-feedback col-span-3 text-center"> <div class="invalid-feedback col-span-3 text-center">

View File

@@ -1,5 +1,5 @@
<div> <div>
<h2 class="text-center title text-xl text-primary-600"> <h2 class="mb-8 text-center title text-xl text-primary-600">
<%= @title %> <%= @title %>
</h2> </h2>
<.form <.form
@@ -9,7 +9,7 @@
phx-target={@myself} phx-target={@myself}
phx-change="validate" phx-change="validate"
phx-submit="save" phx-submit="save"
class="flex flex-col sm:grid sm:grid-cols-3 justify-center items-center space-y-4" class="flex flex-col sm:grid sm:grid-cols-3 sm:gap-4 justify-center items-center"
> >
<%= if @changeset.action && not @changeset.valid? do %> <%= if @changeset.action && not @changeset.valid? do %>
<div class="invalid-feedback col-span-3 text-center"> <div class="invalid-feedback col-span-3 text-center">
@@ -97,10 +97,7 @@
<%= label(f, :powder_type, gettext("Powder type"), <%= label(f, :powder_type, gettext("Powder type"),
class: "mr-4 title text-lg text-primary-600" class: "mr-4 title text-lg text-primary-600"
) %> ) %>
<%= text_input(f, :powder_type, <%= text_input(f, :powder_type, class: "text-center col-span-2 input input-primary") %>
class: "text-center col-span-2 input input-primary",
placeholder: gettext("Brass")
) %>
<%= error_tag(f, :powder_type, "col-span-3 text-center") %> <%= error_tag(f, :powder_type, "col-span-3 text-center") %>
<%= label(f, :powder_grains_per_charge, gettext("Powder grains per charge"), <%= label(f, :powder_grains_per_charge, gettext("Powder grains per charge"),

View File

@@ -1,5 +1,5 @@
<div> <div>
<h2 class="mb-4 text-center title text-xl text-primary-600"> <h2 class="mb-8 text-center title text-xl text-primary-600">
<%= @title %> <%= @title %>
</h2> </h2>
@@ -7,7 +7,7 @@
let={f} let={f}
for={:tag} for={:tag}
id="add-tag-to-container-form" id="add-tag-to-container-form"
class="flex flex-col sm:grid sm:grid-cols-3 justify-center items-center space-x-2" class="flex flex-col sm:grid sm:grid-cols-3 sm:gap-4 justify-center items-center"
phx-target={@myself} phx-target={@myself}
phx-submit="save" phx-submit="save"
> >

View File

@@ -1,12 +1,12 @@
<div> <div>
<h2 class="text-center title text-xl text-primary-600"> <h2 class="mb-8 text-center title text-xl text-primary-600">
<%= @title %> <%= @title %>
</h2> </h2>
<.form <.form
let={f} let={f}
for={@changeset} for={@changeset}
id="container-form" id="container-form"
class="flex flex-col sm:grid sm:grid-cols-3 justify-center items-center space-y-4" class="flex flex-col sm:grid sm:grid-cols-3 sm:gap-4 justify-center items-center"
phx-target={@myself} phx-target={@myself}
phx-change="validate" phx-change="validate"
phx-submit="save" phx-submit="save"

View File

@@ -1,12 +1,12 @@
<div> <div>
<h2 class="text-center title text-xl text-primary-600"> <h2 class="mb-8 text-center title text-xl text-primary-600">
<%= @title %> <%= @title %>
</h2> </h2>
<.form <.form
let={f} let={f}
for={@changeset} for={@changeset}
id="invite-form" id="invite-form"
class="flex flex-col sm:grid sm:grid-cols-3 justify-center items-center space-y-4" class="flex flex-col sm:grid sm:grid-cols-3 sm:gap-4 justify-center items-center"
phx-target={@myself} phx-target={@myself}
phx-change="validate" phx-change="validate"
phx-submit="save" phx-submit="save"

View File

@@ -24,12 +24,11 @@
<%= for invite <- @invites do %> <%= for invite <- @invites do %>
<.invite_card invite={invite}> <.invite_card invite={invite}>
<:code_actions> <:code_actions>
<form phx-submit={JS.dispatch("cannery:clipcopy", to: "#code-#{invite.id}")}> <form phx-submit="copy_to_clipboard">
<button <button
type="submit" type="submit"
class="mx-2 my-1 btn btn-primary" class="mx-2 my-1 btn btn-primary"
phx-click="copy_to_clipboard" phx-click={JS.dispatch("cannery:clipcopy", to: "#code-#{invite.id}")}
phx-value-invite_id={"#code-#{invite.id}"}
> >
<%= dgettext("actions", "Copy to clipboard") %> <%= dgettext("actions", "Copy to clipboard") %>
</button> </button>

View File

@@ -1,5 +1,5 @@
<div> <div>
<h2 class="text-center title text-xl text-primary-600"> <h2 class="mb-8 text-center title text-xl text-primary-600">
<%= @title %> <%= @title %>
</h2> </h2>
@@ -7,7 +7,7 @@
let={f} let={f}
for={@changeset} for={@changeset}
id="shot-group-form" id="shot-group-form"
class="flex flex-col sm:grid sm:grid-cols-3 justify-center items-center space-y-4" class="flex flex-col sm:grid sm:grid-cols-3 sm:gap-4 justify-center items-center"
phx-target={@myself} phx-target={@myself}
phx-change="validate" phx-change="validate"
phx-submit="save" phx-submit="save"

View File

@@ -29,14 +29,14 @@ defmodule CanneryWeb.TagLive.FormComponent do
def render(assigns) do def render(assigns) do
~H""" ~H"""
<div> <div>
<h2 class="text-center title text-xl text-primary-600"> <h2 class="mb-8 text-center title text-xl text-primary-600">
<%= @title %> <%= @title %>
</h2> </h2>
<.form <.form
let={f} let={f}
for={@changeset} for={@changeset}
id="tag-form" id="tag-form"
class="flex flex-col sm:grid sm:grid-cols-3 justify-center items-center space-y-4" class="flex flex-col sm:grid sm:grid-cols-3 sm:gap-4 justify-center items-center"
phx-target={@myself} phx-target={@myself}
phx-change="validate" phx-change="validate"
phx-submit="save" phx-submit="save"

View File

@@ -15,7 +15,7 @@
<br/> <br/>
<a style="margin: 1em; color: rgb(31, 31, 31);" href="{@url}"><%= @url %></a> <a style="margin: 1em; color: rgb(31, 31, 31);" href="<%= @url %>"><%= @url %></a>
<br/> <br/>

View File

@@ -9,7 +9,7 @@
<br/> <br/>
<a style="margin: 1em; color: rgb(31, 31, 31);" href="{@url}"><%= @url %></a> <a style="margin: 1em; color: rgb(31, 31, 31);" href="<%= @url %>"><%= @url %></a>
<br/> <br/>

View File

@@ -9,7 +9,7 @@
<br/> <br/>
<a style="margin: 1em; color: rgb(31, 31, 31);" href="{@url}"><%= @url %></a> <a style="margin: 1em; color: rgb(31, 31, 31);" href="<%= @url %>"><%= @url %></a>
<br/> <br/>

View File

@@ -1,4 +1,4 @@
<main role="main" class="container min-h-full min-w-full"> <main role="main" class="min-h-full min-w-full">
<header> <header>
<.topbar current_user={assigns[:current_user]}></.topbar> <.topbar current_user={assigns[:current_user]}></.topbar>

View File

@@ -1,4 +1,4 @@
<main class="mb-8 container min-w-full"> <main class="mb-8 min-w-full">
<header> <header>
<.topbar current_user={assigns[:current_user]}></.topbar> <.topbar current_user={assigns[:current_user]}></.topbar>
@@ -26,3 +26,29 @@
<%= @inner_content %> <%= @inner_content %>
</div> </div>
</main> </main>
<div
id="loading"
class="absolute opacity-0 top-0 left-0 w-screen h-screen bg-white z-50
flex flex-col justify-center items-center space-y-4
transition-opacity ease-in-out duration-500"
>
<h1 class="title text-2xl title-primary-500">
<%= gettext("Loading...") %>
</h1>
<i class="fas fa-3x fa-spin fa-cog"></i>
</div>
<div
id="disconnect"
class="absolute opacity-0 top-0 left-0 w-screen h-screen bg-white z-50
flex flex-col justify-center items-center space-y-4
transition-opacity ease-in-out duration-500"
>
<h1 class="title text-2xl title-primary-500">
<%= gettext("Reconnecting...") %>
</h1>
<i class="fas fa-3x fa-fade fa-satellite-dish"></i>
</div>

View File

@@ -1,4 +1,4 @@
<div class="mb-8 flex flex-col justify-center items-center space-y-4"> <div class="mx-auto mb-8 max-w-2xl flex flex-col justify-center items-center space-y-4">
<h1 class="title text-primary-600 text-xl"> <h1 class="title text-primary-600 text-xl">
<%= dgettext("actions", "Resend confirmation instructions") %> <%= dgettext("actions", "Resend confirmation instructions") %>
</h1> </h1>
@@ -7,15 +7,14 @@
Routes.user_confirmation_path(@conn, :create), Routes.user_confirmation_path(@conn, :create),
[ [
class: class:
"flex flex-col sm:grid sm:grid-cols-3" <> "flex flex-col sm:grid sm:grid-cols-3 sm:gap-4 justify-center items-center"
"justify-center items-center text-center space-y-4"
], ],
fn f -> %> fn f -> %>
<%= label(f, :email, class: "title text-lg text-primary-600") %> <%= label(f, :email, class: "title text-lg text-primary-600") %>
<%= email_input(f, :email, required: true, class: "input input-primary col-span-2") %> <%= email_input(f, :email, required: true, class: "input input-primary col-span-2") %>
<%= submit(dgettext("actions", "Resend confirmation instructions"), <%= submit(dgettext("actions", "Resend confirmation instructions"),
class: "mx-auto my-4 btn btn-primary col-span-3" class: "mx-auto btn btn-primary col-span-3"
) %> ) %>
<% end %> <% end %>

View File

@@ -1,4 +1,4 @@
<div class="mb-8 flex flex-col justify-center items-center space-y-4"> <div class="mx-auto mb-8 max-w-2xl flex flex-col justify-center items-center space-y-4">
<h1 class="title text-primary-600 text-xl"> <h1 class="title text-primary-600 text-xl">
<%= dgettext("actions", "Register") %> <%= dgettext("actions", "Register") %>
</h1> </h1>
@@ -7,8 +7,7 @@
Routes.user_registration_path(@conn, :create), Routes.user_registration_path(@conn, :create),
[ [
class: class:
"flex flex-col sm:grid sm:grid-cols-3" <> "flex flex-col sm:grid sm:grid-cols-3 sm:gap-4 justify-center items-center"
"justify-center items-center text-center space-y-4"
], ],
fn f -> %> fn f -> %>
<%= if @changeset.action && not @changeset.valid? do %> <%= if @changeset.action && not @changeset.valid? do %>
@@ -31,7 +30,7 @@
<%= password_input(f, :password, required: true, class: "input input-primary col-span-2") %> <%= password_input(f, :password, required: true, class: "input input-primary col-span-2") %>
<%= error_tag(f, :password, "col-span-3") %> <%= error_tag(f, :password, "col-span-3") %>
<%= submit(dgettext("actions", "Register"), class: "mx-auto my-4 btn btn-primary col-span-3") %> <%= submit(dgettext("actions", "Register"), class: "mx-auto btn btn-primary col-span-3") %>
<% end %> <% end %>
<hr class="hr" /> <hr class="hr" />

View File

@@ -1,4 +1,4 @@
<div class="mb-8 flex flex-col justify-center items-center space-y-4"> <div class="mx-auto mb-8 max-w-2xl flex flex-col justify-center items-center space-y-4">
<h1 class="title text-primary-600 text-xl"> <h1 class="title text-primary-600 text-xl">
<%= dgettext("actions", "Reset password") %> <%= dgettext("actions", "Reset password") %>
</h1> </h1>
@@ -7,8 +7,7 @@
Routes.user_reset_password_path(@conn, :update, @token), Routes.user_reset_password_path(@conn, :update, @token),
[ [
class: class:
"flex flex-col sm:grid sm:grid-cols-3" <> "flex flex-col sm:grid sm:grid-cols-3 sm:gap-4 justify-center items-center"
"justify-center items-center text-center space-y-4"
], ],
fn f -> %> fn f -> %>
<%= if @changeset.action && not @changeset.valid? do %> <%= if @changeset.action && not @changeset.valid? do %>
@@ -33,7 +32,7 @@
<%= error_tag(f, :password_confirmation, "col-span-3") %> <%= error_tag(f, :password_confirmation, "col-span-3") %>
<%= submit(dgettext("actions", "Reset password"), <%= submit(dgettext("actions", "Reset password"),
class: "mx-auto my-4 btn btn-primary col-span-3" class: "mx-auto btn btn-primary col-span-3"
) %> ) %>
<% end %> <% end %>

View File

@@ -1,4 +1,4 @@
<div class="mb-8 flex flex-col justify-center items-center space-y-4"> <div class="mx-auto mb-8 max-w-2xl flex flex-col justify-center items-center space-y-4">
<h1 class="title text-primary-600 text-xl"> <h1 class="title text-primary-600 text-xl">
<%= dgettext("actions", "Forgot your password?") %> <%= dgettext("actions", "Forgot your password?") %>
</h1> </h1>
@@ -7,15 +7,14 @@
Routes.user_reset_password_path(@conn, :create), Routes.user_reset_password_path(@conn, :create),
[ [
class: class:
"flex flex-col sm:grid sm:grid-cols-3" <> "flex flex-col sm:grid sm:grid-cols-3 sm:gap-4 justify-center items-center"
"justify-center items-center text-center space-y-4"
], ],
fn f -> %> fn f -> %>
<%= label(f, :email, class: "title text-lg text-primary-600") %> <%= label(f, :email, class: "title text-lg text-primary-600") %>
<%= email_input(f, :email, required: true, class: "input input-primary col-span-2") %> <%= email_input(f, :email, required: true, class: "input input-primary col-span-2") %>
<%= submit(dgettext("actions", "Send instructions to reset password"), <%= submit(dgettext("actions", "Send instructions to reset password"),
class: "mx-auto my-4 btn btn-primary col-span-3" class: "mx-auto btn btn-primary col-span-3"
) %> ) %>
<% end %> <% end %>

View File

@@ -1,4 +1,4 @@
<div class="mb-8 flex flex-col justify-center items-center space-y-4"> <div class="mx-auto mb-8 max-w-2xl flex flex-col justify-center items-center space-y-4">
<h1 class="title text-primary-600 text-xl"> <h1 class="title text-primary-600 text-xl">
<%= dgettext("actions", "Log in") %> <%= dgettext("actions", "Log in") %>
</h1> </h1>
@@ -8,8 +8,7 @@
[ [
as: :user, as: :user,
class: class:
"flex flex-col sm:grid sm:grid-cols-3" <> "flex flex-col sm:grid sm:grid-cols-3 sm:gap-4 justify-center items-center"
"justify-center items-center text-center space-y-4"
], ],
fn f -> %> fn f -> %>
<%= if @error_message do %> <%= if @error_message do %>
@@ -31,7 +30,7 @@
) %> ) %>
<%= checkbox(f, :remember_me, class: "checkbox col-span-2") %> <%= checkbox(f, :remember_me, class: "checkbox col-span-2") %>
<%= submit(dgettext("actions", "Log in"), class: "mx-auto my-4 btn btn-primary col-span-3") %> <%= submit(dgettext("actions", "Log in"), class: "mx-auto btn btn-primary col-span-3") %>
<% end %> <% end %>
<hr class="hr" /> <hr class="hr" />

View File

@@ -1,4 +1,4 @@
<div class="mb-8 flex flex-col justify-center items-center space-y-4"> <div class="mx-auto mb-8 max-w-2xl flex flex-col justify-center items-center space-y-4">
<h1 class="pb-4 title text-primary-600 text-xl"> <h1 class="pb-4 title text-primary-600 text-xl">
<%= gettext("Settings") %> <%= gettext("Settings") %>
</h1> </h1>
@@ -9,8 +9,7 @@
Routes.user_settings_path(@conn, :update), Routes.user_settings_path(@conn, :update),
[ [
class: class:
"pb-4 flex flex-col sm:grid sm:grid-cols-3" <> "pb-4 text-center flex flex-col sm:grid sm:grid-cols-3 sm:gap-4 justify-center items-center"
"justify-center items-center text-center space-y-4"
], ],
fn f -> %> fn f -> %>
<h3 class="title text-primary-600 text-lg col-span-3"> <h3 class="title text-primary-600 text-lg col-span-3">
@@ -44,7 +43,7 @@
<%= error_tag(f, :current_password, "col-span-3") %> <%= error_tag(f, :current_password, "col-span-3") %>
<%= submit(dgettext("actions", "Change email"), <%= submit(dgettext("actions", "Change email"),
class: "mx-auto my-4 btn btn-primary col-span-3" class: "mx-auto btn btn-primary col-span-3"
) %> ) %>
<% end %> <% end %>
@@ -54,7 +53,7 @@
Routes.user_settings_path(@conn, :update), Routes.user_settings_path(@conn, :update),
[ [
class: class:
"pb-4 flex flex-col sm:grid sm:grid-cols-3 justify-center items-center text-center space-y-4" "pb-4 text-center flex flex-col sm:grid sm:grid-cols-3 sm:gap-4 justify-center items-center"
], ],
fn f -> %> fn f -> %>
<h3 class="title text-primary-600 text-lg col-span-3"> <h3 class="title text-primary-600 text-lg col-span-3">
@@ -100,7 +99,7 @@
<%= error_tag(f, :current_password, "col-span-3") %> <%= error_tag(f, :current_password, "col-span-3") %>
<%= submit(dgettext("actions", "Change password"), <%= submit(dgettext("actions", "Change password"),
class: "mx-auto my-4 btn btn-primary col-span-3" class: "mx-auto btn btn-primary col-span-3"
) %> ) %>
<% end %> <% end %>

View File

@@ -31,14 +31,14 @@ msgid "Add your first type!"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/templates/user_settings/edit.html.heex:17 #: lib/cannery_web/templates/user_settings/edit.html.heex:16
#: lib/cannery_web/templates/user_settings/edit.html.heex:46 #: lib/cannery_web/templates/user_settings/edit.html.heex:45
msgid "Change email" msgid "Change email"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/templates/user_settings/edit.html.heex:61 #: lib/cannery_web/templates/user_settings/edit.html.heex:60
#: lib/cannery_web/templates/user_settings/edit.html.heex:102 #: lib/cannery_web/templates/user_settings/edit.html.heex:101
msgid "Change password" msgid "Change password"
msgstr "" msgstr ""
@@ -48,14 +48,14 @@ msgid "Create Invite"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/templates/user_settings/edit.html.heex:109 #: lib/cannery_web/templates/user_settings/edit.html.heex:108
msgid "Delete User" msgid "Delete User"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/templates/user_registration/new.html.heex:44 #: lib/cannery_web/templates/user_registration/new.html.heex:43
#: lib/cannery_web/templates/user_reset_password/new.html.heex:3 #: lib/cannery_web/templates/user_reset_password/new.html.heex:3
#: lib/cannery_web/templates/user_session/new.html.heex:46 #: lib/cannery_web/templates/user_session/new.html.heex:45
msgid "Forgot your password?" msgid "Forgot your password?"
msgstr "" msgstr ""
@@ -66,12 +66,12 @@ msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/components/topbar.ex:108 #: lib/cannery_web/components/topbar.ex:108
#: lib/cannery_web/templates/user_confirmation/new.html.heex:31 #: lib/cannery_web/templates/user_confirmation/new.html.heex:30
#: lib/cannery_web/templates/user_registration/new.html.heex:40 #: lib/cannery_web/templates/user_registration/new.html.heex:39
#: lib/cannery_web/templates/user_reset_password/edit.html.heex:49 #: lib/cannery_web/templates/user_reset_password/edit.html.heex:48
#: lib/cannery_web/templates/user_reset_password/new.html.heex:31 #: lib/cannery_web/templates/user_reset_password/new.html.heex:30
#: lib/cannery_web/templates/user_session/new.html.heex:3 #: lib/cannery_web/templates/user_session/new.html.heex:3
#: lib/cannery_web/templates/user_session/new.html.heex:34 #: lib/cannery_web/templates/user_session/new.html.heex:33
msgid "Log in" msgid "Log in"
msgstr "" msgstr ""
@@ -102,31 +102,31 @@ msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/components/topbar.ex:101 #: lib/cannery_web/components/topbar.ex:101
#: lib/cannery_web/templates/user_confirmation/new.html.heex:26 #: lib/cannery_web/templates/user_confirmation/new.html.heex:25
#: lib/cannery_web/templates/user_registration/new.html.heex:3 #: lib/cannery_web/templates/user_registration/new.html.heex:3
#: lib/cannery_web/templates/user_registration/new.html.heex:34 #: lib/cannery_web/templates/user_registration/new.html.heex:33
#: lib/cannery_web/templates/user_reset_password/edit.html.heex:44 #: lib/cannery_web/templates/user_reset_password/edit.html.heex:43
#: lib/cannery_web/templates/user_reset_password/new.html.heex:26 #: lib/cannery_web/templates/user_reset_password/new.html.heex:25
#: lib/cannery_web/templates/user_session/new.html.heex:41 #: lib/cannery_web/templates/user_session/new.html.heex:40
msgid "Register" msgid "Register"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/templates/user_confirmation/new.html.heex:3 #: lib/cannery_web/templates/user_confirmation/new.html.heex:3
#: lib/cannery_web/templates/user_confirmation/new.html.heex:17 #: lib/cannery_web/templates/user_confirmation/new.html.heex:16
msgid "Resend confirmation instructions" msgid "Resend confirmation instructions"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/templates/user_reset_password/edit.html.heex:3 #: lib/cannery_web/templates/user_reset_password/edit.html.heex:3
#: lib/cannery_web/templates/user_reset_password/edit.html.heex:35 #: lib/cannery_web/templates/user_reset_password/edit.html.heex:34
msgid "Reset password" msgid "Reset password"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/components/add_shot_group_component.html.heex:42 #: lib/cannery_web/components/add_shot_group_component.html.heex:42
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:54 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:54
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:175 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:172
#: lib/cannery_web/live/container_live/form_component.html.heex:50 #: lib/cannery_web/live/container_live/form_component.html.heex:50
#: lib/cannery_web/live/invite_live/form_component.html.heex:28 #: lib/cannery_web/live/invite_live/form_component.html.heex:28
#: lib/cannery_web/live/range_live/form_component.html.heex:40 #: lib/cannery_web/live/range_live/form_component.html.heex:40
@@ -135,7 +135,7 @@ msgid "Save"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/templates/user_reset_password/new.html.heex:17 #: lib/cannery_web/templates/user_reset_password/new.html.heex:16
msgid "Send instructions to reset password" msgid "Send instructions to reset password"
msgstr "" msgstr ""
@@ -187,6 +187,6 @@ msgid "Select"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/invite_live/index.html.heex:34 #: lib/cannery_web/live/invite_live/index.html.heex:33
msgid "Copy to clipboard" msgid "Copy to clipboard"
msgstr "" msgstr ""

View File

@@ -21,7 +21,7 @@ msgid "Access from any internet-capable device"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/invite_live/index.html.heex:91 #: lib/cannery_web/live/invite_live/index.html.heex:90
msgid "Admins" msgid "Admins"
msgstr "" msgstr ""
@@ -31,7 +31,7 @@ msgid "Admins:"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/components/topbar.ex:53 #: lib/cannery_web/components/topbar.ex:52
#: lib/cannery_web/live/ammo_group_live/index.html.heex:3 #: lib/cannery_web/live/ammo_group_live/index.html.heex:3
#: lib/cannery_web/live/range_live/index.html.heex:61 #: lib/cannery_web/live/range_live/index.html.heex:61
msgid "Ammo" msgid "Ammo"
@@ -54,14 +54,13 @@ msgid "Background color"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:157 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:154
#: lib/cannery_web/live/ammo_type_live/index.ex:67 #: lib/cannery_web/live/ammo_type_live/index.ex:67
msgid "Blank" msgid "Blank"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:74 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:74
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:102
msgid "Brass" msgid "Brass"
msgstr "" msgstr ""
@@ -108,13 +107,13 @@ msgid "Container"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/components/topbar.ex:47 #: lib/cannery_web/components/topbar.ex:46
#: lib/cannery_web/live/container_live/index.html.heex:3 #: lib/cannery_web/live/container_live/index.html.heex:3
msgid "Containers" msgid "Containers"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:161 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:158
#: lib/cannery_web/live/ammo_type_live/index.ex:68 #: lib/cannery_web/live/ammo_type_live/index.ex:68
msgid "Corrosive" msgid "Corrosive"
msgstr "" msgstr ""
@@ -144,7 +143,7 @@ msgid "Description:"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/invite_live/index.html.heex:60 #: lib/cannery_web/live/invite_live/index.html.heex:59
msgid "Disable" msgid "Disable"
msgstr "" msgstr ""
@@ -182,7 +181,7 @@ msgid "Edit Tag"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/invite_live/index.html.heex:64 #: lib/cannery_web/live/invite_live/index.html.heex:63
msgid "Enable" msgid "Enable"
msgstr "" msgstr ""
@@ -197,14 +196,14 @@ msgid "FMJ"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:116 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:113
#: lib/cannery_web/live/ammo_type_live/index.ex:61 #: lib/cannery_web/live/ammo_type_live/index.ex:61
#: lib/cannery_web/live/ammo_type_live/show.html.heex:49 #: lib/cannery_web/live/ammo_type_live/show.html.heex:49
msgid "Grains" msgid "Grains"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:153 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:150
#: lib/cannery_web/live/ammo_type_live/index.ex:66 #: lib/cannery_web/live/ammo_type_live/index.ex:66
msgid "Incendiary" msgid "Incendiary"
msgstr "" msgstr ""
@@ -225,13 +224,13 @@ msgid "Invite Only"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/components/topbar.ex:72 #: lib/cannery_web/components/topbar.ex:71
#: lib/cannery_web/live/invite_live/index.html.heex:3 #: lib/cannery_web/live/invite_live/index.html.heex:3
msgid "Invites" msgid "Invites"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/templates/user_session/new.html.heex:29 #: lib/cannery_web/templates/user_session/new.html.heex:28
msgid "Keep me logged in for 60 days" msgid "Keep me logged in for 60 days"
msgstr "" msgstr ""
@@ -273,12 +272,12 @@ msgid "Magazine, Clip, Ammo Box, etc"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/components/topbar.ex:59 #: lib/cannery_web/components/topbar.ex:58
msgid "Manage" msgid "Manage"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:165 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:162
#: lib/cannery_web/live/ammo_type_live/index.ex:69 #: lib/cannery_web/live/ammo_type_live/index.ex:69
msgid "Manufacturer" msgid "Manufacturer"
msgstr "" msgstr ""
@@ -378,7 +377,7 @@ msgid "On the bookshelf"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:124 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:121
#: lib/cannery_web/live/ammo_type_live/index.ex:62 #: lib/cannery_web/live/ammo_type_live/index.ex:62
#: lib/cannery_web/live/ammo_type_live/show.html.heex:50 #: lib/cannery_web/live/ammo_type_live/show.html.heex:50
msgid "Pressure" msgid "Pressure"
@@ -397,7 +396,7 @@ msgid "Price paid:"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:131 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:128
#: lib/cannery_web/live/ammo_type_live/index.ex:63 #: lib/cannery_web/live/ammo_type_live/index.ex:63
#: lib/cannery_web/live/ammo_type_live/show.html.heex:51 #: lib/cannery_web/live/ammo_type_live/show.html.heex:51
msgid "Primer type" msgid "Primer type"
@@ -424,7 +423,7 @@ msgid "Self-host your own instance, or use an instance from someone you trust."
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/invite_live/index.html.heex:80 #: lib/cannery_web/live/invite_live/index.html.heex:79
msgid "Set Unlimited" msgid "Set Unlimited"
msgstr "" msgstr ""
@@ -464,7 +463,7 @@ msgid "Stored in"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/components/topbar.ex:41 #: lib/cannery_web/components/topbar.ex:40
#: lib/cannery_web/live/container_live/show.html.heex:60 #: lib/cannery_web/live/container_live/show.html.heex:60
#: lib/cannery_web/live/tag_live/index.html.heex:3 #: lib/cannery_web/live/tag_live/index.html.heex:3
msgid "Tags" msgid "Tags"
@@ -491,7 +490,7 @@ msgid "This ammo group is not in a container"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:149 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:146
#: lib/cannery_web/live/ammo_type_live/index.ex:65 #: lib/cannery_web/live/ammo_type_live/index.ex:65
msgid "Tracer" msgid "Tracer"
msgstr "" msgstr ""
@@ -509,7 +508,7 @@ msgid "Type:"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/invite_live/index.html.heex:120 #: lib/cannery_web/live/invite_live/index.html.heex:119
msgid "Users" msgid "Users"
msgstr "" msgstr ""
@@ -544,7 +543,7 @@ msgid "No tags for this container"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/components/topbar.ex:65 #: lib/cannery_web/components/topbar.ex:64
#: lib/cannery_web/live/ammo_group_live/index.html.heex:39 #: lib/cannery_web/live/ammo_group_live/index.html.heex:39
msgid "Range" msgid "Range"
msgstr "" msgstr ""
@@ -688,7 +687,7 @@ msgid "Muzzle velocity"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:106 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:103
#: lib/cannery_web/live/ammo_type_live/index.ex:60 #: lib/cannery_web/live/ammo_type_live/index.ex:60
#: lib/cannery_web/live/ammo_type_live/show.html.heex:48 #: lib/cannery_web/live/ammo_type_live/show.html.heex:48
msgid "Powder grains per charge" msgid "Powder grains per charge"
@@ -702,24 +701,24 @@ msgid "Powder type"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:171 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:168
#: lib/cannery_web/live/ammo_type_live/index.ex:70 #: lib/cannery_web/live/ammo_type_live/index.ex:70
msgid "UPC" msgid "UPC"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/templates/user_settings/edit.html.heex:81 #: lib/cannery_web/templates/user_settings/edit.html.heex:80
msgid "Confirm new password" msgid "Confirm new password"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/templates/user_settings/edit.html.heex:34 #: lib/cannery_web/templates/user_settings/edit.html.heex:33
#: lib/cannery_web/templates/user_settings/edit.html.heex:90 #: lib/cannery_web/templates/user_settings/edit.html.heex:89
msgid "Current password" msgid "Current password"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/templates/user_settings/edit.html.heex:74 #: lib/cannery_web/templates/user_settings/edit.html.heex:73
msgid "New password" msgid "New password"
msgstr "" msgstr ""
@@ -734,6 +733,16 @@ msgid "Unstage"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:140 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:137
msgid "Firing type" msgid "Firing type"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/templates/layout/live.html.heex:50
msgid "Reconnecting..."
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/templates/layout/live.html.heex:37
msgid "Loading..."
msgstr ""

View File

@@ -0,0 +1,193 @@
## "msgid"s in this file come from POT (.pot) files.
##
## Do not add, change, or remove "msgid"s manually here as
## they're tied to the ones in the corresponding POT file
## (with the same domain).
##
## Use "mix gettext.extract --merge" or "mix gettext.merge"
## to merge POT files into PO files.
msgid ""
msgstr ""
"Language: en\n"
"Plural-Forms: nplurals=2\n"
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/index.ex:42
msgid "Add Ammo"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/index.html.heex:12
msgid "Add your first box!"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/container_live/index.html.heex:12
msgid "Add your first container!"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/index.html.heex:12
msgid "Add your first type!"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/templates/user_settings/edit.html.heex:17
#: lib/cannery_web/templates/user_settings/edit.html.heex:46
msgid "Change email"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/templates/user_settings/edit.html.heex:61
#: lib/cannery_web/templates/user_settings/edit.html.heex:102
msgid "Change password"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/invite_live/index.html.heex:17
msgid "Create Invite"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/templates/user_settings/edit.html.heex:109
msgid "Delete User"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/templates/user_registration/new.html.heex:44
#: lib/cannery_web/templates/user_reset_password/new.html.heex:3
#: lib/cannery_web/templates/user_session/new.html.heex:46
msgid "Forgot your password?"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/invite_live/index.html.heex:12
msgid "Invite someone new!"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/components/topbar.ex:108
#: lib/cannery_web/templates/user_confirmation/new.html.heex:31
#: lib/cannery_web/templates/user_registration/new.html.heex:40
#: lib/cannery_web/templates/user_reset_password/edit.html.heex:49
#: lib/cannery_web/templates/user_reset_password/new.html.heex:31
#: lib/cannery_web/templates/user_session/new.html.heex:3
#: lib/cannery_web/templates/user_session/new.html.heex:34
msgid "Log in"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/tag_live/index.html.heex:14
msgid "Make your first tag!"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/index.html.heex:17
msgid "New Ammo group"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/index.html.heex:17
msgid "New Ammo type"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/container_live/index.html.heex:17
msgid "New Container"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/tag_live/index.html.heex:19
msgid "New Tag"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/components/topbar.ex:101
#: lib/cannery_web/templates/user_confirmation/new.html.heex:26
#: lib/cannery_web/templates/user_registration/new.html.heex:3
#: lib/cannery_web/templates/user_registration/new.html.heex:34
#: lib/cannery_web/templates/user_reset_password/edit.html.heex:44
#: lib/cannery_web/templates/user_reset_password/new.html.heex:26
#: lib/cannery_web/templates/user_session/new.html.heex:41
msgid "Register"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/templates/user_confirmation/new.html.heex:3
#: lib/cannery_web/templates/user_confirmation/new.html.heex:17
msgid "Resend confirmation instructions"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/templates/user_reset_password/edit.html.heex:3
#: lib/cannery_web/templates/user_reset_password/edit.html.heex:35
msgid "Reset password"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/components/add_shot_group_component.html.heex:42
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:54
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:175
#: lib/cannery_web/live/container_live/form_component.html.heex:50
#: lib/cannery_web/live/invite_live/form_component.html.heex:28
#: lib/cannery_web/live/range_live/form_component.html.heex:40
#: lib/cannery_web/live/tag_live/form_component.ex:66
msgid "Save"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/templates/user_reset_password/new.html.heex:17
msgid "Send instructions to reset password"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/container_live/show.html.heex:53
msgid "Why not add one?"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/container_live/add_tag_component.html.heex:17
msgid "Add"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/range_live/index.html.heex:17
msgid "Stage ammo"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/range_live/index.html.heex:12
msgid "Why not get some ready to shoot?"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/index.html.heex:85
#: lib/cannery_web/live/ammo_group_live/show.html.heex:67
#: lib/cannery_web/live/range_live/index.html.heex:36
msgid "Record shots"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/show.html.heex:31
msgid "Ammo Details"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/components/move_ammo_group_component.html.heex:12
msgid "Add another container!"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/show.html.heex:61
msgid "Move containers"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/components/move_ammo_group_component.html.heex:60
msgid "Select"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/invite_live/index.html.heex:33
msgid "Copy to clipboard"
msgstr ""

View File

@@ -0,0 +1,750 @@
## "msgid"s in this file come from POT (.pot) files.
##
## Do not add, change, or remove "msgid"s manually here as
## they're tied to the ones in the corresponding POT file
## (with the same domain).
##
## Use "mix gettext.extract --merge" or "mix gettext.merge"
## to merge POT files into PO files.
msgid ""
msgstr ""
"Language: en\n"
"Plural-Forms: nplurals=2\n"
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/home_live.ex:57
msgid "%{name} lets you easily keep an eye on your ammo levels before and after range day"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/home_live.ex:79
msgid "Access from any internet-capable device"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/invite_live/index.html.heex:90
msgid "Admins"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/home_live.ex:93
msgid "Admins:"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/components/topbar.ex:52
#: lib/cannery_web/live/ammo_group_live/index.html.heex:3
#: lib/cannery_web/live/range_live/index.html.heex:61
msgid "Ammo"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:21
#: lib/cannery_web/live/ammo_group_live/index.html.heex:27
msgid "Ammo type"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/show.html.heex:94
msgid "Average Price paid"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/tag_live/form_component.ex:54
msgid "Background color"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:157
#: lib/cannery_web/live/ammo_type_live/index.ex:67
msgid "Blank"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:74
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:102
msgid "Brass"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:46
#: lib/cannery_web/live/ammo_type_live/index.ex:53
#: lib/cannery_web/live/ammo_type_live/show.html.heex:41
msgid "Bullet core"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:37
#: lib/cannery_web/live/ammo_type_live/index.ex:52
#: lib/cannery_web/live/ammo_type_live/show.html.heex:40
msgid "Bullet type"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:62
#: lib/cannery_web/live/ammo_type_live/index.ex:55
#: lib/cannery_web/live/ammo_type_live/show.html.heex:43
msgid "Caliber"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:55
#: lib/cannery_web/live/ammo_type_live/index.ex:54
#: lib/cannery_web/live/ammo_type_live/show.html.heex:42
msgid "Cartridge"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:69
#: lib/cannery_web/live/ammo_type_live/index.ex:56
#: lib/cannery_web/live/ammo_type_live/show.html.heex:44
msgid "Case material"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/components/move_ammo_group_component.html.heex:22
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:48
#: lib/cannery_web/live/ammo_group_live/index.html.heex:42
msgid "Container"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/components/topbar.ex:46
#: lib/cannery_web/live/container_live/index.html.heex:3
msgid "Containers"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:161
#: lib/cannery_web/live/ammo_type_live/index.ex:68
msgid "Corrosive"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:27
#: lib/cannery_web/live/ammo_group_live/index.html.heex:30
msgid "Count"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/components/ammo_group_card.ex:29
#: lib/cannery_web/live/ammo_group_live/show.html.heex:8
msgid "Count:"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:24
#: lib/cannery_web/live/container_live/form_component.html.heex:27
msgid "Description"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/components/container_card.ex:27
#: lib/cannery_web/live/container_live/show.html.heex:8
msgid "Description:"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/invite_live/index.html.heex:59
msgid "Disable"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/home_live.ex:54
msgid "Easy to Use:"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/index.ex:36
#: lib/cannery_web/live/ammo_group_live/show.ex:55
msgid "Edit Ammo group"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/index.ex:23
#: lib/cannery_web/live/ammo_type_live/show.ex:47
msgid "Edit Ammo type"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/container_live/index.ex:24
#: lib/cannery_web/live/container_live/show.ex:89
msgid "Edit Container"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/invite_live/index.ex:35
msgid "Edit Invite"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/tag_live/index.ex:23
msgid "Edit Tag"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/invite_live/index.html.heex:63
msgid "Enable"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:35
msgid "Example bullet type abbreviations"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:42
msgid "FMJ"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:116
#: lib/cannery_web/live/ammo_type_live/index.ex:61
#: lib/cannery_web/live/ammo_type_live/show.html.heex:49
msgid "Grains"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:153
#: lib/cannery_web/live/ammo_type_live/index.ex:66
msgid "Incendiary"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/home_live.ex:88
msgid "Instance Information"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/components/invite_card.ex:27
msgid "Invite Disabled"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/home_live.ex:119
msgid "Invite Only"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/components/topbar.ex:71
#: lib/cannery_web/live/invite_live/index.html.heex:3
msgid "Invites"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/templates/user_session/new.html.heex:29
msgid "Keep me logged in for 60 days"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/index.ex:34
msgid "Listing Ammo types"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/container_live/index.ex:33
msgid "Listing Containers"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/invite_live/index.ex:43
msgid "Listing Invites"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/tag_live/index.ex:34
msgid "Listing Tags"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/components/move_ammo_group_component.html.heex:30
#: lib/cannery_web/live/container_live/form_component.html.heex:42
msgid "Location"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/components/container_card.ex:39
#: lib/cannery_web/live/container_live/show.html.heex:20
msgid "Location:"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/container_live/form_component.html.heex:38
msgid "Magazine, Clip, Ammo Box, etc"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/components/topbar.ex:58
msgid "Manage"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:165
#: lib/cannery_web/live/ammo_type_live/index.ex:69
msgid "Manufacturer"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/container_live/form_component.html.heex:31
msgid "Metal ammo can with the anime girl sticker"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/container_live/form_component.html.heex:23
msgid "My cool ammo can"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:20
#: lib/cannery_web/live/ammo_type_live/index.ex:51
#: lib/cannery_web/live/container_live/form_component.html.heex:20
#: lib/cannery_web/live/invite_live/form_component.html.heex:20
#: lib/cannery_web/live/tag_live/form_component.ex:50
msgid "Name"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/index.ex:29
msgid "New Ammo type"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/container_live/index.ex:29
msgid "New Container"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/invite_live/index.ex:39
msgid "New Invite"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/tag_live/index.ex:29
msgid "New Tag"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/index.html.heex:8
msgid "No Ammo"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/index.html.heex:8
msgid "No Ammo Types"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/show.html.heex:109
msgid "No ammo for this type"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/container_live/show.html.heex:88
msgid "No ammo groups in this container"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/container_live/index.html.heex:8
msgid "No containers"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/invite_live/index.html.heex:8
msgid "No invites"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/tag_live/index.html.heex:10
msgid "No tags"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/components/add_shot_group_component.html.heex:30
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:41
#: lib/cannery_web/live/ammo_group_live/index.html.heex:36
#: lib/cannery_web/live/range_live/form_component.html.heex:29
#: lib/cannery_web/live/range_live/index.html.heex:67
msgid "Notes"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/components/ammo_group_card.ex:35
#: lib/cannery_web/live/ammo_group_live/show.html.heex:14
msgid "Notes:"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/container_live/form_component.html.heex:46
msgid "On the bookshelf"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:124
#: lib/cannery_web/live/ammo_type_live/index.ex:62
#: lib/cannery_web/live/ammo_type_live/show.html.heex:50
msgid "Pressure"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:34
#: lib/cannery_web/live/ammo_group_live/index.html.heex:33
msgid "Price paid"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/components/ammo_group_card.ex:42
#: lib/cannery_web/live/ammo_group_live/show.html.heex:21
msgid "Price paid:"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:131
#: lib/cannery_web/live/ammo_type_live/index.ex:63
#: lib/cannery_web/live/ammo_type_live/show.html.heex:51
msgid "Primer type"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/home_live.ex:118
msgid "Public Signups"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/index.ex:64
msgid "Rimfire"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/home_live.ex:66
msgid "Secure:"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/home_live.ex:69
msgid "Self-host your own instance, or use an instance from someone you trust."
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/invite_live/index.html.heex:79
msgid "Set Unlimited"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/templates/user_settings/edit.html.heex:3
msgid "Settings"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/show.ex:54
msgid "Show Ammo group"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/show.ex:46
msgid "Show Ammo type"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/container_live/show.ex:88
msgid "Show Container"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/home_live.ex:76
msgid "Simple:"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:51
msgid "Steel"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/show.html.heex:79
msgid "Stored in"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/components/topbar.ex:40
#: lib/cannery_web/live/container_live/show.html.heex:60
#: lib/cannery_web/live/tag_live/index.html.heex:3
msgid "Tags"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/tag_live/index.html.heex:6
msgid "Tags can be added to your containers to help you organize"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/tag_live/form_component.ex:60
msgid "Text color"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/home_live.ex:45
msgid "The self-hosted firearm tracker website"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/show.html.heex:84
msgid "This ammo group is not in a container"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:149
#: lib/cannery_web/live/ammo_type_live/index.ex:65
msgid "Tracer"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/components/move_ammo_group_component.html.heex:26
#: lib/cannery_web/live/container_live/form_component.html.heex:35
msgid "Type"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/components/container_card.ex:33
#: lib/cannery_web/live/container_live/show.html.heex:14
msgid "Type:"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/invite_live/index.html.heex:119
msgid "Users"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/components/invite_card.ex:22
msgid "Uses Left:"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/invite_live/form_component.html.heex:24
msgid "Uses left"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/home_live.ex:41
msgid "Welcome to %{name}"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/home_live.ex:70
msgid "Your data stays with you, period"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/container_live/show.ex:90
msgid "Add Tag to Container"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/container_live/show.html.heex:49
msgid "No tags for this container"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/components/topbar.ex:64
#: lib/cannery_web/live/ammo_group_live/index.html.heex:39
msgid "Range"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/range_live/index.html.heex:3
msgid "Range day"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/range_live/index.html.heex:70
msgid "Date"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/range_live/form_component.html.heex:21
msgid "Shots fired"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/range_live/index.html.heex:8
msgid "No ammo staged"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/show.html.heex:58
#: lib/cannery_web/live/range_live/index.html.heex:33
msgid "Stage for range"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/show.html.heex:57
#: lib/cannery_web/live/range_live/index.html.heex:32
msgid "Unstage from range"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/show.ex:52
msgid "Add Shot group"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/components/add_shot_group_component.html.heex:3
#: lib/cannery_web/live/ammo_group_live/index.ex:24
#: lib/cannery_web/live/range_live/index.ex:28
msgid "Record shots"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/index.html.heex:3
msgid "Ammo Types"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/index.ex:47
msgid "Ammo groups"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/components/add_shot_group_component.html.heex:38
#: lib/cannery_web/live/range_live/form_component.html.heex:36
msgid "Date (UTC)"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/range_live/index.ex:34
msgid "Edit Shot Records"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/range_live/index.ex:40
msgid "New Shot Records"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/range_live/index.html.heex:48
msgid "No shots recorded"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/components/add_shot_group_component.html.heex:21
msgid "Rounds left"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/range_live/index.html.heex:64
msgid "Rounds shot"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/range_live/index.ex:46
msgid "Shot Records"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/index.ex:30
#: lib/cannery_web/live/ammo_group_live/show.ex:53
msgid "Move Ammo group"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/components/move_ammo_group_component.html.heex:3
msgid "Move ammo"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/components/move_ammo_group_component.html.heex:8
msgid "No other containers"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/range_live/index.html.heex:53
msgid "Shot log"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/components/ammo_group_card.ex:43
#: lib/cannery_web/live/ammo_group_live/index.html.heex:64
#: lib/cannery_web/live/ammo_group_live/show.html.heex:22
#: lib/cannery_web/live/ammo_type_live/show.html.heex:98
msgid "$%{amount}"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:83
msgid "Bimetal"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:78
#: lib/cannery_web/live/ammo_type_live/index.ex:57
#: lib/cannery_web/live/ammo_type_live/show.html.heex:45
msgid "Jacket type"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:87
#: lib/cannery_web/live/ammo_type_live/index.ex:58
#: lib/cannery_web/live/ammo_type_live/show.html.heex:46
msgid "Muzzle velocity"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:106
#: lib/cannery_web/live/ammo_type_live/index.ex:60
#: lib/cannery_web/live/ammo_type_live/show.html.heex:48
msgid "Powder grains per charge"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:97
#: lib/cannery_web/live/ammo_type_live/index.ex:59
#: lib/cannery_web/live/ammo_type_live/show.html.heex:47
msgid "Powder type"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:171
#: lib/cannery_web/live/ammo_type_live/index.ex:70
msgid "UPC"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/templates/user_settings/edit.html.heex:81
msgid "Confirm new password"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/templates/user_settings/edit.html.heex:34
#: lib/cannery_web/templates/user_settings/edit.html.heex:90
msgid "Current password"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/templates/user_settings/edit.html.heex:74
msgid "New password"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/index.html.heex:82
msgid "Stage"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/index.html.heex:82
msgid "Unstage"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:140
msgid "Firing type"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/templates/layout/live.html.heex:50
msgid "Reconnecting..."
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/templates/layout/live.html.heex:37
msgid "Loading..."
msgstr ""

View File

@@ -0,0 +1,97 @@
## "msgid"s in this file come from POT (.pot) files.
##
## Do not add, change, or remove "msgid"s manually here as
## they're tied to the ones in the corresponding POT file
## (with the same domain).
##
## Use "mix gettext.extract --merge" or "mix gettext.merge"
## to merge POT files into PO files.
msgid ""
msgstr ""
"Language: en\n"
"Plural-Forms: nplurals=2\n"
#, elixir-autogen, elixir-format
#: lib/cannery/accounts/email.ex:30
msgid "Confirm your %{name} account"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/templates/email/confirm_email.html.eex:3
#: lib/cannery_web/templates/email/confirm_email.txt.eex:2
#: lib/cannery_web/templates/email/reset_password.html.eex:3
#: lib/cannery_web/templates/email/reset_password.txt.eex:2
#: lib/cannery_web/templates/email/update_email.html.eex:3
#: lib/cannery_web/templates/email/update_email.txt.eex:2
msgid "Hi %{email},"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/templates/email/confirm_email.txt.eex:10
msgid "If you didn't create an account at %{url}, please ignore this."
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/templates/email/reset_password.txt.eex:8
#: lib/cannery_web/templates/email/update_email.txt.eex:8
msgid "If you didn't request this change from %{url}, please ignore this."
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery/accounts/email.ex:37
msgid "Reset your %{name} password"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery/accounts/email.ex:44
msgid "Update your %{name} email"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/templates/email/confirm_email.html.eex:9
msgid "Welcome to %{name}!"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/templates/email/confirm_email.txt.eex:4
msgid "Welcome to %{name}%!"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/templates/email/update_email.html.eex:8
#: lib/cannery_web/templates/email/update_email.txt.eex:4
msgid "You can change your email by visiting the URL below:"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/templates/email/confirm_email.html.eex:14
#: lib/cannery_web/templates/email/confirm_email.txt.eex:6
msgid "You can confirm your account by visiting the URL below:"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/templates/email/reset_password.html.eex:8
#: lib/cannery_web/templates/email/reset_password.txt.eex:4
msgid "You can reset your password by visiting the URL below:"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/templates/email/confirm_email.html.eex:22
msgid "If you didn't create an account at %{name}, please ignore this."
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/templates/email/reset_password.html.eex:16
#: lib/cannery_web/templates/email/update_email.html.eex:16
msgid "If you didn't request this change from %{name}, please ignore this."
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/templates/layout/email.txt.eex:9
msgid "This email was sent from %{name} at %{url}, the self-hosted firearm tracker website."
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/templates/layout/email.html.heex:17
msgid "This email was sent from %{name}, the self-hosted firearm tracker website."
msgstr ""

View File

@@ -10,103 +10,146 @@ msgid ""
msgstr "" msgstr ""
"Language: en\n" "Language: en\n"
## From Ecto.Changeset.cast/4 #, elixir-autogen, elixir-format
msgid "can't be blank" #: lib/cannery/containers.ex:105
msgid "Container must be empty before deleting"
msgstr "" msgstr ""
## From Ecto.Changeset.unique_constraint/3 #, elixir-autogen, elixir-format
msgid "has already been taken" #: lib/cannery_web/live/container_live/index.ex:55
#: lib/cannery_web/live/container_live/show.ex:74
msgid "Could not delete %{name}: %{error}"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/container_live/index.ex:43
msgid "Could not find that container"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/controllers/user_settings_controller.ex:67
msgid "Email change link is invalid or it has expired."
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/templates/error/error.html.heex:8
msgid "Error"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/templates/error/error.html.heex:29
msgid "Go back home"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/views/error_view.ex:11
msgid "Internal Server Error"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/controllers/user_session_controller.ex:17
msgid "Invalid email or password"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/views/error_view.ex:9
msgid "Not found"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/templates/user_registration/new.html.heex:17
#: lib/cannery_web/templates/user_reset_password/edit.html.heex:17
#: lib/cannery_web/templates/user_settings/edit.html.heex:23
#: lib/cannery_web/templates/user_settings/edit.html.heex:67
msgid "Oops, something went wrong! Please check the errors below."
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/controllers/user_reset_password_controller.ex:60
msgid "Reset password link is invalid or it has expired."
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/controllers/user_registration_controller.ex:25
#: lib/cannery_web/controllers/user_registration_controller.ex:53
msgid "Sorry, public registration is disabled"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/controllers/user_registration_controller.ex:15
#: lib/cannery_web/controllers/user_registration_controller.ex:43
msgid "Sorry, this invite was not found or expired"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/controllers/user_settings_controller.ex:82
msgid "Unable to delete user"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/views/error_view.ex:10
msgid "Unauthorized"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/controllers/user_confirmation_controller.ex:53
msgid "User confirmation link is invalid or it has expired."
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/invite_live/index.ex:20
msgid "You are not authorized to view this page"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/controllers/user_auth.ex:177
msgid "You are not authorized to view this page."
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery/accounts/user.ex:128
msgid "did not change"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery/accounts/user.ex:149
msgid "does not match password"
msgstr "" msgstr ""
## From Ecto.Changeset.put_change/3 ## From Ecto.Changeset.put_change/3
msgid "is invalid" #, elixir-autogen, elixir-format, fuzzy
#: lib/cannery/accounts/user.ex:186
msgid "is not valid"
msgstr "" msgstr ""
## From Ecto.Changeset.validate_acceptance/3 #, elixir-autogen, elixir-format
msgid "must be accepted" #: lib/cannery/accounts/user.ex:82
msgid "must have the @ sign and no spaces"
msgstr "" msgstr ""
## From Ecto.Changeset.validate_format/3 #, elixir-autogen, elixir-format
msgid "has invalid format" #: lib/cannery/tags.ex:40
msgid "Tag not found"
msgstr "" msgstr ""
## From Ecto.Changeset.validate_subset/3 #, elixir-autogen, elixir-format
msgid "has an invalid entry" #: lib/cannery_web/live/container_live/add_tag_component.ex:35
msgid "Tag could not be added"
msgstr "" msgstr ""
## From Ecto.Changeset.validate_exclusion/3 #, elixir-autogen, elixir-format
msgid "is reserved" #: lib/cannery/activity_log.ex:125
msgid "Count must be at least 1"
msgstr "" msgstr ""
## From Ecto.Changeset.validate_confirmation/3 #, elixir-autogen, elixir-format
msgid "does not match confirmation" #: lib/cannery/activity_log.ex:73
#: lib/cannery/activity_log.ex:120
msgid "Count must be less than %{count}"
msgstr "" msgstr ""
## From Ecto.Changeset.no_assoc_constraint/3 #, elixir-autogen, elixir-format
msgid "is still associated with this entry" #: lib/cannery_web/controllers/user_auth.ex:39
msgstr "" #: lib/cannery_web/controllers/user_auth.ex:161
msgid "You must confirm your account and log in to access this page."
msgid "are still associated with this entry"
msgstr ""
## From Ecto.Changeset.validate_length/3
msgid "should have %{count} item(s)"
msgid_plural "should have %{count} item(s)"
msgstr[0] ""
msgstr[1] ""
msgid "should be %{count} character(s)"
msgid_plural "should be %{count} character(s)"
msgstr[0] ""
msgstr[1] ""
msgid "should be %{count} byte(s)"
msgid_plural "should be %{count} byte(s)"
msgstr[0] ""
msgstr[1] ""
msgid "should have at least %{count} item(s)"
msgid_plural "should have at least %{count} item(s)"
msgstr[0] ""
msgstr[1] ""
msgid "should be at least %{count} character(s)"
msgid_plural "should be at least %{count} character(s)"
msgstr[0] ""
msgstr[1] ""
msgid "should be at least %{count} byte(s)"
msgid_plural "should be at least %{count} byte(s)"
msgstr[0] ""
msgstr[1] ""
msgid "should have at most %{count} item(s)"
msgid_plural "should have at most %{count} item(s)"
msgstr[0] ""
msgstr[1] ""
msgid "should be at most %{count} character(s)"
msgid_plural "should be at most %{count} character(s)"
msgstr[0] ""
msgstr[1] ""
msgid "should be at most %{count} byte(s)"
msgid_plural "should be at most %{count} byte(s)"
msgstr[0] ""
msgstr[1] ""
## From Ecto.Changeset.validate_number/3
msgid "must be less than %{number}"
msgstr ""
msgid "must be greater than %{number}"
msgstr ""
msgid "must be less than or equal to %{number}"
msgstr ""
msgid "must be greater than or equal to %{number}"
msgstr ""
msgid "must be equal to %{number}"
msgstr "" msgstr ""

View File

@@ -0,0 +1,241 @@
## "msgid"s in this file come from POT (.pot) files.
##
## Do not add, change, or remove "msgid"s manually here as
## they're tied to the ones in the corresponding POT file
## (with the same domain).
##
## Use "mix gettext.extract --merge" or "mix gettext.merge"
## to merge POT files into PO files.
msgid ""
msgstr ""
"Language: en\n"
"Plural-Forms: nplurals=2\n"
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.ex:64
#: lib/cannery_web/live/container_live/form_component.ex:65
#: lib/cannery_web/live/invite_live/form_component.ex:59
#: lib/cannery_web/live/tag_live/form_component.ex:101
msgid "%{name} created successfully"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/index.ex:41
#: lib/cannery_web/live/ammo_type_live/show.ex:40
#: lib/cannery_web/live/invite_live/index.ex:55
#: lib/cannery_web/live/invite_live/index.ex:135
#: lib/cannery_web/live/tag_live/index.ex:40
msgid "%{name} deleted succesfully"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/invite_live/index.ex:111
msgid "%{name} disabled succesfully"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/invite_live/index.ex:89
msgid "%{name} enabled succesfully"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/container_live/index.ex:48
#: lib/cannery_web/live/container_live/show.ex:64
msgid "%{name} has been deleted"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/invite_live/index.ex:69
msgid "%{name} updated succesfully"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.ex:46
#: lib/cannery_web/live/container_live/form_component.ex:47
#: lib/cannery_web/live/invite_live/form_component.ex:41
#: lib/cannery_web/live/tag_live/form_component.ex:83
msgid "%{name} updated successfully"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/controllers/user_settings_controller.ex:28
msgid "A link to confirm your email change has been sent to the new address."
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/form_component.ex:87
msgid "Ammo group created successfully"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/index.ex:54
#: lib/cannery_web/live/ammo_group_live/show.ex:34
msgid "Ammo group deleted succesfully"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/form_component.ex:69
msgid "Ammo group updated successfully"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/invite_live/index.html.heex:102
#: lib/cannery_web/live/invite_live/index.html.heex:131
msgid "Are you sure you want to delete %{email}? This action is permanent!"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/show.html.heex:29
#: lib/cannery_web/live/container_live/index.html.heex:38
#: lib/cannery_web/live/container_live/show.html.heex:37
#: lib/cannery_web/live/tag_live/index.html.heex:38
msgid "Are you sure you want to delete %{name}?"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/invite_live/index.html.heex:49
msgid "Are you sure you want to delete the invite for %{name}?"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/index.html.heex:120
#: lib/cannery_web/live/ammo_group_live/show.html.heex:47
#: lib/cannery_web/live/ammo_type_live/index.html.heex:68
msgid "Are you sure you want to delete this ammo?"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/templates/user_settings/edit.html.heex:113
msgid "Are you sure you want to delete your account?"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/components/topbar.ex:86
msgid "Are you sure you want to log out?"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/invite_live/index.html.heex:74
msgid "Are you sure you want to make %{name} unlimited?"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/controllers/user_settings_controller.ex:60
msgid "Email changed successfully."
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/controllers/user_confirmation_controller.ex:22
msgid "If your email is in our system and it has not been confirmed yet, you will receive an email with instructions shortly."
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/controllers/user_reset_password_controller.ex:24
msgid "If your email is in our system, you will receive instructions to reset your password shortly."
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/controllers/user_session_controller.ex:23
msgid "Logged out successfully."
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/controllers/user_reset_password_controller.ex:43
msgid "Password reset successfully."
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/controllers/user_settings_controller.ex:47
msgid "Password updated successfully."
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/controllers/user_registration_controller.ex:71
msgid "Please check your email to verify your account"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/home_live.ex:97
msgid "Register to setup %{name}"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/components/add_shot_group_component.html.heex:44
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:55
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:176
#: lib/cannery_web/live/container_live/form_component.html.heex:52
#: lib/cannery_web/live/invite_live/form_component.html.heex:30
#: lib/cannery_web/live/range_live/form_component.html.heex:42
#: lib/cannery_web/live/tag_live/form_component.ex:68
msgid "Saving..."
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/controllers/user_settings_controller.ex:78
msgid "Your account has been deleted"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/container_live/show.html.heex:71
msgid "Are you sure you want to remove the %{tag_name} tag from %{container_name}?"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/container_live/add_tag_component.ex:40
msgid "%{name} added successfully"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/container_live/show.ex:40
msgid "%{tag_name} has been removed from %{container_name}"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/container_live/add_tag_component.html.heex:19
msgid "Adding..."
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/components/add_shot_group_component.ex:68
msgid "Shots recorded successfully"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/range_live/index.html.heex:29
msgid "Are you sure you want to unstage this ammo?"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/range_live/index.ex:70
msgid "Ammo group unstaged succesfully"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/range_live/index.html.heex:108
msgid "Are you sure you want to delete this shot record?"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/range_live/index.ex:56
msgid "Shot records deleted succesfully"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/range_live/form_component.ex:55
msgid "Shot records updated successfully"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/controllers/user_confirmation_controller.ex:37
msgid "%{email} confirmed successfully."
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/components/move_ammo_group_component.ex:47
msgid "Ammo moved to %{name} successfully"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/invite_live/index.ex:123
msgid "Copied to clipboard"
msgstr ""

View File

@@ -57,10 +57,10 @@ msgid "Not found"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/templates/user_registration/new.html.heex:17 #: lib/cannery_web/templates/user_registration/new.html.heex:16
#: lib/cannery_web/templates/user_reset_password/edit.html.heex:17 #: lib/cannery_web/templates/user_reset_password/edit.html.heex:16
#: lib/cannery_web/templates/user_settings/edit.html.heex:23 #: lib/cannery_web/templates/user_settings/edit.html.heex:22
#: lib/cannery_web/templates/user_settings/edit.html.heex:67 #: lib/cannery_web/templates/user_settings/edit.html.heex:66
msgid "Oops, something went wrong! Please check the errors below." msgid "Oops, something went wrong! Please check the errors below."
msgstr "" msgstr ""

View File

@@ -78,8 +78,8 @@ msgid "Ammo group updated successfully"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/invite_live/index.html.heex:103 #: lib/cannery_web/live/invite_live/index.html.heex:102
#: lib/cannery_web/live/invite_live/index.html.heex:132 #: lib/cannery_web/live/invite_live/index.html.heex:131
msgid "Are you sure you want to delete %{email}? This action is permanent!" msgid "Are you sure you want to delete %{email}? This action is permanent!"
msgstr "" msgstr ""
@@ -92,7 +92,7 @@ msgid "Are you sure you want to delete %{name}?"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/invite_live/index.html.heex:50 #: lib/cannery_web/live/invite_live/index.html.heex:49
msgid "Are you sure you want to delete the invite for %{name}?" msgid "Are you sure you want to delete the invite for %{name}?"
msgstr "" msgstr ""
@@ -104,17 +104,17 @@ msgid "Are you sure you want to delete this ammo?"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/templates/user_settings/edit.html.heex:113 #: lib/cannery_web/templates/user_settings/edit.html.heex:112
msgid "Are you sure you want to delete your account?" msgid "Are you sure you want to delete your account?"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/components/topbar.ex:87 #: lib/cannery_web/components/topbar.ex:86
msgid "Are you sure you want to log out?" msgid "Are you sure you want to log out?"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/invite_live/index.html.heex:75 #: lib/cannery_web/live/invite_live/index.html.heex:74
msgid "Are you sure you want to make %{name} unlimited?" msgid "Are you sure you want to make %{name} unlimited?"
msgstr "" msgstr ""
@@ -161,7 +161,7 @@ msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/components/add_shot_group_component.html.heex:44 #: lib/cannery_web/components/add_shot_group_component.html.heex:44
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:55 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:55
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:176 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:173
#: lib/cannery_web/live/container_live/form_component.html.heex:52 #: lib/cannery_web/live/container_live/form_component.html.heex:52
#: lib/cannery_web/live/invite_live/form_component.html.heex:30 #: lib/cannery_web/live/invite_live/form_component.html.heex:30
#: lib/cannery_web/live/range_live/form_component.html.heex:42 #: lib/cannery_web/live/range_live/form_component.html.heex:42

View File

@@ -56,8 +56,8 @@ defmodule Cannery.Fixtures do
|> Atom.to_string() |> Atom.to_string()
|> Email.generate_email(Accounts.get_user!(user_id), attrs) |> Email.generate_email(Accounts.get_user!(user_id), attrs)
[_, html_token, _] = email.html_body |> String.split("[TOKEN]") [_, html_token | _] = email.html_body |> String.split("[TOKEN]")
[_, text_token, _] = email.text_body |> String.split("[TOKEN]") [_, text_token | _] = email.text_body |> String.split("[TOKEN]")
^text_token = html_token ^text_token = html_token
end end