forked from shibao/cannery
		
	add search to container index
This commit is contained in:
		| @@ -1,6 +1,6 @@ | |||||||
| # v0.8.0 | # v0.8.0 | ||||||
| - Add search to catalog and ammo | - Add search to catalog, ammo and container index | ||||||
| - Tweak urls for catalog and ammo | - Tweak urls for catalog, ammo and containers | ||||||
|  |  | ||||||
| # v0.7.2 | # v0.7.2 | ||||||
| - Code improvements | - Code improvements | ||||||
|   | |||||||
| @@ -17,17 +17,56 @@ defmodule Cannery.Containers do | |||||||
|       iex> list_containers(%User{id: 123}) |       iex> list_containers(%User{id: 123}) | ||||||
|       [%Container{}, ...] |       [%Container{}, ...] | ||||||
|  |  | ||||||
|  |       iex> list_containers("cool", %User{id: 123}) | ||||||
|  |       [%Container{name: "my cool container"}, ...] | ||||||
|  |  | ||||||
|   """ |   """ | ||||||
|   @spec list_containers(User.t()) :: [Container.t()] |   @spec list_containers(User.t()) :: [Container.t()] | ||||||
|   def list_containers(%User{id: user_id}) do |   @spec list_containers(search :: nil | String.t(), User.t()) :: [Container.t()] | ||||||
|     Repo.all( |   def list_containers(search \\ nil, %User{id: user_id}) do | ||||||
|       from c in Container, |     from(c in Container, | ||||||
|  |       as: :c, | ||||||
|       left_join: t in assoc(c, :tags), |       left_join: t in assoc(c, :tags), | ||||||
|  |       as: :t, | ||||||
|       left_join: ag in assoc(c, :ammo_groups), |       left_join: ag in assoc(c, :ammo_groups), | ||||||
|  |       as: :ag, | ||||||
|       where: c.user_id == ^user_id, |       where: c.user_id == ^user_id, | ||||||
|       order_by: c.name, |       order_by: c.name, | ||||||
|       preload: [tags: t, ammo_groups: ag] |       preload: [tags: t, ammo_groups: ag] | ||||||
|     ) |     ) | ||||||
|  |     |> list_containers_search(search) | ||||||
|  |     |> Repo.all() | ||||||
|  |   end | ||||||
|  |  | ||||||
|  |   defp list_containers_search(query, nil), do: query | ||||||
|  |   defp list_containers_search(query, ""), do: query | ||||||
|  |  | ||||||
|  |   defp list_containers_search(query, search) do | ||||||
|  |     trimmed_search = String.trim(search) | ||||||
|  |  | ||||||
|  |     query | ||||||
|  |     |> where( | ||||||
|  |       [c: c, t: t], | ||||||
|  |       fragment( | ||||||
|  |         "? @@ websearch_to_tsquery('english', ?)", | ||||||
|  |         c.search, | ||||||
|  |         ^trimmed_search | ||||||
|  |       ) or | ||||||
|  |         fragment( | ||||||
|  |           "? @@ websearch_to_tsquery('english', ?)", | ||||||
|  |           t.search, | ||||||
|  |           ^trimmed_search | ||||||
|  |         ) | ||||||
|  |     ) | ||||||
|  |     |> order_by( | ||||||
|  |       [c: c], | ||||||
|  |       desc: | ||||||
|  |         fragment( | ||||||
|  |           "ts_rank_cd(?, websearch_to_tsquery('english', ?), 4)", | ||||||
|  |           c.search, | ||||||
|  |           ^trimmed_search | ||||||
|  |         ) | ||||||
|  |     ) | ||||||
|   end |   end | ||||||
|  |  | ||||||
|   @doc """ |   @doc """ | ||||||
|   | |||||||
| @@ -10,7 +10,13 @@ defmodule CanneryWeb.ContainerLive.Index do | |||||||
|   alias Ecto.Changeset |   alias Ecto.Changeset | ||||||
|  |  | ||||||
|   @impl true |   @impl true | ||||||
|   def mount(_params, _session, socket), do: {:ok, socket |> assign(view_table: false)} |   def mount(%{"search" => search}, _session, socket) do | ||||||
|  |     {:ok, socket |> assign(view_table: true, search: search) |> display_containers()} | ||||||
|  |   end | ||||||
|  |  | ||||||
|  |   def mount(_params, _session, socket) do | ||||||
|  |     {:ok, socket |> assign(view_table: true, search: nil) |> display_containers()} | ||||||
|  |   end | ||||||
|  |  | ||||||
|   @impl true |   @impl true | ||||||
|   def handle_params(params, _url, %{assigns: %{live_action: live_action}} = socket) do |   def handle_params(params, _url, %{assigns: %{live_action: live_action}} = socket) do | ||||||
| @@ -21,7 +27,7 @@ defmodule CanneryWeb.ContainerLive.Index do | |||||||
|     %{name: container_name} = |     %{name: container_name} = | ||||||
|       container = |       container = | ||||||
|       Containers.get_container!(id, current_user) |       Containers.get_container!(id, current_user) | ||||||
|       |> Repo.preload([:tags, :ammo_groups], force: true) |       |> Repo.preload([:tags, :ammo_groups]) | ||||||
|  |  | ||||||
|     socket |     socket | ||||||
|     |> assign(page_title: gettext("Edit %{name}", name: container_name), container: container) |     |> assign(page_title: gettext("Edit %{name}", name: container_name), container: container) | ||||||
| @@ -42,19 +48,18 @@ defmodule CanneryWeb.ContainerLive.Index do | |||||||
|     socket |     socket | ||||||
|     |> assign( |     |> assign( | ||||||
|       page_title: gettext("Containers"), |       page_title: gettext("Containers"), | ||||||
|       container: nil |       container: nil, | ||||||
|  |       search: nil | ||||||
|     ) |     ) | ||||||
|     |> display_containers() |  | ||||||
|   end |   end | ||||||
|  |  | ||||||
|   defp apply_action(socket, :table, _params) do |   defp apply_action(socket, :search, %{"search" => search}) do | ||||||
|     socket |     socket | ||||||
|     |> assign( |     |> assign( | ||||||
|       page_title: gettext("Containers"), |       page_title: gettext("Containers"), | ||||||
|       container: nil, |       container: nil, | ||||||
|       view_table: true |       search: search | ||||||
|     ) |     ) | ||||||
|     |> display_containers() |  | ||||||
|   end |   end | ||||||
|  |  | ||||||
|   defp apply_action(%{assigns: %{current_user: current_user}} = socket, :edit_tags, %{"id" => id}) do |   defp apply_action(%{assigns: %{current_user: current_user}} = socket, :edit_tags, %{"id" => id}) do | ||||||
| @@ -104,17 +109,22 @@ defmodule CanneryWeb.ContainerLive.Index do | |||||||
|  |  | ||||||
|   @impl true |   @impl true | ||||||
|   def handle_event("toggle_table", _params, %{assigns: %{view_table: view_table}} = socket) do |   def handle_event("toggle_table", _params, %{assigns: %{view_table: view_table}} = socket) do | ||||||
|     new_path = |     {:noreply, socket |> assign(:view_table, !view_table) |> display_containers()} | ||||||
|       if view_table, |  | ||||||
|         do: Routes.container_index_path(Endpoint, :index), |  | ||||||
|         else: Routes.container_index_path(Endpoint, :table) |  | ||||||
|  |  | ||||||
|     {:noreply, socket |> assign(view_table: !view_table) |> push_patch(to: new_path)} |  | ||||||
|   end |   end | ||||||
|  |  | ||||||
|   defp display_containers(%{assigns: %{current_user: current_user}} = socket) do |   @impl true | ||||||
|  |   def handle_event("search", %{"search" => %{"search_term" => ""}}, socket) do | ||||||
|  |     {:noreply, socket |> push_patch(to: Routes.container_index_path(Endpoint, :index))} | ||||||
|  |   end | ||||||
|  |  | ||||||
|  |   def handle_event("search", %{"search" => %{"search_term" => search_term}}, socket) do | ||||||
|  |     {:noreply, | ||||||
|  |      socket |> push_patch(to: Routes.container_index_path(Endpoint, :search, search_term))} | ||||||
|  |   end | ||||||
|  |  | ||||||
|  |   defp display_containers(%{assigns: %{search: search, current_user: current_user}} = socket) do | ||||||
|     containers = |     containers = | ||||||
|       Containers.list_containers(current_user) |> Repo.preload([:tags, :ammo_groups], force: true) |       Containers.list_containers(search, current_user) |> Repo.preload([:tags, :ammo_groups]) | ||||||
|  |  | ||||||
|     columns = |     columns = | ||||||
|       [ |       [ | ||||||
| @@ -243,7 +253,4 @@ defmodule CanneryWeb.ContainerLive.Index do | |||||||
|   end |   end | ||||||
|  |  | ||||||
|   defp get_value_for_key(key, container), do: container |> Map.get(key) |   defp get_value_for_key(key, container), do: container |> Map.get(key) | ||||||
|  |  | ||||||
|   def return_to(true = _view_table), do: Routes.container_index_path(Endpoint, :table) |  | ||||||
|   def return_to(false = _view_table), do: Routes.container_index_path(Endpoint, :index) |  | ||||||
| end | end | ||||||
|   | |||||||
| @@ -3,7 +3,7 @@ | |||||||
|     <%= gettext("Containers") %> |     <%= gettext("Containers") %> | ||||||
|   </h1> |   </h1> | ||||||
|  |  | ||||||
|   <%= if @containers |> Enum.empty?() do %> |   <%= if @containers |> Enum.empty?() and @search |> is_nil() do %> | ||||||
|     <h2 class="title text-xl text-primary-600"> |     <h2 class="title text-xl text-primary-600"> | ||||||
|       <%= gettext("No containers") %> |       <%= gettext("No containers") %> | ||||||
|       <%= display_emoji("😔") %> |       <%= display_emoji("😔") %> | ||||||
| @@ -17,7 +17,23 @@ | |||||||
|       <%= dgettext("actions", "New Container") %> |       <%= dgettext("actions", "New Container") %> | ||||||
|     </.link> |     </.link> | ||||||
|  |  | ||||||
|     <div class="flex flex-col justify-center items-center"> |     <div class="w-full flex flex-col sm:flex-row justify-center items-center space-y-4 sm:space-y-0 sm:space-x-4 max-w-xl"> | ||||||
|  |       <.form | ||||||
|  |         :let={f} | ||||||
|  |         for={:search} | ||||||
|  |         phx-change="search" | ||||||
|  |         phx-submit="search" | ||||||
|  |         class="grow self-stretch flex flex-col items-stretch" | ||||||
|  |         data-qa="container_search" | ||||||
|  |       > | ||||||
|  |         <%= text_input(f, :search_term, | ||||||
|  |           class: "input input-primary", | ||||||
|  |           value: @search, | ||||||
|  |           phx_debounce: 300, | ||||||
|  |           placeholder: gettext("Search containers") | ||||||
|  |         ) %> | ||||||
|  |       </.form> | ||||||
|  |  | ||||||
|       <.toggle_button action="toggle_table" value={@view_table}> |       <.toggle_button action="toggle_table" value={@view_table}> | ||||||
|         <span class="title text-lg text-primary-600"> |         <span class="title text-lg text-primary-600"> | ||||||
|           <%= gettext("View as table") %> |           <%= gettext("View as table") %> | ||||||
| @@ -27,6 +43,12 @@ | |||||||
|   <% end %> |   <% end %> | ||||||
|  |  | ||||||
|   <div class="w-full flex flex-row flex-wrap justify-center items-center"> |   <div class="w-full flex flex-row flex-wrap justify-center items-center"> | ||||||
|  |     <%= if @containers |> Enum.empty?() do %> | ||||||
|  |       <h2 class="title text-xl text-primary-600"> | ||||||
|  |         <%= gettext("No containers") %> | ||||||
|  |         <%= display_emoji("😔") %> | ||||||
|  |       </h2> | ||||||
|  |     <% else %> | ||||||
|       <%= if @view_table do %> |       <%= if @view_table do %> | ||||||
|         <.live_component |         <.live_component | ||||||
|           module={CanneryWeb.Components.TableComponent} |           module={CanneryWeb.Components.TableComponent} | ||||||
| @@ -70,7 +92,9 @@ | |||||||
|               phx-click="delete" |               phx-click="delete" | ||||||
|               phx-value-id={container.id} |               phx-value-id={container.id} | ||||||
|               data-confirm={ |               data-confirm={ | ||||||
|               dgettext("prompts", "Are you sure you want to delete %{name}?", name: container.name) |                 dgettext("prompts", "Are you sure you want to delete %{name}?", | ||||||
|  |                   name: container.name | ||||||
|  |                 ) | ||||||
|               } |               } | ||||||
|               data-qa={"delete-#{container.id}"} |               data-qa={"delete-#{container.id}"} | ||||||
|             > |             > | ||||||
| @@ -79,25 +103,26 @@ | |||||||
|           </.container_card> |           </.container_card> | ||||||
|         <% end %> |         <% end %> | ||||||
|       <% end %> |       <% end %> | ||||||
|  |     <% end %> | ||||||
|   </div> |   </div> | ||||||
| </div> | </div> | ||||||
|  |  | ||||||
| <%= if @live_action in [:new, :edit, :clone] do %> | <%= if @live_action in [:new, :edit, :clone] do %> | ||||||
|   <.modal return_to={return_to(@view_table)}> |   <.modal return_to={Routes.container_index_path(Endpoint, :index)}> | ||||||
|     <.live_component |     <.live_component | ||||||
|       module={CanneryWeb.ContainerLive.FormComponent} |       module={CanneryWeb.ContainerLive.FormComponent} | ||||||
|       id={@container.id || :new} |       id={@container.id || :new} | ||||||
|       title={@page_title} |       title={@page_title} | ||||||
|       action={@live_action} |       action={@live_action} | ||||||
|       container={@container} |       container={@container} | ||||||
|       return_to={return_to(@view_table)} |       return_to={Routes.container_index_path(Endpoint, :index)} | ||||||
|       current_user={@current_user} |       current_user={@current_user} | ||||||
|     /> |     /> | ||||||
|   </.modal> |   </.modal> | ||||||
| <% end %> | <% end %> | ||||||
|  |  | ||||||
| <%= if @live_action == :edit_tags do %> | <%= if @live_action == :edit_tags do %> | ||||||
|   <.modal return_to={return_to(@view_table)}> |   <.modal return_to={Routes.container_index_path(Endpoint, :index)}> | ||||||
|     <.live_component |     <.live_component | ||||||
|       module={CanneryWeb.ContainerLive.EditTagsComponent} |       module={CanneryWeb.ContainerLive.EditTagsComponent} | ||||||
|       id={@container.id} |       id={@container.id} | ||||||
|   | |||||||
| @@ -11,18 +11,14 @@ defmodule CanneryWeb.ContainerLive.Show do | |||||||
|   alias Phoenix.LiveView.Socket |   alias Phoenix.LiveView.Socket | ||||||
|  |  | ||||||
|   @impl true |   @impl true | ||||||
|   def mount(_params, _session, %{assigns: %{live_action: live_action}} = socket), |   def mount(_params, _session, socket), | ||||||
|     do: {:ok, socket |> assign(show_used: false, view_table: live_action == :table)} |     do: {:ok, socket |> assign(show_used: false, view_table: true)} | ||||||
|  |  | ||||||
|   @impl true |   @impl true | ||||||
|   def handle_params( |   def handle_params(%{"id" => id}, _session, %{assigns: %{current_user: current_user}} = socket) do | ||||||
|         %{"id" => id}, |  | ||||||
|         _session, |  | ||||||
|         %{assigns: %{current_user: current_user, live_action: live_action}} = socket |  | ||||||
|       ) do |  | ||||||
|     socket = |     socket = | ||||||
|       socket |       socket | ||||||
|       |> assign(view_table: live_action == :table) |       |> assign(view_table: true) | ||||||
|       |> render_container(id, current_user) |       |> render_container(id, current_user) | ||||||
|  |  | ||||||
|     {:noreply, socket} |     {:noreply, socket} | ||||||
| @@ -94,17 +90,8 @@ defmodule CanneryWeb.ContainerLive.Show do | |||||||
|   end |   end | ||||||
|  |  | ||||||
|   @impl true |   @impl true | ||||||
|   def handle_event( |   def handle_event("toggle_table", _params, %{assigns: %{view_table: view_table}} = socket) do | ||||||
|         "toggle_table", |     {:noreply, socket |> assign(:view_table, !view_table) |> render_container()} | ||||||
|         _params, |  | ||||||
|         %{assigns: %{view_table: view_table, container: container}} = socket |  | ||||||
|       ) do |  | ||||||
|     new_path = |  | ||||||
|       if view_table, |  | ||||||
|         do: Routes.container_show_path(Endpoint, :show, container), |  | ||||||
|         else: Routes.container_show_path(Endpoint, :table, container) |  | ||||||
|  |  | ||||||
|     {:noreply, socket |> push_patch(to: new_path)} |  | ||||||
|   end |   end | ||||||
|  |  | ||||||
|   @spec render_container(Socket.t(), Container.id(), User.t()) :: Socket.t() |   @spec render_container(Socket.t(), Container.id(), User.t()) :: Socket.t() | ||||||
|   | |||||||
| @@ -77,16 +77,15 @@ defmodule CanneryWeb.Router do | |||||||
|     live "/type/:id/table", AmmoTypeLive.Show, :table |     live "/type/:id/table", AmmoTypeLive.Show, :table | ||||||
|  |  | ||||||
|     live "/containers", ContainerLive.Index, :index |     live "/containers", ContainerLive.Index, :index | ||||||
|     live "/containers/table", ContainerLive.Index, :table |  | ||||||
|     live "/containers/new", ContainerLive.Index, :new |     live "/containers/new", ContainerLive.Index, :new | ||||||
|     live "/containers/:id/edit", ContainerLive.Index, :edit |     live "/containers/edit/:id", ContainerLive.Index, :edit | ||||||
|     live "/containers/:id/clone", ContainerLive.Index, :clone |     live "/containers/clone/:id", ContainerLive.Index, :clone | ||||||
|     live "/containers/:id/edit_tags", ContainerLive.Index, :edit_tags |     live "/containers/edit_tags/:id", ContainerLive.Index, :edit_tags | ||||||
|  |     live "/containers/search/:search", ContainerLive.Index, :search | ||||||
|  |  | ||||||
|     live "/containers/:id/show", ContainerLive.Show, :show |     live "/container/:id", ContainerLive.Show, :show | ||||||
|     live "/containers/:id/show/table", ContainerLive.Show, :table |     live "/container/edit/:id", ContainerLive.Show, :edit | ||||||
|     live "/containers/:id/show/edit", ContainerLive.Show, :edit |     live "/container/edit_tags/:id", ContainerLive.Show, :edit_tags | ||||||
|     live "/containers/:id/show/edit_tags", ContainerLive.Show, :edit_tags |  | ||||||
|  |  | ||||||
|     live "/ammo", AmmoGroupLive.Index, :index |     live "/ammo", AmmoGroupLive.Index, :index | ||||||
|     live "/ammo/new", AmmoGroupLive.Index, :new |     live "/ammo/new", AmmoGroupLive.Index, :new | ||||||
|   | |||||||
| @@ -114,8 +114,8 @@ msgid "Container" | |||||||
| msgstr "Behälter" | msgstr "Behälter" | ||||||
|  |  | ||||||
| #: lib/cannery_web/components/topbar.ex:57 | #: lib/cannery_web/components/topbar.ex:57 | ||||||
| #: lib/cannery_web/live/container_live/index.ex:44 | #: lib/cannery_web/live/container_live/index.ex:50 | ||||||
| #: lib/cannery_web/live/container_live/index.ex:53 | #: lib/cannery_web/live/container_live/index.ex:59 | ||||||
| #: lib/cannery_web/live/container_live/index.html.heex:3 | #: lib/cannery_web/live/container_live/index.html.heex:3 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "Containers" | msgid "Containers" | ||||||
| @@ -141,7 +141,7 @@ msgstr "Anzahl:" | |||||||
|  |  | ||||||
| #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:24 | #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:24 | ||||||
| #: lib/cannery_web/live/container_live/form_component.html.heex:27 | #: lib/cannery_web/live/container_live/form_component.html.heex:27 | ||||||
| #: lib/cannery_web/live/container_live/index.ex:122 | #: lib/cannery_web/live/container_live/index.ex:132 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "Description" | msgid "Description" | ||||||
| msgstr "Beschreibung" | msgstr "Beschreibung" | ||||||
| @@ -218,7 +218,7 @@ msgstr "Für 60 Tage eingeloggt bleiben" | |||||||
|  |  | ||||||
| #: lib/cannery_web/components/move_ammo_group_component.ex:69 | #: lib/cannery_web/components/move_ammo_group_component.ex:69 | ||||||
| #: lib/cannery_web/live/container_live/form_component.html.heex:42 | #: lib/cannery_web/live/container_live/form_component.html.heex:42 | ||||||
| #: lib/cannery_web/live/container_live/index.ex:123 | #: lib/cannery_web/live/container_live/index.ex:133 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "Location" | msgid "Location" | ||||||
| msgstr "Standort" | msgstr "Standort" | ||||||
| @@ -253,7 +253,7 @@ msgstr "Meine coole Munitionskiste" | |||||||
| #: lib/cannery_web/components/ammo_type_table_component.ex:45 | #: lib/cannery_web/components/ammo_type_table_component.ex:45 | ||||||
| #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:20 | #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:20 | ||||||
| #: lib/cannery_web/live/container_live/form_component.html.heex:20 | #: lib/cannery_web/live/container_live/form_component.html.heex:20 | ||||||
| #: lib/cannery_web/live/container_live/index.ex:121 | #: lib/cannery_web/live/container_live/index.ex:131 | ||||||
| #: lib/cannery_web/live/invite_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:75 | #: lib/cannery_web/live/tag_live/form_component.ex:75 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| @@ -266,8 +266,8 @@ msgstr "Name" | |||||||
| msgid "New Ammo type" | msgid "New Ammo type" | ||||||
| msgstr "Neuer Munitionstyp" | msgstr "Neuer Munitionstyp" | ||||||
|  |  | ||||||
| #: lib/cannery_web/live/container_live/index.ex:31 | #: lib/cannery_web/live/container_live/index.ex:37 | ||||||
| #: lib/cannery_web/live/container_live/index.ex:38 | #: lib/cannery_web/live/container_live/index.ex:44 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "New Container" | msgid "New Container" | ||||||
| msgstr "Neuer Behälter" | msgstr "Neuer Behälter" | ||||||
| @@ -294,6 +294,7 @@ msgid "No ammo for this type" | |||||||
| msgstr "Keine Munition dieser Art" | msgstr "Keine Munition dieser Art" | ||||||
|  |  | ||||||
| #: lib/cannery_web/live/container_live/index.html.heex:8 | #: lib/cannery_web/live/container_live/index.html.heex:8 | ||||||
|  | #: lib/cannery_web/live/container_live/index.html.heex:48 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "No containers" | msgid "No containers" | ||||||
| msgstr "Kein Behälter" | msgstr "Kein Behälter" | ||||||
| @@ -392,7 +393,7 @@ msgid "Stored in" | |||||||
| msgstr "Gelagert in" | msgstr "Gelagert in" | ||||||
|  |  | ||||||
| #: lib/cannery_web/components/topbar.ex:49 | #: lib/cannery_web/components/topbar.ex:49 | ||||||
| #: lib/cannery_web/live/container_live/index.ex:127 | #: lib/cannery_web/live/container_live/index.ex:137 | ||||||
| #: lib/cannery_web/live/tag_live/index.ex:32 | #: lib/cannery_web/live/tag_live/index.ex:32 | ||||||
| #: lib/cannery_web/live/tag_live/index.html.heex:3 | #: lib/cannery_web/live/tag_live/index.html.heex:3 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| @@ -422,7 +423,7 @@ msgstr "Leuchtspur" | |||||||
|  |  | ||||||
| #: lib/cannery_web/components/move_ammo_group_component.ex:68 | #: lib/cannery_web/components/move_ammo_group_component.ex:68 | ||||||
| #: lib/cannery_web/live/container_live/form_component.html.heex:35 | #: lib/cannery_web/live/container_live/form_component.html.heex:35 | ||||||
| #: lib/cannery_web/live/container_live/index.ex:124 | #: lib/cannery_web/live/container_live/index.ex:134 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "Type" | msgid "Type" | ||||||
| msgstr "Art" | msgstr "Art" | ||||||
| @@ -637,14 +638,14 @@ msgstr "Neu verbinden..." | |||||||
| msgid "Loading..." | msgid "Loading..." | ||||||
| msgstr "Lädt..." | msgstr "Lädt..." | ||||||
|  |  | ||||||
| #: lib/cannery_web/live/container_live/index.ex:27 | #: lib/cannery_web/live/container_live/index.ex:33 | ||||||
| #: lib/cannery_web/live/container_live/show.ex:126 | #: lib/cannery_web/live/container_live/show.ex:113 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "Edit %{name}" | msgid "Edit %{name}" | ||||||
| msgstr "%{name} bearbeiten" | msgstr "%{name} bearbeiten" | ||||||
|  |  | ||||||
| #: lib/cannery_web/live/container_live/index.ex:65 | #: lib/cannery_web/live/container_live/index.ex:70 | ||||||
| #: lib/cannery_web/live/container_live/show.ex:127 | #: lib/cannery_web/live/container_live/show.ex:114 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "Edit %{name} tags" | msgid "Edit %{name} tags" | ||||||
| msgstr "Editiere %{name} Tags" | msgstr "Editiere %{name} Tags" | ||||||
| @@ -863,19 +864,19 @@ msgid "Rounds shot: %{count}" | |||||||
| msgstr "Patronen abgefeuert" | msgstr "Patronen abgefeuert" | ||||||
|  |  | ||||||
| #: lib/cannery_web/components/ammo_type_table_component.ex:100 | #: lib/cannery_web/components/ammo_type_table_component.ex:100 | ||||||
| #: lib/cannery_web/live/container_live/index.ex:125 | #: lib/cannery_web/live/container_live/index.ex:135 | ||||||
| #, elixir-autogen, elixir-format, fuzzy | #, elixir-autogen, elixir-format, fuzzy | ||||||
| msgid "Packs" | msgid "Packs" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/cannery_web/components/ammo_type_table_component.ex:80 | #: lib/cannery_web/components/ammo_type_table_component.ex:80 | ||||||
| #: lib/cannery_web/live/container_live/index.ex:126 | #: lib/cannery_web/live/container_live/index.ex:136 | ||||||
| #, elixir-autogen, elixir-format, fuzzy | #, elixir-autogen, elixir-format, fuzzy | ||||||
| msgid "Rounds" | msgid "Rounds" | ||||||
| msgstr "Patronen:" | msgstr "Patronen:" | ||||||
|  |  | ||||||
| #: lib/cannery_web/live/ammo_type_live/show.html.heex:158 | #: lib/cannery_web/live/ammo_type_live/show.html.heex:158 | ||||||
| #: lib/cannery_web/live/container_live/index.html.heex:23 | #: lib/cannery_web/live/container_live/index.html.heex:39 | ||||||
| #: lib/cannery_web/live/container_live/show.html.heex:111 | #: lib/cannery_web/live/container_live/show.html.heex:111 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "View as table" | msgid "View as table" | ||||||
| @@ -1126,3 +1127,8 @@ msgstr "" | |||||||
| #, elixir-autogen, elixir-format, fuzzy | #, elixir-autogen, elixir-format, fuzzy | ||||||
| msgid "Search ammo" | msgid "Search ammo" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
|  | #: lib/cannery_web/live/container_live/index.html.heex:33 | ||||||
|  | #, elixir-autogen, elixir-format | ||||||
|  | msgid "Search containers" | ||||||
|  | msgstr "" | ||||||
|   | |||||||
| @@ -23,18 +23,18 @@ msgstr "" | |||||||
| ## Run "mix gettext.extract" to bring this file up to | ## Run "mix gettext.extract" to bring this file up to | ||||||
| ## date. Leave "msgstr"s empty as changing them here has no | ## date. Leave "msgstr"s empty as changing them here has no | ||||||
| ## effect: edit them in PO (.po) files instead. | ## effect: edit them in PO (.po) files instead. | ||||||
| #: lib/cannery/containers.ex:140 | #: lib/cannery/containers.ex:179 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "Container must be empty before deleting" | msgid "Container must be empty before deleting" | ||||||
| msgstr "Behälter muss vor dem Löschen leer sein" | msgstr "Behälter muss vor dem Löschen leer sein" | ||||||
|  |  | ||||||
| #: lib/cannery_web/live/container_live/index.ex:88 | #: lib/cannery_web/live/container_live/index.ex:93 | ||||||
| #: lib/cannery_web/live/container_live/show.ex:77 | #: lib/cannery_web/live/container_live/show.ex:73 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "Could not delete %{name}: %{error}" | msgid "Could not delete %{name}: %{error}" | ||||||
| msgstr "Konnte %{name} nicht löschen: %{error}" | msgstr "Konnte %{name} nicht löschen: %{error}" | ||||||
|  |  | ||||||
| #: lib/cannery_web/live/container_live/index.ex:76 | #: lib/cannery_web/live/container_live/index.ex:81 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "Could not find that container" | msgid "Could not find that container" | ||||||
| msgstr "Konnte Behälter nicht finden" | msgstr "Konnte Behälter nicht finden" | ||||||
|   | |||||||
| @@ -50,8 +50,8 @@ msgstr "%{name} erfolgreich deaktiviert" | |||||||
| msgid "%{name} enabled succesfully" | msgid "%{name} enabled succesfully" | ||||||
| msgstr "%{name} erfolgreich aktiviert" | msgstr "%{name} erfolgreich aktiviert" | ||||||
|  |  | ||||||
| #: lib/cannery_web/live/container_live/index.ex:81 | #: lib/cannery_web/live/container_live/index.ex:86 | ||||||
| #: lib/cannery_web/live/container_live/show.ex:67 | #: lib/cannery_web/live/container_live/show.ex:63 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "%{name} has been deleted" | msgid "%{name} has been deleted" | ||||||
| msgstr "%{name} wurde gelöscht" | msgstr "%{name} wurde gelöscht" | ||||||
| @@ -82,8 +82,8 @@ msgstr "" | |||||||
| "Sind Sie sicher, dass sie %{email} löschen möchten? Dies kann nicht " | "Sind Sie sicher, dass sie %{email} löschen möchten? Dies kann nicht " | ||||||
| "zurückgenommen werden!" | "zurückgenommen werden!" | ||||||
|  |  | ||||||
| #: lib/cannery_web/live/container_live/index.ex:236 | #: lib/cannery_web/live/container_live/index.ex:246 | ||||||
| #: lib/cannery_web/live/container_live/index.html.heex:73 | #: lib/cannery_web/live/container_live/index.html.heex:95 | ||||||
| #: lib/cannery_web/live/container_live/show.html.heex:59 | #: lib/cannery_web/live/container_live/show.html.heex:59 | ||||||
| #: lib/cannery_web/live/tag_live/index.html.heex:39 | #: lib/cannery_web/live/tag_live/index.html.heex:39 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| @@ -188,7 +188,7 @@ msgstr "" | |||||||
| msgid "%{name} added successfully" | msgid "%{name} added successfully" | ||||||
| msgstr "%{name} erfolgreich hinzugefügt" | msgstr "%{name} erfolgreich hinzugefügt" | ||||||
|  |  | ||||||
| #: lib/cannery_web/live/container_live/show.ex:43 | #: lib/cannery_web/live/container_live/show.ex:39 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "%{tag_name} has been removed from %{container_name}" | msgid "%{tag_name} has been removed from %{container_name}" | ||||||
| msgstr "%{tag_name} wurde von %{container_name} entfernt" | msgstr "%{tag_name} wurde von %{container_name} entfernt" | ||||||
|   | |||||||
| @@ -99,8 +99,8 @@ msgid "Container" | |||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/cannery_web/components/topbar.ex:57 | #: lib/cannery_web/components/topbar.ex:57 | ||||||
| #: lib/cannery_web/live/container_live/index.ex:44 | #: lib/cannery_web/live/container_live/index.ex:50 | ||||||
| #: lib/cannery_web/live/container_live/index.ex:53 | #: lib/cannery_web/live/container_live/index.ex:59 | ||||||
| #: lib/cannery_web/live/container_live/index.html.heex:3 | #: lib/cannery_web/live/container_live/index.html.heex:3 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "Containers" | msgid "Containers" | ||||||
| @@ -126,7 +126,7 @@ msgstr "" | |||||||
|  |  | ||||||
| #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:24 | #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:24 | ||||||
| #: lib/cannery_web/live/container_live/form_component.html.heex:27 | #: lib/cannery_web/live/container_live/form_component.html.heex:27 | ||||||
| #: lib/cannery_web/live/container_live/index.ex:122 | #: lib/cannery_web/live/container_live/index.ex:132 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "Description" | msgid "Description" | ||||||
| msgstr "" | msgstr "" | ||||||
| @@ -203,7 +203,7 @@ msgstr "" | |||||||
|  |  | ||||||
| #: lib/cannery_web/components/move_ammo_group_component.ex:69 | #: lib/cannery_web/components/move_ammo_group_component.ex:69 | ||||||
| #: lib/cannery_web/live/container_live/form_component.html.heex:42 | #: lib/cannery_web/live/container_live/form_component.html.heex:42 | ||||||
| #: lib/cannery_web/live/container_live/index.ex:123 | #: lib/cannery_web/live/container_live/index.ex:133 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "Location" | msgid "Location" | ||||||
| msgstr "" | msgstr "" | ||||||
| @@ -238,7 +238,7 @@ msgstr "" | |||||||
| #: lib/cannery_web/components/ammo_type_table_component.ex:45 | #: lib/cannery_web/components/ammo_type_table_component.ex:45 | ||||||
| #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:20 | #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:20 | ||||||
| #: lib/cannery_web/live/container_live/form_component.html.heex:20 | #: lib/cannery_web/live/container_live/form_component.html.heex:20 | ||||||
| #: lib/cannery_web/live/container_live/index.ex:121 | #: lib/cannery_web/live/container_live/index.ex:131 | ||||||
| #: lib/cannery_web/live/invite_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:75 | #: lib/cannery_web/live/tag_live/form_component.ex:75 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| @@ -251,8 +251,8 @@ msgstr "" | |||||||
| msgid "New Ammo type" | msgid "New Ammo type" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/cannery_web/live/container_live/index.ex:31 | #: lib/cannery_web/live/container_live/index.ex:37 | ||||||
| #: lib/cannery_web/live/container_live/index.ex:38 | #: lib/cannery_web/live/container_live/index.ex:44 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "New Container" | msgid "New Container" | ||||||
| msgstr "" | msgstr "" | ||||||
| @@ -279,6 +279,7 @@ msgid "No ammo for this type" | |||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/cannery_web/live/container_live/index.html.heex:8 | #: lib/cannery_web/live/container_live/index.html.heex:8 | ||||||
|  | #: lib/cannery_web/live/container_live/index.html.heex:48 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "No containers" | msgid "No containers" | ||||||
| msgstr "" | msgstr "" | ||||||
| @@ -375,7 +376,7 @@ msgid "Stored in" | |||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/cannery_web/components/topbar.ex:49 | #: lib/cannery_web/components/topbar.ex:49 | ||||||
| #: lib/cannery_web/live/container_live/index.ex:127 | #: lib/cannery_web/live/container_live/index.ex:137 | ||||||
| #: lib/cannery_web/live/tag_live/index.ex:32 | #: lib/cannery_web/live/tag_live/index.ex:32 | ||||||
| #: lib/cannery_web/live/tag_live/index.html.heex:3 | #: lib/cannery_web/live/tag_live/index.html.heex:3 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| @@ -405,7 +406,7 @@ msgstr "" | |||||||
|  |  | ||||||
| #: lib/cannery_web/components/move_ammo_group_component.ex:68 | #: lib/cannery_web/components/move_ammo_group_component.ex:68 | ||||||
| #: lib/cannery_web/live/container_live/form_component.html.heex:35 | #: lib/cannery_web/live/container_live/form_component.html.heex:35 | ||||||
| #: lib/cannery_web/live/container_live/index.ex:124 | #: lib/cannery_web/live/container_live/index.ex:134 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "Type" | msgid "Type" | ||||||
| msgstr "" | msgstr "" | ||||||
| @@ -620,14 +621,14 @@ msgstr "" | |||||||
| msgid "Loading..." | msgid "Loading..." | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/cannery_web/live/container_live/index.ex:27 | #: lib/cannery_web/live/container_live/index.ex:33 | ||||||
| #: lib/cannery_web/live/container_live/show.ex:126 | #: lib/cannery_web/live/container_live/show.ex:113 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "Edit %{name}" | msgid "Edit %{name}" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/cannery_web/live/container_live/index.ex:65 | #: lib/cannery_web/live/container_live/index.ex:70 | ||||||
| #: lib/cannery_web/live/container_live/show.ex:127 | #: lib/cannery_web/live/container_live/show.ex:114 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "Edit %{name} tags" | msgid "Edit %{name} tags" | ||||||
| msgstr "" | msgstr "" | ||||||
| @@ -846,19 +847,19 @@ msgid "Rounds shot: %{count}" | |||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/cannery_web/components/ammo_type_table_component.ex:100 | #: lib/cannery_web/components/ammo_type_table_component.ex:100 | ||||||
| #: lib/cannery_web/live/container_live/index.ex:125 | #: lib/cannery_web/live/container_live/index.ex:135 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "Packs" | msgid "Packs" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/cannery_web/components/ammo_type_table_component.ex:80 | #: lib/cannery_web/components/ammo_type_table_component.ex:80 | ||||||
| #: lib/cannery_web/live/container_live/index.ex:126 | #: lib/cannery_web/live/container_live/index.ex:136 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "Rounds" | msgid "Rounds" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/cannery_web/live/ammo_type_live/show.html.heex:158 | #: lib/cannery_web/live/ammo_type_live/show.html.heex:158 | ||||||
| #: lib/cannery_web/live/container_live/index.html.heex:23 | #: lib/cannery_web/live/container_live/index.html.heex:39 | ||||||
| #: lib/cannery_web/live/container_live/show.html.heex:111 | #: lib/cannery_web/live/container_live/show.html.heex:111 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "View as table" | msgid "View as table" | ||||||
| @@ -1109,3 +1110,8 @@ msgstr "" | |||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "Search ammo" | msgid "Search ammo" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
|  | #: lib/cannery_web/live/container_live/index.html.heex:33 | ||||||
|  | #, elixir-autogen, elixir-format | ||||||
|  | msgid "Search containers" | ||||||
|  | msgstr "" | ||||||
|   | |||||||
| @@ -100,8 +100,8 @@ msgid "Container" | |||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/cannery_web/components/topbar.ex:57 | #: lib/cannery_web/components/topbar.ex:57 | ||||||
| #: lib/cannery_web/live/container_live/index.ex:44 | #: lib/cannery_web/live/container_live/index.ex:50 | ||||||
| #: lib/cannery_web/live/container_live/index.ex:53 | #: lib/cannery_web/live/container_live/index.ex:59 | ||||||
| #: lib/cannery_web/live/container_live/index.html.heex:3 | #: lib/cannery_web/live/container_live/index.html.heex:3 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "Containers" | msgid "Containers" | ||||||
| @@ -127,7 +127,7 @@ msgstr "" | |||||||
|  |  | ||||||
| #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:24 | #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:24 | ||||||
| #: lib/cannery_web/live/container_live/form_component.html.heex:27 | #: lib/cannery_web/live/container_live/form_component.html.heex:27 | ||||||
| #: lib/cannery_web/live/container_live/index.ex:122 | #: lib/cannery_web/live/container_live/index.ex:132 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "Description" | msgid "Description" | ||||||
| msgstr "" | msgstr "" | ||||||
| @@ -204,7 +204,7 @@ msgstr "" | |||||||
|  |  | ||||||
| #: lib/cannery_web/components/move_ammo_group_component.ex:69 | #: lib/cannery_web/components/move_ammo_group_component.ex:69 | ||||||
| #: lib/cannery_web/live/container_live/form_component.html.heex:42 | #: lib/cannery_web/live/container_live/form_component.html.heex:42 | ||||||
| #: lib/cannery_web/live/container_live/index.ex:123 | #: lib/cannery_web/live/container_live/index.ex:133 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "Location" | msgid "Location" | ||||||
| msgstr "" | msgstr "" | ||||||
| @@ -239,7 +239,7 @@ msgstr "" | |||||||
| #: lib/cannery_web/components/ammo_type_table_component.ex:45 | #: lib/cannery_web/components/ammo_type_table_component.ex:45 | ||||||
| #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:20 | #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:20 | ||||||
| #: lib/cannery_web/live/container_live/form_component.html.heex:20 | #: lib/cannery_web/live/container_live/form_component.html.heex:20 | ||||||
| #: lib/cannery_web/live/container_live/index.ex:121 | #: lib/cannery_web/live/container_live/index.ex:131 | ||||||
| #: lib/cannery_web/live/invite_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:75 | #: lib/cannery_web/live/tag_live/form_component.ex:75 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| @@ -252,8 +252,8 @@ msgstr "" | |||||||
| msgid "New Ammo type" | msgid "New Ammo type" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/cannery_web/live/container_live/index.ex:31 | #: lib/cannery_web/live/container_live/index.ex:37 | ||||||
| #: lib/cannery_web/live/container_live/index.ex:38 | #: lib/cannery_web/live/container_live/index.ex:44 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "New Container" | msgid "New Container" | ||||||
| msgstr "" | msgstr "" | ||||||
| @@ -280,6 +280,7 @@ msgid "No ammo for this type" | |||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/cannery_web/live/container_live/index.html.heex:8 | #: lib/cannery_web/live/container_live/index.html.heex:8 | ||||||
|  | #: lib/cannery_web/live/container_live/index.html.heex:48 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "No containers" | msgid "No containers" | ||||||
| msgstr "" | msgstr "" | ||||||
| @@ -376,7 +377,7 @@ msgid "Stored in" | |||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/cannery_web/components/topbar.ex:49 | #: lib/cannery_web/components/topbar.ex:49 | ||||||
| #: lib/cannery_web/live/container_live/index.ex:127 | #: lib/cannery_web/live/container_live/index.ex:137 | ||||||
| #: lib/cannery_web/live/tag_live/index.ex:32 | #: lib/cannery_web/live/tag_live/index.ex:32 | ||||||
| #: lib/cannery_web/live/tag_live/index.html.heex:3 | #: lib/cannery_web/live/tag_live/index.html.heex:3 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| @@ -406,7 +407,7 @@ msgstr "" | |||||||
|  |  | ||||||
| #: lib/cannery_web/components/move_ammo_group_component.ex:68 | #: lib/cannery_web/components/move_ammo_group_component.ex:68 | ||||||
| #: lib/cannery_web/live/container_live/form_component.html.heex:35 | #: lib/cannery_web/live/container_live/form_component.html.heex:35 | ||||||
| #: lib/cannery_web/live/container_live/index.ex:124 | #: lib/cannery_web/live/container_live/index.ex:134 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "Type" | msgid "Type" | ||||||
| msgstr "" | msgstr "" | ||||||
| @@ -621,14 +622,14 @@ msgstr "" | |||||||
| msgid "Loading..." | msgid "Loading..." | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/cannery_web/live/container_live/index.ex:27 | #: lib/cannery_web/live/container_live/index.ex:33 | ||||||
| #: lib/cannery_web/live/container_live/show.ex:126 | #: lib/cannery_web/live/container_live/show.ex:113 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "Edit %{name}" | msgid "Edit %{name}" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/cannery_web/live/container_live/index.ex:65 | #: lib/cannery_web/live/container_live/index.ex:70 | ||||||
| #: lib/cannery_web/live/container_live/show.ex:127 | #: lib/cannery_web/live/container_live/show.ex:114 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "Edit %{name} tags" | msgid "Edit %{name} tags" | ||||||
| msgstr "" | msgstr "" | ||||||
| @@ -847,19 +848,19 @@ msgid "Rounds shot: %{count}" | |||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/cannery_web/components/ammo_type_table_component.ex:100 | #: lib/cannery_web/components/ammo_type_table_component.ex:100 | ||||||
| #: lib/cannery_web/live/container_live/index.ex:125 | #: lib/cannery_web/live/container_live/index.ex:135 | ||||||
| #, elixir-autogen, elixir-format, fuzzy | #, elixir-autogen, elixir-format, fuzzy | ||||||
| msgid "Packs" | msgid "Packs" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/cannery_web/components/ammo_type_table_component.ex:80 | #: lib/cannery_web/components/ammo_type_table_component.ex:80 | ||||||
| #: lib/cannery_web/live/container_live/index.ex:126 | #: lib/cannery_web/live/container_live/index.ex:136 | ||||||
| #, elixir-autogen, elixir-format, fuzzy | #, elixir-autogen, elixir-format, fuzzy | ||||||
| msgid "Rounds" | msgid "Rounds" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/cannery_web/live/ammo_type_live/show.html.heex:158 | #: lib/cannery_web/live/ammo_type_live/show.html.heex:158 | ||||||
| #: lib/cannery_web/live/container_live/index.html.heex:23 | #: lib/cannery_web/live/container_live/index.html.heex:39 | ||||||
| #: lib/cannery_web/live/container_live/show.html.heex:111 | #: lib/cannery_web/live/container_live/show.html.heex:111 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "View as table" | msgid "View as table" | ||||||
| @@ -1110,3 +1111,8 @@ msgstr "" | |||||||
| #, elixir-autogen, elixir-format, fuzzy | #, elixir-autogen, elixir-format, fuzzy | ||||||
| msgid "Search ammo" | msgid "Search ammo" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
|  | #: lib/cannery_web/live/container_live/index.html.heex:33 | ||||||
|  | #, elixir-autogen, elixir-format | ||||||
|  | msgid "Search containers" | ||||||
|  | msgstr "" | ||||||
|   | |||||||
| @@ -10,18 +10,18 @@ msgid "" | |||||||
| msgstr "" | msgstr "" | ||||||
| "Language: en\n" | "Language: en\n" | ||||||
|  |  | ||||||
| #: lib/cannery/containers.ex:140 | #: lib/cannery/containers.ex:179 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "Container must be empty before deleting" | msgid "Container must be empty before deleting" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/cannery_web/live/container_live/index.ex:88 | #: lib/cannery_web/live/container_live/index.ex:93 | ||||||
| #: lib/cannery_web/live/container_live/show.ex:77 | #: lib/cannery_web/live/container_live/show.ex:73 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "Could not delete %{name}: %{error}" | msgid "Could not delete %{name}: %{error}" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/cannery_web/live/container_live/index.ex:76 | #: lib/cannery_web/live/container_live/index.ex:81 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "Could not find that container" | msgid "Could not find that container" | ||||||
| msgstr "" | msgstr "" | ||||||
|   | |||||||
| @@ -38,8 +38,8 @@ msgstr "" | |||||||
| msgid "%{name} enabled succesfully" | msgid "%{name} enabled succesfully" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/cannery_web/live/container_live/index.ex:81 | #: lib/cannery_web/live/container_live/index.ex:86 | ||||||
| #: lib/cannery_web/live/container_live/show.ex:67 | #: lib/cannery_web/live/container_live/show.ex:63 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "%{name} has been deleted" | msgid "%{name} has been deleted" | ||||||
| msgstr "" | msgstr "" | ||||||
| @@ -68,8 +68,8 @@ msgstr "" | |||||||
| 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 "" | ||||||
|  |  | ||||||
| #: lib/cannery_web/live/container_live/index.ex:236 | #: lib/cannery_web/live/container_live/index.ex:246 | ||||||
| #: lib/cannery_web/live/container_live/index.html.heex:73 | #: lib/cannery_web/live/container_live/index.html.heex:95 | ||||||
| #: lib/cannery_web/live/container_live/show.html.heex:59 | #: lib/cannery_web/live/container_live/show.html.heex:59 | ||||||
| #: lib/cannery_web/live/tag_live/index.html.heex:39 | #: lib/cannery_web/live/tag_live/index.html.heex:39 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| @@ -168,7 +168,7 @@ msgstr "" | |||||||
| msgid "%{name} added successfully" | msgid "%{name} added successfully" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/cannery_web/live/container_live/show.ex:43 | #: lib/cannery_web/live/container_live/show.ex:39 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "%{tag_name} has been removed from %{container_name}" | msgid "%{tag_name} has been removed from %{container_name}" | ||||||
| msgstr "" | msgstr "" | ||||||
|   | |||||||
| @@ -10,18 +10,18 @@ | |||||||
| msgid "" | msgid "" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/cannery/containers.ex:140 | #: lib/cannery/containers.ex:179 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "Container must be empty before deleting" | msgid "Container must be empty before deleting" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/cannery_web/live/container_live/index.ex:88 | #: lib/cannery_web/live/container_live/index.ex:93 | ||||||
| #: lib/cannery_web/live/container_live/show.ex:77 | #: lib/cannery_web/live/container_live/show.ex:73 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "Could not delete %{name}: %{error}" | msgid "Could not delete %{name}: %{error}" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/cannery_web/live/container_live/index.ex:76 | #: lib/cannery_web/live/container_live/index.ex:81 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "Could not find that container" | msgid "Could not find that container" | ||||||
| msgstr "" | msgstr "" | ||||||
|   | |||||||
| @@ -114,8 +114,8 @@ msgid "Container" | |||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/cannery_web/components/topbar.ex:57 | #: lib/cannery_web/components/topbar.ex:57 | ||||||
| #: lib/cannery_web/live/container_live/index.ex:44 | #: lib/cannery_web/live/container_live/index.ex:50 | ||||||
| #: lib/cannery_web/live/container_live/index.ex:53 | #: lib/cannery_web/live/container_live/index.ex:59 | ||||||
| #: lib/cannery_web/live/container_live/index.html.heex:3 | #: lib/cannery_web/live/container_live/index.html.heex:3 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "Containers" | msgid "Containers" | ||||||
| @@ -141,7 +141,7 @@ msgstr "" | |||||||
|  |  | ||||||
| #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:24 | #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:24 | ||||||
| #: lib/cannery_web/live/container_live/form_component.html.heex:27 | #: lib/cannery_web/live/container_live/form_component.html.heex:27 | ||||||
| #: lib/cannery_web/live/container_live/index.ex:122 | #: lib/cannery_web/live/container_live/index.ex:132 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "Description" | msgid "Description" | ||||||
| msgstr "" | msgstr "" | ||||||
| @@ -218,7 +218,7 @@ msgstr "" | |||||||
|  |  | ||||||
| #: lib/cannery_web/components/move_ammo_group_component.ex:69 | #: lib/cannery_web/components/move_ammo_group_component.ex:69 | ||||||
| #: lib/cannery_web/live/container_live/form_component.html.heex:42 | #: lib/cannery_web/live/container_live/form_component.html.heex:42 | ||||||
| #: lib/cannery_web/live/container_live/index.ex:123 | #: lib/cannery_web/live/container_live/index.ex:133 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "Location" | msgid "Location" | ||||||
| msgstr "" | msgstr "" | ||||||
| @@ -253,7 +253,7 @@ msgstr "" | |||||||
| #: lib/cannery_web/components/ammo_type_table_component.ex:45 | #: lib/cannery_web/components/ammo_type_table_component.ex:45 | ||||||
| #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:20 | #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:20 | ||||||
| #: lib/cannery_web/live/container_live/form_component.html.heex:20 | #: lib/cannery_web/live/container_live/form_component.html.heex:20 | ||||||
| #: lib/cannery_web/live/container_live/index.ex:121 | #: lib/cannery_web/live/container_live/index.ex:131 | ||||||
| #: lib/cannery_web/live/invite_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:75 | #: lib/cannery_web/live/tag_live/form_component.ex:75 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| @@ -266,8 +266,8 @@ msgstr "" | |||||||
| msgid "New Ammo type" | msgid "New Ammo type" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/cannery_web/live/container_live/index.ex:31 | #: lib/cannery_web/live/container_live/index.ex:37 | ||||||
| #: lib/cannery_web/live/container_live/index.ex:38 | #: lib/cannery_web/live/container_live/index.ex:44 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "New Container" | msgid "New Container" | ||||||
| msgstr "" | msgstr "" | ||||||
| @@ -294,6 +294,7 @@ msgid "No ammo for this type" | |||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/cannery_web/live/container_live/index.html.heex:8 | #: lib/cannery_web/live/container_live/index.html.heex:8 | ||||||
|  | #: lib/cannery_web/live/container_live/index.html.heex:48 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "No containers" | msgid "No containers" | ||||||
| msgstr "" | msgstr "" | ||||||
| @@ -390,7 +391,7 @@ msgid "Stored in" | |||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/cannery_web/components/topbar.ex:49 | #: lib/cannery_web/components/topbar.ex:49 | ||||||
| #: lib/cannery_web/live/container_live/index.ex:127 | #: lib/cannery_web/live/container_live/index.ex:137 | ||||||
| #: lib/cannery_web/live/tag_live/index.ex:32 | #: lib/cannery_web/live/tag_live/index.ex:32 | ||||||
| #: lib/cannery_web/live/tag_live/index.html.heex:3 | #: lib/cannery_web/live/tag_live/index.html.heex:3 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| @@ -420,7 +421,7 @@ msgstr "" | |||||||
|  |  | ||||||
| #: lib/cannery_web/components/move_ammo_group_component.ex:68 | #: lib/cannery_web/components/move_ammo_group_component.ex:68 | ||||||
| #: lib/cannery_web/live/container_live/form_component.html.heex:35 | #: lib/cannery_web/live/container_live/form_component.html.heex:35 | ||||||
| #: lib/cannery_web/live/container_live/index.ex:124 | #: lib/cannery_web/live/container_live/index.ex:134 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "Type" | msgid "Type" | ||||||
| msgstr "" | msgstr "" | ||||||
| @@ -635,14 +636,14 @@ msgstr "" | |||||||
| msgid "Loading..." | msgid "Loading..." | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/cannery_web/live/container_live/index.ex:27 | #: lib/cannery_web/live/container_live/index.ex:33 | ||||||
| #: lib/cannery_web/live/container_live/show.ex:126 | #: lib/cannery_web/live/container_live/show.ex:113 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "Edit %{name}" | msgid "Edit %{name}" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/cannery_web/live/container_live/index.ex:65 | #: lib/cannery_web/live/container_live/index.ex:70 | ||||||
| #: lib/cannery_web/live/container_live/show.ex:127 | #: lib/cannery_web/live/container_live/show.ex:114 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "Edit %{name} tags" | msgid "Edit %{name} tags" | ||||||
| msgstr "" | msgstr "" | ||||||
| @@ -861,19 +862,19 @@ msgid "Rounds shot: %{count}" | |||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/cannery_web/components/ammo_type_table_component.ex:100 | #: lib/cannery_web/components/ammo_type_table_component.ex:100 | ||||||
| #: lib/cannery_web/live/container_live/index.ex:125 | #: lib/cannery_web/live/container_live/index.ex:135 | ||||||
| #, elixir-autogen, elixir-format, fuzzy | #, elixir-autogen, elixir-format, fuzzy | ||||||
| msgid "Packs" | msgid "Packs" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/cannery_web/components/ammo_type_table_component.ex:80 | #: lib/cannery_web/components/ammo_type_table_component.ex:80 | ||||||
| #: lib/cannery_web/live/container_live/index.ex:126 | #: lib/cannery_web/live/container_live/index.ex:136 | ||||||
| #, elixir-autogen, elixir-format, fuzzy | #, elixir-autogen, elixir-format, fuzzy | ||||||
| msgid "Rounds" | msgid "Rounds" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/cannery_web/live/ammo_type_live/show.html.heex:158 | #: lib/cannery_web/live/ammo_type_live/show.html.heex:158 | ||||||
| #: lib/cannery_web/live/container_live/index.html.heex:23 | #: lib/cannery_web/live/container_live/index.html.heex:39 | ||||||
| #: lib/cannery_web/live/container_live/show.html.heex:111 | #: lib/cannery_web/live/container_live/show.html.heex:111 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "View as table" | msgid "View as table" | ||||||
| @@ -1124,3 +1125,8 @@ msgstr "" | |||||||
| #, elixir-autogen, elixir-format, fuzzy | #, elixir-autogen, elixir-format, fuzzy | ||||||
| msgid "Search ammo" | msgid "Search ammo" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
|  | #: lib/cannery_web/live/container_live/index.html.heex:33 | ||||||
|  | #, elixir-autogen, elixir-format | ||||||
|  | msgid "Search containers" | ||||||
|  | msgstr "" | ||||||
|   | |||||||
| @@ -23,18 +23,18 @@ msgstr "" | |||||||
| ## Run "mix gettext.extract" to bring this file up to | ## Run "mix gettext.extract" to bring this file up to | ||||||
| ## date. Leave "msgstr"s empty as changing them here has no | ## date. Leave "msgstr"s empty as changing them here has no | ||||||
| ## effect: edit them in PO (.po) files instead. | ## effect: edit them in PO (.po) files instead. | ||||||
| #: lib/cannery/containers.ex:140 | #: lib/cannery/containers.ex:179 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "Container must be empty before deleting" | msgid "Container must be empty before deleting" | ||||||
| msgstr "El contenedor debe estar vacío antes de ser borrado" | msgstr "El contenedor debe estar vacío antes de ser borrado" | ||||||
|  |  | ||||||
| #: lib/cannery_web/live/container_live/index.ex:88 | #: lib/cannery_web/live/container_live/index.ex:93 | ||||||
| #: lib/cannery_web/live/container_live/show.ex:77 | #: lib/cannery_web/live/container_live/show.ex:73 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "Could not delete %{name}: %{error}" | msgid "Could not delete %{name}: %{error}" | ||||||
| msgstr "No se pudo eliminar %{name}: %{error}" | msgstr "No se pudo eliminar %{name}: %{error}" | ||||||
|  |  | ||||||
| #: lib/cannery_web/live/container_live/index.ex:76 | #: lib/cannery_web/live/container_live/index.ex:81 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "Could not find that container" | msgid "Could not find that container" | ||||||
| msgstr "No se pudo encontrar el contenedor" | msgstr "No se pudo encontrar el contenedor" | ||||||
|   | |||||||
| @@ -50,8 +50,8 @@ msgstr "%{name} desactivado exitosamente" | |||||||
| msgid "%{name} enabled succesfully" | msgid "%{name} enabled succesfully" | ||||||
| msgstr "%{name} activado exitosamente" | msgstr "%{name} activado exitosamente" | ||||||
|  |  | ||||||
| #: lib/cannery_web/live/container_live/index.ex:81 | #: lib/cannery_web/live/container_live/index.ex:86 | ||||||
| #: lib/cannery_web/live/container_live/show.ex:67 | #: lib/cannery_web/live/container_live/show.ex:63 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "%{name} has been deleted" | msgid "%{name} has been deleted" | ||||||
| msgstr "%{name} ha sido borrado" | msgstr "%{name} ha sido borrado" | ||||||
| @@ -82,8 +82,8 @@ msgstr "" | |||||||
| 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 "Está seguro que desea eliminar %{email}? Esta acción es permanente!" | msgstr "Está seguro que desea eliminar %{email}? Esta acción es permanente!" | ||||||
|  |  | ||||||
| #: lib/cannery_web/live/container_live/index.ex:236 | #: lib/cannery_web/live/container_live/index.ex:246 | ||||||
| #: lib/cannery_web/live/container_live/index.html.heex:73 | #: lib/cannery_web/live/container_live/index.html.heex:95 | ||||||
| #: lib/cannery_web/live/container_live/show.html.heex:59 | #: lib/cannery_web/live/container_live/show.html.heex:59 | ||||||
| #: lib/cannery_web/live/tag_live/index.html.heex:39 | #: lib/cannery_web/live/tag_live/index.html.heex:39 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| @@ -187,7 +187,7 @@ msgstr "" | |||||||
| msgid "%{name} added successfully" | msgid "%{name} added successfully" | ||||||
| msgstr "%{name} añadido exitosamente" | msgstr "%{name} añadido exitosamente" | ||||||
|  |  | ||||||
| #: lib/cannery_web/live/container_live/show.ex:43 | #: lib/cannery_web/live/container_live/show.ex:39 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "%{tag_name} has been removed from %{container_name}" | msgid "%{tag_name} has been removed from %{container_name}" | ||||||
| msgstr "se ha removido %{tag_name} de %{container_name}" | msgstr "se ha removido %{tag_name} de %{container_name}" | ||||||
|   | |||||||
| @@ -114,8 +114,8 @@ msgid "Container" | |||||||
| msgstr "Conteneur" | msgstr "Conteneur" | ||||||
|  |  | ||||||
| #: lib/cannery_web/components/topbar.ex:57 | #: lib/cannery_web/components/topbar.ex:57 | ||||||
| #: lib/cannery_web/live/container_live/index.ex:44 | #: lib/cannery_web/live/container_live/index.ex:50 | ||||||
| #: lib/cannery_web/live/container_live/index.ex:53 | #: lib/cannery_web/live/container_live/index.ex:59 | ||||||
| #: lib/cannery_web/live/container_live/index.html.heex:3 | #: lib/cannery_web/live/container_live/index.html.heex:3 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "Containers" | msgid "Containers" | ||||||
| @@ -141,7 +141,7 @@ msgstr "Quantité :" | |||||||
|  |  | ||||||
| #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:24 | #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:24 | ||||||
| #: lib/cannery_web/live/container_live/form_component.html.heex:27 | #: lib/cannery_web/live/container_live/form_component.html.heex:27 | ||||||
| #: lib/cannery_web/live/container_live/index.ex:122 | #: lib/cannery_web/live/container_live/index.ex:132 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "Description" | msgid "Description" | ||||||
| msgstr "Description" | msgstr "Description" | ||||||
| @@ -218,7 +218,7 @@ msgstr "Me garder authentifié durant 60 jours" | |||||||
|  |  | ||||||
| #: lib/cannery_web/components/move_ammo_group_component.ex:69 | #: lib/cannery_web/components/move_ammo_group_component.ex:69 | ||||||
| #: lib/cannery_web/live/container_live/form_component.html.heex:42 | #: lib/cannery_web/live/container_live/form_component.html.heex:42 | ||||||
| #: lib/cannery_web/live/container_live/index.ex:123 | #: lib/cannery_web/live/container_live/index.ex:133 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "Location" | msgid "Location" | ||||||
| msgstr "Localisation" | msgstr "Localisation" | ||||||
| @@ -253,7 +253,7 @@ msgstr "Ma superbe boite de munition" | |||||||
| #: lib/cannery_web/components/ammo_type_table_component.ex:45 | #: lib/cannery_web/components/ammo_type_table_component.ex:45 | ||||||
| #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:20 | #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:20 | ||||||
| #: lib/cannery_web/live/container_live/form_component.html.heex:20 | #: lib/cannery_web/live/container_live/form_component.html.heex:20 | ||||||
| #: lib/cannery_web/live/container_live/index.ex:121 | #: lib/cannery_web/live/container_live/index.ex:131 | ||||||
| #: lib/cannery_web/live/invite_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:75 | #: lib/cannery_web/live/tag_live/form_component.ex:75 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| @@ -266,8 +266,8 @@ msgstr "Nom" | |||||||
| msgid "New Ammo type" | msgid "New Ammo type" | ||||||
| msgstr "Nouveau type de munition" | msgstr "Nouveau type de munition" | ||||||
|  |  | ||||||
| #: lib/cannery_web/live/container_live/index.ex:31 | #: lib/cannery_web/live/container_live/index.ex:37 | ||||||
| #: lib/cannery_web/live/container_live/index.ex:38 | #: lib/cannery_web/live/container_live/index.ex:44 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "New Container" | msgid "New Container" | ||||||
| msgstr "Nouveau conteneur" | msgstr "Nouveau conteneur" | ||||||
| @@ -294,6 +294,7 @@ msgid "No ammo for this type" | |||||||
| msgstr "Aucune munition pour ce type" | msgstr "Aucune munition pour ce type" | ||||||
|  |  | ||||||
| #: lib/cannery_web/live/container_live/index.html.heex:8 | #: lib/cannery_web/live/container_live/index.html.heex:8 | ||||||
|  | #: lib/cannery_web/live/container_live/index.html.heex:48 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "No containers" | msgid "No containers" | ||||||
| msgstr "Aucun conteneur" | msgstr "Aucun conteneur" | ||||||
| @@ -392,7 +393,7 @@ msgid "Stored in" | |||||||
| msgstr "Est stocké dans" | msgstr "Est stocké dans" | ||||||
|  |  | ||||||
| #: lib/cannery_web/components/topbar.ex:49 | #: lib/cannery_web/components/topbar.ex:49 | ||||||
| #: lib/cannery_web/live/container_live/index.ex:127 | #: lib/cannery_web/live/container_live/index.ex:137 | ||||||
| #: lib/cannery_web/live/tag_live/index.ex:32 | #: lib/cannery_web/live/tag_live/index.ex:32 | ||||||
| #: lib/cannery_web/live/tag_live/index.html.heex:3 | #: lib/cannery_web/live/tag_live/index.html.heex:3 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| @@ -424,7 +425,7 @@ msgstr "Traceuse" | |||||||
|  |  | ||||||
| #: lib/cannery_web/components/move_ammo_group_component.ex:68 | #: lib/cannery_web/components/move_ammo_group_component.ex:68 | ||||||
| #: lib/cannery_web/live/container_live/form_component.html.heex:35 | #: lib/cannery_web/live/container_live/form_component.html.heex:35 | ||||||
| #: lib/cannery_web/live/container_live/index.ex:124 | #: lib/cannery_web/live/container_live/index.ex:134 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "Type" | msgid "Type" | ||||||
| msgstr "Type" | msgstr "Type" | ||||||
| @@ -639,14 +640,14 @@ msgstr "Reconnexion en cours…" | |||||||
| msgid "Loading..." | msgid "Loading..." | ||||||
| msgstr "Chargement en cours…" | msgstr "Chargement en cours…" | ||||||
|  |  | ||||||
| #: lib/cannery_web/live/container_live/index.ex:27 | #: lib/cannery_web/live/container_live/index.ex:33 | ||||||
| #: lib/cannery_web/live/container_live/show.ex:126 | #: lib/cannery_web/live/container_live/show.ex:113 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "Edit %{name}" | msgid "Edit %{name}" | ||||||
| msgstr "Éditer %{name}" | msgstr "Éditer %{name}" | ||||||
|  |  | ||||||
| #: lib/cannery_web/live/container_live/index.ex:65 | #: lib/cannery_web/live/container_live/index.ex:70 | ||||||
| #: lib/cannery_web/live/container_live/show.ex:127 | #: lib/cannery_web/live/container_live/show.ex:114 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "Edit %{name} tags" | msgid "Edit %{name} tags" | ||||||
| msgstr "Éditer les tags de %{name}" | msgstr "Éditer les tags de %{name}" | ||||||
| @@ -866,19 +867,19 @@ msgid "Rounds shot: %{count}" | |||||||
| msgstr "Cartouches tirées" | msgstr "Cartouches tirées" | ||||||
|  |  | ||||||
| #: lib/cannery_web/components/ammo_type_table_component.ex:100 | #: lib/cannery_web/components/ammo_type_table_component.ex:100 | ||||||
| #: lib/cannery_web/live/container_live/index.ex:125 | #: lib/cannery_web/live/container_live/index.ex:135 | ||||||
| #, elixir-autogen, elixir-format, fuzzy | #, elixir-autogen, elixir-format, fuzzy | ||||||
| msgid "Packs" | msgid "Packs" | ||||||
| msgstr "Packages :" | msgstr "Packages :" | ||||||
|  |  | ||||||
| #: lib/cannery_web/components/ammo_type_table_component.ex:80 | #: lib/cannery_web/components/ammo_type_table_component.ex:80 | ||||||
| #: lib/cannery_web/live/container_live/index.ex:126 | #: lib/cannery_web/live/container_live/index.ex:136 | ||||||
| #, elixir-autogen, elixir-format, fuzzy | #, elixir-autogen, elixir-format, fuzzy | ||||||
| msgid "Rounds" | msgid "Rounds" | ||||||
| msgstr "Cartouches :" | msgstr "Cartouches :" | ||||||
|  |  | ||||||
| #: lib/cannery_web/live/ammo_type_live/show.html.heex:158 | #: lib/cannery_web/live/ammo_type_live/show.html.heex:158 | ||||||
| #: lib/cannery_web/live/container_live/index.html.heex:23 | #: lib/cannery_web/live/container_live/index.html.heex:39 | ||||||
| #: lib/cannery_web/live/container_live/show.html.heex:111 | #: lib/cannery_web/live/container_live/show.html.heex:111 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "View as table" | msgid "View as table" | ||||||
| @@ -1129,3 +1130,8 @@ msgstr "" | |||||||
| #, elixir-autogen, elixir-format, fuzzy | #, elixir-autogen, elixir-format, fuzzy | ||||||
| msgid "Search ammo" | msgid "Search ammo" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
|  | #: lib/cannery_web/live/container_live/index.html.heex:33 | ||||||
|  | #, elixir-autogen, elixir-format | ||||||
|  | msgid "Search containers" | ||||||
|  | msgstr "" | ||||||
|   | |||||||
| @@ -23,18 +23,18 @@ msgstr "" | |||||||
| # # Run "mix gettext.extract" to bring this file up to | # # Run "mix gettext.extract" to bring this file up to | ||||||
| # # date. Leave "msgstr"s empty as changing them here has no | # # date. Leave "msgstr"s empty as changing them here has no | ||||||
| # # effect: edit them in PO (.po) files instead. | # # effect: edit them in PO (.po) files instead. | ||||||
| #: lib/cannery/containers.ex:140 | #: lib/cannery/containers.ex:179 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "Container must be empty before deleting" | msgid "Container must be empty before deleting" | ||||||
| msgstr "Le conteneur doit être vide pour être supprimé" | msgstr "Le conteneur doit être vide pour être supprimé" | ||||||
|  |  | ||||||
| #: lib/cannery_web/live/container_live/index.ex:88 | #: lib/cannery_web/live/container_live/index.ex:93 | ||||||
| #: lib/cannery_web/live/container_live/show.ex:77 | #: lib/cannery_web/live/container_live/show.ex:73 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "Could not delete %{name}: %{error}" | msgid "Could not delete %{name}: %{error}" | ||||||
| msgstr "Impossible de supprimer %{name} : %{error}" | msgstr "Impossible de supprimer %{name} : %{error}" | ||||||
|  |  | ||||||
| #: lib/cannery_web/live/container_live/index.ex:76 | #: lib/cannery_web/live/container_live/index.ex:81 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "Could not find that container" | msgid "Could not find that container" | ||||||
| msgstr "Impossible de trouver ce conteneur" | msgstr "Impossible de trouver ce conteneur" | ||||||
|   | |||||||
| @@ -50,8 +50,8 @@ msgstr "%{name} supprimé·e avec succès" | |||||||
| msgid "%{name} enabled succesfully" | msgid "%{name} enabled succesfully" | ||||||
| msgstr "%{name} activé·e avec succès" | msgstr "%{name} activé·e avec succès" | ||||||
|  |  | ||||||
| #: lib/cannery_web/live/container_live/index.ex:81 | #: lib/cannery_web/live/container_live/index.ex:86 | ||||||
| #: lib/cannery_web/live/container_live/show.ex:67 | #: lib/cannery_web/live/container_live/show.ex:63 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "%{name} has been deleted" | msgid "%{name} has been deleted" | ||||||
| msgstr "%{name} a été supprimé·e" | msgstr "%{name} a été supprimé·e" | ||||||
| @@ -83,8 +83,8 @@ msgid "Are you sure you want to delete %{email}? This action is permanent!" | |||||||
| msgstr "" | msgstr "" | ||||||
| "Êtes-vous certain·e de supprimer %{email} ? Cette action est définitive !" | "Êtes-vous certain·e de supprimer %{email} ? Cette action est définitive !" | ||||||
|  |  | ||||||
| #: lib/cannery_web/live/container_live/index.ex:236 | #: lib/cannery_web/live/container_live/index.ex:246 | ||||||
| #: lib/cannery_web/live/container_live/index.html.heex:73 | #: lib/cannery_web/live/container_live/index.html.heex:95 | ||||||
| #: lib/cannery_web/live/container_live/show.html.heex:59 | #: lib/cannery_web/live/container_live/show.html.heex:59 | ||||||
| #: lib/cannery_web/live/tag_live/index.html.heex:39 | #: lib/cannery_web/live/tag_live/index.html.heex:39 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| @@ -189,7 +189,7 @@ msgstr "" | |||||||
| msgid "%{name} added successfully" | msgid "%{name} added successfully" | ||||||
| msgstr "%{name} a été ajouté avec succès" | msgstr "%{name} a été ajouté avec succès" | ||||||
|  |  | ||||||
| #: lib/cannery_web/live/container_live/show.ex:43 | #: lib/cannery_web/live/container_live/show.ex:39 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "%{tag_name} has been removed from %{container_name}" | msgid "%{tag_name} has been removed from %{container_name}" | ||||||
| msgstr "%{tag_name} a été retiré de %{container_name}" | msgstr "%{tag_name} a été retiré de %{container_name}" | ||||||
|   | |||||||
| @@ -110,8 +110,8 @@ msgid "Container" | |||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/cannery_web/components/topbar.ex:57 | #: lib/cannery_web/components/topbar.ex:57 | ||||||
| #: lib/cannery_web/live/container_live/index.ex:44 | #: lib/cannery_web/live/container_live/index.ex:50 | ||||||
| #: lib/cannery_web/live/container_live/index.ex:53 | #: lib/cannery_web/live/container_live/index.ex:59 | ||||||
| #: lib/cannery_web/live/container_live/index.html.heex:3 | #: lib/cannery_web/live/container_live/index.html.heex:3 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "Containers" | msgid "Containers" | ||||||
| @@ -137,7 +137,7 @@ msgstr "" | |||||||
|  |  | ||||||
| #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:24 | #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:24 | ||||||
| #: lib/cannery_web/live/container_live/form_component.html.heex:27 | #: lib/cannery_web/live/container_live/form_component.html.heex:27 | ||||||
| #: lib/cannery_web/live/container_live/index.ex:122 | #: lib/cannery_web/live/container_live/index.ex:132 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "Description" | msgid "Description" | ||||||
| msgstr "" | msgstr "" | ||||||
| @@ -214,7 +214,7 @@ msgstr "" | |||||||
|  |  | ||||||
| #: lib/cannery_web/components/move_ammo_group_component.ex:69 | #: lib/cannery_web/components/move_ammo_group_component.ex:69 | ||||||
| #: lib/cannery_web/live/container_live/form_component.html.heex:42 | #: lib/cannery_web/live/container_live/form_component.html.heex:42 | ||||||
| #: lib/cannery_web/live/container_live/index.ex:123 | #: lib/cannery_web/live/container_live/index.ex:133 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "Location" | msgid "Location" | ||||||
| msgstr "" | msgstr "" | ||||||
| @@ -249,7 +249,7 @@ msgstr "" | |||||||
| #: lib/cannery_web/components/ammo_type_table_component.ex:45 | #: lib/cannery_web/components/ammo_type_table_component.ex:45 | ||||||
| #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:20 | #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:20 | ||||||
| #: lib/cannery_web/live/container_live/form_component.html.heex:20 | #: lib/cannery_web/live/container_live/form_component.html.heex:20 | ||||||
| #: lib/cannery_web/live/container_live/index.ex:121 | #: lib/cannery_web/live/container_live/index.ex:131 | ||||||
| #: lib/cannery_web/live/invite_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:75 | #: lib/cannery_web/live/tag_live/form_component.ex:75 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| @@ -262,8 +262,8 @@ msgstr "" | |||||||
| msgid "New Ammo type" | msgid "New Ammo type" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/cannery_web/live/container_live/index.ex:31 | #: lib/cannery_web/live/container_live/index.ex:37 | ||||||
| #: lib/cannery_web/live/container_live/index.ex:38 | #: lib/cannery_web/live/container_live/index.ex:44 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "New Container" | msgid "New Container" | ||||||
| msgstr "" | msgstr "" | ||||||
| @@ -290,6 +290,7 @@ msgid "No ammo for this type" | |||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/cannery_web/live/container_live/index.html.heex:8 | #: lib/cannery_web/live/container_live/index.html.heex:8 | ||||||
|  | #: lib/cannery_web/live/container_live/index.html.heex:48 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "No containers" | msgid "No containers" | ||||||
| msgstr "" | msgstr "" | ||||||
| @@ -386,7 +387,7 @@ msgid "Stored in" | |||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/cannery_web/components/topbar.ex:49 | #: lib/cannery_web/components/topbar.ex:49 | ||||||
| #: lib/cannery_web/live/container_live/index.ex:127 | #: lib/cannery_web/live/container_live/index.ex:137 | ||||||
| #: lib/cannery_web/live/tag_live/index.ex:32 | #: lib/cannery_web/live/tag_live/index.ex:32 | ||||||
| #: lib/cannery_web/live/tag_live/index.html.heex:3 | #: lib/cannery_web/live/tag_live/index.html.heex:3 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| @@ -416,7 +417,7 @@ msgstr "" | |||||||
|  |  | ||||||
| #: lib/cannery_web/components/move_ammo_group_component.ex:68 | #: lib/cannery_web/components/move_ammo_group_component.ex:68 | ||||||
| #: lib/cannery_web/live/container_live/form_component.html.heex:35 | #: lib/cannery_web/live/container_live/form_component.html.heex:35 | ||||||
| #: lib/cannery_web/live/container_live/index.ex:124 | #: lib/cannery_web/live/container_live/index.ex:134 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "Type" | msgid "Type" | ||||||
| msgstr "" | msgstr "" | ||||||
| @@ -631,14 +632,14 @@ msgstr "" | |||||||
| msgid "Loading..." | msgid "Loading..." | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/cannery_web/live/container_live/index.ex:27 | #: lib/cannery_web/live/container_live/index.ex:33 | ||||||
| #: lib/cannery_web/live/container_live/show.ex:126 | #: lib/cannery_web/live/container_live/show.ex:113 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "Edit %{name}" | msgid "Edit %{name}" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/cannery_web/live/container_live/index.ex:65 | #: lib/cannery_web/live/container_live/index.ex:70 | ||||||
| #: lib/cannery_web/live/container_live/show.ex:127 | #: lib/cannery_web/live/container_live/show.ex:114 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "Edit %{name} tags" | msgid "Edit %{name} tags" | ||||||
| msgstr "" | msgstr "" | ||||||
| @@ -857,19 +858,19 @@ msgid "Rounds shot: %{count}" | |||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/cannery_web/components/ammo_type_table_component.ex:100 | #: lib/cannery_web/components/ammo_type_table_component.ex:100 | ||||||
| #: lib/cannery_web/live/container_live/index.ex:125 | #: lib/cannery_web/live/container_live/index.ex:135 | ||||||
| #, elixir-autogen, elixir-format, fuzzy | #, elixir-autogen, elixir-format, fuzzy | ||||||
| msgid "Packs" | msgid "Packs" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/cannery_web/components/ammo_type_table_component.ex:80 | #: lib/cannery_web/components/ammo_type_table_component.ex:80 | ||||||
| #: lib/cannery_web/live/container_live/index.ex:126 | #: lib/cannery_web/live/container_live/index.ex:136 | ||||||
| #, elixir-autogen, elixir-format, fuzzy | #, elixir-autogen, elixir-format, fuzzy | ||||||
| msgid "Rounds" | msgid "Rounds" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/cannery_web/live/ammo_type_live/show.html.heex:158 | #: lib/cannery_web/live/ammo_type_live/show.html.heex:158 | ||||||
| #: lib/cannery_web/live/container_live/index.html.heex:23 | #: lib/cannery_web/live/container_live/index.html.heex:39 | ||||||
| #: lib/cannery_web/live/container_live/show.html.heex:111 | #: lib/cannery_web/live/container_live/show.html.heex:111 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "View as table" | msgid "View as table" | ||||||
| @@ -1120,3 +1121,8 @@ msgstr "" | |||||||
| #, elixir-autogen, elixir-format, fuzzy | #, elixir-autogen, elixir-format, fuzzy | ||||||
| msgid "Search ammo" | msgid "Search ammo" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
|  | #: lib/cannery_web/live/container_live/index.html.heex:33 | ||||||
|  | #, elixir-autogen, elixir-format | ||||||
|  | msgid "Search containers" | ||||||
|  | msgstr "" | ||||||
|   | |||||||
| @@ -24,18 +24,18 @@ msgstr "" | |||||||
| ## Run "mix gettext.extract" to bring this file up to | ## Run "mix gettext.extract" to bring this file up to | ||||||
| ## date. Leave "msgstr"s empty as changing them here has no | ## date. Leave "msgstr"s empty as changing them here has no | ||||||
| ## effect: edit them in PO (.po) files instead. | ## effect: edit them in PO (.po) files instead. | ||||||
| #: lib/cannery/containers.ex:140 | #: lib/cannery/containers.ex:179 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "Container must be empty before deleting" | msgid "Container must be empty before deleting" | ||||||
| msgstr "Caithfidh an coimeádán a bheidh follamh roimh scriosadh" | msgstr "Caithfidh an coimeádán a bheidh follamh roimh scriosadh" | ||||||
|  |  | ||||||
| #: lib/cannery_web/live/container_live/index.ex:88 | #: lib/cannery_web/live/container_live/index.ex:93 | ||||||
| #: lib/cannery_web/live/container_live/show.ex:77 | #: lib/cannery_web/live/container_live/show.ex:73 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "Could not delete %{name}: %{error}" | msgid "Could not delete %{name}: %{error}" | ||||||
| msgstr "Ní feidir %{name} a scriosadh: %{error}" | msgstr "Ní feidir %{name} a scriosadh: %{error}" | ||||||
|  |  | ||||||
| #: lib/cannery_web/live/container_live/index.ex:76 | #: lib/cannery_web/live/container_live/index.ex:81 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "Could not find that container" | msgid "Could not find that container" | ||||||
| msgstr "Ní feidir an coimeádán sin a fáil" | msgstr "Ní feidir an coimeádán sin a fáil" | ||||||
|   | |||||||
| @@ -48,8 +48,8 @@ msgstr "" | |||||||
| msgid "%{name} enabled succesfully" | msgid "%{name} enabled succesfully" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/cannery_web/live/container_live/index.ex:81 | #: lib/cannery_web/live/container_live/index.ex:86 | ||||||
| #: lib/cannery_web/live/container_live/show.ex:67 | #: lib/cannery_web/live/container_live/show.ex:63 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "%{name} has been deleted" | msgid "%{name} has been deleted" | ||||||
| msgstr "" | msgstr "" | ||||||
| @@ -78,8 +78,8 @@ msgstr "" | |||||||
| 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 "" | ||||||
|  |  | ||||||
| #: lib/cannery_web/live/container_live/index.ex:236 | #: lib/cannery_web/live/container_live/index.ex:246 | ||||||
| #: lib/cannery_web/live/container_live/index.html.heex:73 | #: lib/cannery_web/live/container_live/index.html.heex:95 | ||||||
| #: lib/cannery_web/live/container_live/show.html.heex:59 | #: lib/cannery_web/live/container_live/show.html.heex:59 | ||||||
| #: lib/cannery_web/live/tag_live/index.html.heex:39 | #: lib/cannery_web/live/tag_live/index.html.heex:39 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| @@ -178,7 +178,7 @@ msgstr "" | |||||||
| msgid "%{name} added successfully" | msgid "%{name} added successfully" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/cannery_web/live/container_live/show.ex:43 | #: lib/cannery_web/live/container_live/show.ex:39 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "%{tag_name} has been removed from %{container_name}" | msgid "%{tag_name} has been removed from %{container_name}" | ||||||
| msgstr "" | msgstr "" | ||||||
|   | |||||||
| @@ -37,8 +37,8 @@ msgstr "" | |||||||
| msgid "%{name} enabled succesfully" | msgid "%{name} enabled succesfully" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/cannery_web/live/container_live/index.ex:81 | #: lib/cannery_web/live/container_live/index.ex:86 | ||||||
| #: lib/cannery_web/live/container_live/show.ex:67 | #: lib/cannery_web/live/container_live/show.ex:63 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "%{name} has been deleted" | msgid "%{name} has been deleted" | ||||||
| msgstr "" | msgstr "" | ||||||
| @@ -67,8 +67,8 @@ msgstr "" | |||||||
| 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 "" | ||||||
|  |  | ||||||
| #: lib/cannery_web/live/container_live/index.ex:236 | #: lib/cannery_web/live/container_live/index.ex:246 | ||||||
| #: lib/cannery_web/live/container_live/index.html.heex:73 | #: lib/cannery_web/live/container_live/index.html.heex:95 | ||||||
| #: lib/cannery_web/live/container_live/show.html.heex:59 | #: lib/cannery_web/live/container_live/show.html.heex:59 | ||||||
| #: lib/cannery_web/live/tag_live/index.html.heex:39 | #: lib/cannery_web/live/tag_live/index.html.heex:39 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| @@ -167,7 +167,7 @@ msgstr "" | |||||||
| msgid "%{name} added successfully" | msgid "%{name} added successfully" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/cannery_web/live/container_live/show.ex:43 | #: lib/cannery_web/live/container_live/show.ex:39 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "%{tag_name} has been removed from %{container_name}" | msgid "%{tag_name} has been removed from %{container_name}" | ||||||
| msgstr "" | msgstr "" | ||||||
|   | |||||||
| @@ -34,9 +34,47 @@ defmodule Cannery.ContainersTest do | |||||||
|     test "list_containers/1 returns all containers", |     test "list_containers/1 returns all containers", | ||||||
|          %{current_user: current_user, container: container} do |          %{current_user: current_user, container: container} do | ||||||
|       assert Containers.list_containers(current_user) == |       assert Containers.list_containers(current_user) == | ||||||
|                [container |> Repo.preload([:ammo_groups, :tags])] |                [container] |> preload_containers() | ||||||
|     end |     end | ||||||
|  |  | ||||||
|  |     test "list_containers/2 returns relevant containers for a user", | ||||||
|  |          %{current_user: current_user} do | ||||||
|  |       container_a = | ||||||
|  |         container_fixture(%{"name" => "my cool container"}, current_user) |> preload_containers() | ||||||
|  |  | ||||||
|  |       container_b = | ||||||
|  |         container_fixture(%{"desc" => "a fascinating description"}, current_user) | ||||||
|  |         |> preload_containers() | ||||||
|  |  | ||||||
|  |       container_c = container_fixture(%{"location" => "a secret place"}, current_user) | ||||||
|  |       tag = tag_fixture(%{"name" => "stupendous tag"}, current_user) | ||||||
|  |       Containers.add_tag!(container_c, tag, current_user) | ||||||
|  |       container_c = container_c |> preload_containers() | ||||||
|  |  | ||||||
|  |       container_d = container_fixture(%{"type" => "musty old box"}, current_user) | ||||||
|  |       tag = tag_fixture(%{"name" => "amazing tag"}, current_user) | ||||||
|  |       Containers.add_tag!(container_d, tag, current_user) | ||||||
|  |       container_d = container_d |> preload_containers() | ||||||
|  |  | ||||||
|  |       _shouldnt_return = | ||||||
|  |         container_fixture(%{"name" => "another person's container"}, user_fixture()) | ||||||
|  |  | ||||||
|  |       # attributes | ||||||
|  |       assert Containers.list_containers("cool", current_user) == [container_a] | ||||||
|  |       assert Containers.list_containers("fascinating", current_user) == [container_b] | ||||||
|  |       assert Containers.list_containers("secret", current_user) == [container_c] | ||||||
|  |       assert Containers.list_containers("box", current_user) == [container_d] | ||||||
|  |  | ||||||
|  |       # tags | ||||||
|  |       assert Containers.list_containers("stupendous", current_user) == [container_c] | ||||||
|  |       assert Containers.list_containers("amazing", current_user) == [container_d] | ||||||
|  |  | ||||||
|  |       assert Containers.list_containers("asajslkdflskdf", current_user) == [] | ||||||
|  |     end | ||||||
|  |  | ||||||
|  |     defp preload_containers(containers), | ||||||
|  |       do: containers |> Repo.preload([:ammo_groups, :tags]) | ||||||
|  |  | ||||||
|     test "get_container!/1 returns the container with given id", |     test "get_container!/1 returns the container with given id", | ||||||
|          %{current_user: current_user, container: container} do |          %{current_user: current_user, container: container} do | ||||||
|       assert Containers.get_container!(container.id, current_user) == |       assert Containers.get_container!(container.id, current_user) == | ||||||
|   | |||||||
| @@ -62,7 +62,7 @@ defmodule CanneryWeb.ContainerLiveTest do | |||||||
|     %{ammo_type: ammo_type, ammo_group: ammo_group, shot_group: shot_group} |     %{ammo_type: ammo_type, ammo_group: ammo_group, shot_group: shot_group} | ||||||
|   end |   end | ||||||
|  |  | ||||||
|   describe "Index regular" do |   describe "Index" do | ||||||
|     setup [:register_and_log_in_user, :create_container] |     setup [:register_and_log_in_user, :create_container] | ||||||
|  |  | ||||||
|     test "lists all containers", %{conn: conn, container: container} do |     test "lists all containers", %{conn: conn, container: container} do | ||||||
| @@ -72,132 +72,43 @@ defmodule CanneryWeb.ContainerLiveTest do | |||||||
|       assert html =~ container.location |       assert html =~ container.location | ||||||
|     end |     end | ||||||
|  |  | ||||||
|     test "saves new container", %{conn: conn, container: container} do |     test "lists all containers in table mode", %{conn: conn, container: container} do | ||||||
|       {:ok, index_live, _html} = live(conn, Routes.container_index_path(conn, :index)) |       {:ok, index_live, _html} = live(conn, Routes.container_index_path(conn, :index)) | ||||||
|  |  | ||||||
|       assert index_live |> element("a", dgettext("actions", "New Container")) |> render_click() =~ |       html = index_live |> element("[data-qa=\"toggle_table\"]") |> render_click() | ||||||
|                gettext("New Container") |  | ||||||
|  |  | ||||||
|       assert_patch(index_live, Routes.container_index_path(conn, :new)) |  | ||||||
|  |  | ||||||
|       # assert index_live |  | ||||||
|       #        |> form("#container-form", container: @invalid_attrs) |  | ||||||
|       #        |> render_change() =~ dgettext("errors", "can't be blank") |  | ||||||
|  |  | ||||||
|       {:ok, _view, html} = |  | ||||||
|         index_live |  | ||||||
|         |> form("#container-form", container: @create_attrs) |  | ||||||
|         |> render_submit() |  | ||||||
|         |> follow_redirect(conn, Routes.container_index_path(conn, :index)) |  | ||||||
|  |  | ||||||
|       assert html =~ dgettext("prompts", "%{name} created successfully", name: container.name) |  | ||||||
|       assert html =~ "some location" |  | ||||||
|     end |  | ||||||
|  |  | ||||||
|     test "updates container in listing", %{ |  | ||||||
|       conn: conn, |  | ||||||
|       current_user: current_user, |  | ||||||
|       container: container |  | ||||||
|     } do |  | ||||||
|       {:ok, index_live, _html} = live(conn, Routes.container_index_path(conn, :index)) |  | ||||||
|  |  | ||||||
|       assert index_live |> element("[data-qa=\"edit-#{container.id}\"]") |> render_click() =~ |  | ||||||
|                gettext("Edit %{name}", name: container.name) |  | ||||||
|  |  | ||||||
|       assert_patch(index_live, Routes.container_index_path(conn, :edit, container)) |  | ||||||
|  |  | ||||||
|       # assert index_live |  | ||||||
|       #        |> form("#container-form", container: @invalid_attrs) |  | ||||||
|       #        |> render_change() =~ dgettext("errors", "can't be blank") |  | ||||||
|  |  | ||||||
|       {:ok, _view, html} = |  | ||||||
|         index_live |  | ||||||
|         |> form("#container-form", container: @update_attrs) |  | ||||||
|         |> render_submit() |  | ||||||
|         |> follow_redirect(conn, Routes.container_index_path(conn, :index)) |  | ||||||
|  |  | ||||||
|       container = container.id |> Containers.get_container!(current_user) |  | ||||||
|       assert html =~ dgettext("prompts", "%{name} updated successfully", name: container.name) |  | ||||||
|       assert html =~ "some updated location" |  | ||||||
|     end |  | ||||||
|  |  | ||||||
|     test "clones container in listing", %{ |  | ||||||
|       conn: conn, |  | ||||||
|       current_user: current_user, |  | ||||||
|       container: container |  | ||||||
|     } do |  | ||||||
|       {:ok, index_live, _html} = live(conn, Routes.container_index_path(conn, :index)) |  | ||||||
|  |  | ||||||
|       html = index_live |> element("[data-qa=\"clone-#{container.id}\"]") |> render_click() |  | ||||||
|       assert html =~ gettext("New Container") |  | ||||||
|       assert html =~ "some location" |  | ||||||
|  |  | ||||||
|       assert_patch(index_live, Routes.container_index_path(conn, :clone, container)) |  | ||||||
|  |  | ||||||
|       # assert index_live |  | ||||||
|       #        |> form("#container-form", container: @invalid_attrs) |  | ||||||
|       #        |> render_change() =~ dgettext("errors", "can't be blank") |  | ||||||
|  |  | ||||||
|       {:ok, _view, html} = |  | ||||||
|         index_live |  | ||||||
|         |> form("#container-form", container: @create_attrs) |  | ||||||
|         |> render_submit() |  | ||||||
|         |> follow_redirect(conn, Routes.container_index_path(conn, :index)) |  | ||||||
|  |  | ||||||
|       container = container.id |> Containers.get_container!(current_user) |  | ||||||
|       assert html =~ dgettext("prompts", "%{name} created successfully", name: container.name) |  | ||||||
|       assert html =~ "some location" |  | ||||||
|     end |  | ||||||
|  |  | ||||||
|     test "clones container in listing with updates", %{ |  | ||||||
|       conn: conn, |  | ||||||
|       current_user: current_user, |  | ||||||
|       container: container |  | ||||||
|     } do |  | ||||||
|       {:ok, index_live, _html} = live(conn, Routes.container_index_path(conn, :index)) |  | ||||||
|  |  | ||||||
|       assert index_live |> element("[data-qa=\"clone-#{container.id}\"]") |> render_click() =~ |  | ||||||
|                gettext("New Container") |  | ||||||
|  |  | ||||||
|       assert_patch(index_live, Routes.container_index_path(conn, :clone, container)) |  | ||||||
|  |  | ||||||
|       # assert index_live |  | ||||||
|       #        |> form("#container-form", container: @invalid_attrs) |  | ||||||
|       #        |> render_change() =~ dgettext("errors", "can't be blank") |  | ||||||
|  |  | ||||||
|       {:ok, _view, html} = |  | ||||||
|         index_live |  | ||||||
|         |> form("#container-form", |  | ||||||
|           container: Map.merge(@create_attrs, %{location: "some updated location"}) |  | ||||||
|         ) |  | ||||||
|         |> render_submit() |  | ||||||
|         |> follow_redirect(conn, Routes.container_index_path(conn, :index)) |  | ||||||
|  |  | ||||||
|       container = container.id |> Containers.get_container!(current_user) |  | ||||||
|       assert html =~ dgettext("prompts", "%{name} created successfully", name: container.name) |  | ||||||
|       assert html =~ "some updated location" |  | ||||||
|     end |  | ||||||
|  |  | ||||||
|     test "deletes container in listing", %{conn: conn, container: container} do |  | ||||||
|       {:ok, index_live, _html} = live(conn, Routes.container_index_path(conn, :index)) |  | ||||||
|  |  | ||||||
|       assert index_live |> element("[data-qa=\"delete-#{container.id}\"]") |> render_click() |  | ||||||
|       refute has_element?(index_live, "#container-#{container.id}") |  | ||||||
|     end |  | ||||||
|   end |  | ||||||
|  |  | ||||||
|   describe "Index table" do |  | ||||||
|     setup [:register_and_log_in_user, :create_container] |  | ||||||
|  |  | ||||||
|     test "lists all containers", %{conn: conn, container: container} do |  | ||||||
|       {:ok, _index_live, html} = live(conn, Routes.container_index_path(conn, :table)) |  | ||||||
|  |  | ||||||
|       assert html =~ gettext("Containers") |       assert html =~ gettext("Containers") | ||||||
|       assert html =~ container.location |       assert html =~ container.location | ||||||
|     end |     end | ||||||
|  |  | ||||||
|  |     test "can search for containers", %{conn: conn, container: container} do | ||||||
|  |       {:ok, index_live, html} = live(conn, Routes.container_index_path(conn, :index)) | ||||||
|  |  | ||||||
|  |       assert html =~ container.location | ||||||
|  |  | ||||||
|  |       assert index_live | ||||||
|  |              |> form("[data-qa=\"container_search\"]", | ||||||
|  |                search: %{search_term: container.location} | ||||||
|  |              ) | ||||||
|  |              |> render_change() =~ container.location | ||||||
|  |  | ||||||
|  |       assert_patch(index_live, Routes.container_index_path(conn, :search, container.location)) | ||||||
|  |  | ||||||
|  |       refute index_live | ||||||
|  |              |> form("[data-qa=\"container_search\"]", search: %{search_term: "something_else"}) | ||||||
|  |              |> render_change() =~ container.location | ||||||
|  |  | ||||||
|  |       assert_patch(index_live, Routes.container_index_path(conn, :search, "something_else")) | ||||||
|  |  | ||||||
|  |       assert index_live | ||||||
|  |              |> form("[data-qa=\"container_search\"]", search: %{search_term: ""}) | ||||||
|  |              |> render_change() =~ container.location | ||||||
|  |  | ||||||
|  |       assert_patch(index_live, Routes.container_index_path(conn, :index)) | ||||||
|  |     end | ||||||
|  |  | ||||||
|     test "saves new container", %{conn: conn, container: container} do |     test "saves new container", %{conn: conn, container: container} do | ||||||
|       {:ok, index_live, _html} = live(conn, Routes.container_index_path(conn, :table)) |       {:ok, index_live, _html} = live(conn, Routes.container_index_path(conn, :index)) | ||||||
|  |  | ||||||
|       assert index_live |> element("a", dgettext("actions", "New Container")) |> render_click() =~ |       assert index_live |> element("a", dgettext("actions", "New Container")) |> render_click() =~ | ||||||
|                gettext("New Container") |                gettext("New Container") | ||||||
| @@ -212,7 +123,7 @@ defmodule CanneryWeb.ContainerLiveTest do | |||||||
|         index_live |         index_live | ||||||
|         |> form("#container-form", container: @create_attrs) |         |> form("#container-form", container: @create_attrs) | ||||||
|         |> render_submit() |         |> render_submit() | ||||||
|         |> follow_redirect(conn, Routes.container_index_path(conn, :table)) |         |> follow_redirect(conn, Routes.container_index_path(conn, :index)) | ||||||
|  |  | ||||||
|       assert html =~ dgettext("prompts", "%{name} created successfully", name: container.name) |       assert html =~ dgettext("prompts", "%{name} created successfully", name: container.name) | ||||||
|       assert html =~ "some location" |       assert html =~ "some location" | ||||||
| @@ -223,7 +134,7 @@ defmodule CanneryWeb.ContainerLiveTest do | |||||||
|       current_user: current_user, |       current_user: current_user, | ||||||
|       container: container |       container: container | ||||||
|     } do |     } do | ||||||
|       {:ok, index_live, _html} = live(conn, Routes.container_index_path(conn, :table)) |       {:ok, index_live, _html} = live(conn, Routes.container_index_path(conn, :index)) | ||||||
|  |  | ||||||
|       assert index_live |> element("[data-qa=\"edit-#{container.id}\"]") |> render_click() =~ |       assert index_live |> element("[data-qa=\"edit-#{container.id}\"]") |> render_click() =~ | ||||||
|                gettext("Edit %{name}", name: container.name) |                gettext("Edit %{name}", name: container.name) | ||||||
| @@ -238,7 +149,7 @@ defmodule CanneryWeb.ContainerLiveTest do | |||||||
|         index_live |         index_live | ||||||
|         |> form("#container-form", container: @update_attrs) |         |> form("#container-form", container: @update_attrs) | ||||||
|         |> render_submit() |         |> render_submit() | ||||||
|         |> follow_redirect(conn, Routes.container_index_path(conn, :table)) |         |> follow_redirect(conn, Routes.container_index_path(conn, :index)) | ||||||
|  |  | ||||||
|       container = container.id |> Containers.get_container!(current_user) |       container = container.id |> Containers.get_container!(current_user) | ||||||
|       assert html =~ dgettext("prompts", "%{name} updated successfully", name: container.name) |       assert html =~ dgettext("prompts", "%{name} updated successfully", name: container.name) | ||||||
| @@ -303,7 +214,7 @@ defmodule CanneryWeb.ContainerLiveTest do | |||||||
|     end |     end | ||||||
|  |  | ||||||
|     test "deletes container in listing", %{conn: conn, container: container} do |     test "deletes container in listing", %{conn: conn, container: container} do | ||||||
|       {:ok, index_live, _html} = live(conn, Routes.container_index_path(conn, :table)) |       {:ok, index_live, _html} = live(conn, Routes.container_index_path(conn, :index)) | ||||||
|  |  | ||||||
|       assert index_live |> element("[data-qa=\"delete-#{container.id}\"]") |> render_click() |       assert index_live |> element("[data-qa=\"delete-#{container.id}\"]") |> render_click() | ||||||
|       refute has_element?(index_live, "#container-#{container.id}") |       refute has_element?(index_live, "#container-#{container.id}") | ||||||
| @@ -367,7 +278,6 @@ defmodule CanneryWeb.ContainerLiveTest do | |||||||
|       {:ok, show_live, _html} = live(conn, Routes.container_show_path(conn, :show, container)) |       {:ok, show_live, _html} = live(conn, Routes.container_show_path(conn, :show, container)) | ||||||
|  |  | ||||||
|       html = show_live |> element("[data-qa=\"toggle_table\"]") |> render_click() |       html = show_live |> element("[data-qa=\"toggle_table\"]") |> render_click() | ||||||
|       assert_patch(show_live, Routes.container_show_path(conn, :table, container)) |  | ||||||
|  |  | ||||||
|       assert html =~ ammo_type_name |       assert html =~ ammo_type_name | ||||||
|       assert html =~ "some ammo group" |       assert html =~ "some ammo group" | ||||||
| @@ -396,7 +306,6 @@ defmodule CanneryWeb.ContainerLiveTest do | |||||||
|       {:ok, show_live, _html} = live(conn, Routes.container_show_path(conn, :show, container)) |       {:ok, show_live, _html} = live(conn, Routes.container_show_path(conn, :show, container)) | ||||||
|  |  | ||||||
|       html = show_live |> element("[data-qa=\"toggle_table\"]") |> render_click() |       html = show_live |> element("[data-qa=\"toggle_table\"]") |> render_click() | ||||||
|       assert_patch(show_live, Routes.container_show_path(conn, :table, container)) |  | ||||||
|  |  | ||||||
|       assert html =~ dgettext("actions", "Show used") |       assert html =~ dgettext("actions", "Show used") | ||||||
|       refute html =~ "some ammo group" |       refute html =~ "some ammo group" | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user