move is_owner? and is_owner_or_admin? to context methods
This commit is contained in:
		| @@ -228,4 +228,13 @@ defmodule Memex.Contexts do | |||||||
|   def change_context(%Context{} = context, attrs \\ %{}, user) do |   def change_context(%Context{} = context, attrs \\ %{}, user) do | ||||||
|     context |> Context.update_changeset(attrs, user) |     context |> Context.update_changeset(attrs, user) | ||||||
|   end |   end | ||||||
|  |  | ||||||
|  |   @spec is_owner_or_admin?(Context.t(), User.t()) :: boolean() | ||||||
|  |   def is_owner_or_admin?(%{user_id: user_id}, %{id: user_id}), do: true | ||||||
|  |   def is_owner_or_admin?(_context, %{role: :admin}), do: true | ||||||
|  |   def is_owner_or_admin?(_context, _other_user), do: false | ||||||
|  |  | ||||||
|  |   @spec is_owner?(Context.t(), User.t()) :: boolean() | ||||||
|  |   def is_owner?(%{user_id: user_id}, %{id: user_id}), do: true | ||||||
|  |   def is_owner?(_context, _other_user), do: false | ||||||
| end | end | ||||||
|   | |||||||
| @@ -228,4 +228,13 @@ defmodule Memex.Notes do | |||||||
|   def change_note(%Note{} = note, attrs \\ %{}, user) do |   def change_note(%Note{} = note, attrs \\ %{}, user) do | ||||||
|     note |> Note.update_changeset(attrs, user) |     note |> Note.update_changeset(attrs, user) | ||||||
|   end |   end | ||||||
|  |  | ||||||
|  |   @spec is_owner_or_admin?(Note.t(), User.t()) :: boolean() | ||||||
|  |   def is_owner_or_admin?(%{user_id: user_id}, %{id: user_id}), do: true | ||||||
|  |   def is_owner_or_admin?(_context, %{role: :admin}), do: true | ||||||
|  |   def is_owner_or_admin?(_context, _other_user), do: false | ||||||
|  |  | ||||||
|  |   @spec is_owner?(Note.t(), User.t()) :: boolean() | ||||||
|  |   def is_owner?(%{user_id: user_id}, %{id: user_id}), do: true | ||||||
|  |   def is_owner?(_context, _other_user), do: false | ||||||
| end | end | ||||||
|   | |||||||
| @@ -230,4 +230,13 @@ defmodule Memex.Pipelines do | |||||||
|   def change_pipeline(%Pipeline{} = pipeline, attrs \\ %{}, user) do |   def change_pipeline(%Pipeline{} = pipeline, attrs \\ %{}, user) do | ||||||
|     pipeline |> Pipeline.update_changeset(attrs, user) |     pipeline |> Pipeline.update_changeset(attrs, user) | ||||||
|   end |   end | ||||||
|  |  | ||||||
|  |   @spec is_owner_or_admin?(Pipeline.t(), User.t()) :: boolean() | ||||||
|  |   def is_owner_or_admin?(%{user_id: user_id}, %{id: user_id}), do: true | ||||||
|  |   def is_owner_or_admin?(_context, %{role: :admin}), do: true | ||||||
|  |   def is_owner_or_admin?(_context, _other_user), do: false | ||||||
|  |  | ||||||
|  |   @spec is_owner?(Pipeline.t(), User.t()) :: boolean() | ||||||
|  |   def is_owner?(%{user_id: user_id}, %{id: user_id}), do: true | ||||||
|  |   def is_owner?(_context, _other_user), do: false | ||||||
| end | end | ||||||
|   | |||||||
| @@ -1,6 +1,6 @@ | |||||||
| defmodule MemexWeb.ContextLive.Index do | defmodule MemexWeb.ContextLive.Index do | ||||||
|   use MemexWeb, :live_view |   use MemexWeb, :live_view | ||||||
|   alias Memex.{Accounts.User, Contexts, Contexts.Context} |   alias Memex.{Contexts, Contexts.Context} | ||||||
|  |  | ||||||
|   @impl true |   @impl true | ||||||
|   def mount(%{"search" => search}, _session, socket) do |   def mount(%{"search" => search}, _session, socket) do | ||||||
| @@ -76,13 +76,4 @@ defmodule MemexWeb.ContextLive.Index do | |||||||
|   defp display_contexts(%{assigns: %{search: search}} = socket) do |   defp display_contexts(%{assigns: %{search: search}} = socket) do | ||||||
|     socket |> assign(contexts: Contexts.list_public_contexts(search)) |     socket |> assign(contexts: Contexts.list_public_contexts(search)) | ||||||
|   end |   end | ||||||
|  |  | ||||||
|   @spec is_owner_or_admin?(Context.t(), User.t()) :: boolean() |  | ||||||
|   defp is_owner_or_admin?(%{user_id: user_id}, %{id: user_id}), do: true |  | ||||||
|   defp is_owner_or_admin?(_context, %{role: :admin}), do: true |  | ||||||
|   defp is_owner_or_admin?(_context, _other_user), do: false |  | ||||||
|  |  | ||||||
|   @spec is_owner?(Context.t(), User.t()) :: boolean() |  | ||||||
|   defp is_owner?(%{user_id: user_id}, %{id: user_id}), do: true |  | ||||||
|   defp is_owner?(_context, _other_user), do: false |  | ||||||
| end | end | ||||||
|   | |||||||
| @@ -32,14 +32,14 @@ | |||||||
|     > |     > | ||||||
|       <:actions :let={context}> |       <:actions :let={context}> | ||||||
|         <.link |         <.link | ||||||
|           :if={is_owner?(context, @current_user)} |           :if={Contexts.is_owner?(context, @current_user)} | ||||||
|           patch={Routes.context_index_path(@socket, :edit, context.slug)} |           patch={Routes.context_index_path(@socket, :edit, context.slug)} | ||||||
|           aria-label={dgettext("actions", "edit %{context_slug}", context_slug: context.slug)} |           aria-label={dgettext("actions", "edit %{context_slug}", context_slug: context.slug)} | ||||||
|         > |         > | ||||||
|           <%= dgettext("actions", "edit") %> |           <%= dgettext("actions", "edit") %> | ||||||
|         </.link> |         </.link> | ||||||
|         <.link |         <.link | ||||||
|           :if={is_owner_or_admin?(context, @current_user)} |           :if={Contexts.is_owner_or_admin?(context, @current_user)} | ||||||
|           href="#" |           href="#" | ||||||
|           phx-click="delete" |           phx-click="delete" | ||||||
|           phx-value-id={context.id} |           phx-value-id={context.id} | ||||||
|   | |||||||
| @@ -1,6 +1,6 @@ | |||||||
| defmodule MemexWeb.ContextLive.Show do | defmodule MemexWeb.ContextLive.Show do | ||||||
|   use MemexWeb, :live_view |   use MemexWeb, :live_view | ||||||
|   alias Memex.{Accounts.User, Contexts, Contexts.Context} |   alias Memex.Contexts | ||||||
|  |  | ||||||
|   @impl true |   @impl true | ||||||
|   def mount(_params, _session, socket) do |   def mount(_params, _session, socket) do | ||||||
| @@ -45,13 +45,4 @@ defmodule MemexWeb.ContextLive.Show do | |||||||
|  |  | ||||||
|   defp page_title(:show, %{slug: slug}), do: slug |   defp page_title(:show, %{slug: slug}), do: slug | ||||||
|   defp page_title(:edit, %{slug: slug}), do: gettext("edit %{slug}", slug: slug) |   defp page_title(:edit, %{slug: slug}), do: gettext("edit %{slug}", slug: slug) | ||||||
|  |  | ||||||
|   @spec is_owner_or_admin?(Context.t(), User.t()) :: boolean() |  | ||||||
|   defp is_owner_or_admin?(%{user_id: user_id}, %{id: user_id}), do: true |  | ||||||
|   defp is_owner_or_admin?(_context, %{role: :admin}), do: true |  | ||||||
|   defp is_owner_or_admin?(_context, _other_user), do: false |  | ||||||
|  |  | ||||||
|   @spec is_owner?(Context.t(), User.t()) :: boolean() |  | ||||||
|   defp is_owner?(%{user_id: user_id}, %{id: user_id}), do: true |  | ||||||
|   defp is_owner?(_context, _other_user), do: false |  | ||||||
| end | end | ||||||
|   | |||||||
| @@ -24,14 +24,14 @@ | |||||||
|       <%= dgettext("actions", "back") %> |       <%= dgettext("actions", "back") %> | ||||||
|     </.link> |     </.link> | ||||||
|     <.link |     <.link | ||||||
|       :if={is_owner?(@context, @current_user)} |       :if={Contexts.is_owner?(@context, @current_user)} | ||||||
|       class="btn btn-primary" |       class="btn btn-primary" | ||||||
|       patch={Routes.context_show_path(@socket, :edit, @context.slug)} |       patch={Routes.context_show_path(@socket, :edit, @context.slug)} | ||||||
|     > |     > | ||||||
|       <%= dgettext("actions", "edit") %> |       <%= dgettext("actions", "edit") %> | ||||||
|     </.link> |     </.link> | ||||||
|     <button |     <button | ||||||
|       :if={is_owner_or_admin?(@context, @current_user)} |       :if={Contexts.is_owner_or_admin?(@context, @current_user)} | ||||||
|       type="button" |       type="button" | ||||||
|       class="btn btn-primary" |       class="btn btn-primary" | ||||||
|       phx-click="delete" |       phx-click="delete" | ||||||
|   | |||||||
| @@ -1,6 +1,6 @@ | |||||||
| defmodule MemexWeb.NoteLive.Index do | defmodule MemexWeb.NoteLive.Index do | ||||||
|   use MemexWeb, :live_view |   use MemexWeb, :live_view | ||||||
|   alias Memex.{Accounts.User, Notes, Notes.Note} |   alias Memex.{Notes, Notes.Note} | ||||||
|  |  | ||||||
|   @impl true |   @impl true | ||||||
|   def mount(%{"search" => search}, _session, socket) do |   def mount(%{"search" => search}, _session, socket) do | ||||||
| @@ -75,13 +75,4 @@ defmodule MemexWeb.NoteLive.Index do | |||||||
|   defp display_notes(%{assigns: %{search: search}} = socket) do |   defp display_notes(%{assigns: %{search: search}} = socket) do | ||||||
|     socket |> assign(notes: Notes.list_public_notes(search)) |     socket |> assign(notes: Notes.list_public_notes(search)) | ||||||
|   end |   end | ||||||
|  |  | ||||||
|   @spec is_owner_or_admin?(Note.t(), User.t()) :: boolean() |  | ||||||
|   defp is_owner_or_admin?(%{user_id: user_id}, %{id: user_id}), do: true |  | ||||||
|   defp is_owner_or_admin?(_context, %{role: :admin}), do: true |  | ||||||
|   defp is_owner_or_admin?(_context, _other_user), do: false |  | ||||||
|  |  | ||||||
|   @spec is_owner?(Note.t(), User.t()) :: boolean() |  | ||||||
|   defp is_owner?(%{user_id: user_id}, %{id: user_id}), do: true |  | ||||||
|   defp is_owner?(_context, _other_user), do: false |  | ||||||
| end | end | ||||||
|   | |||||||
| @@ -32,14 +32,14 @@ | |||||||
|     > |     > | ||||||
|       <:actions :let={note}> |       <:actions :let={note}> | ||||||
|         <.link |         <.link | ||||||
|           :if={is_owner?(note, @current_user)} |           :if={Notes.is_owner?(note, @current_user)} | ||||||
|           patch={Routes.note_index_path(@socket, :edit, note.slug)} |           patch={Routes.note_index_path(@socket, :edit, note.slug)} | ||||||
|           aria-label={dgettext("actions", "edit %{note_slug}", note_slug: note.slug)} |           aria-label={dgettext("actions", "edit %{note_slug}", note_slug: note.slug)} | ||||||
|         > |         > | ||||||
|           <%= dgettext("actions", "edit") %> |           <%= dgettext("actions", "edit") %> | ||||||
|         </.link> |         </.link> | ||||||
|         <.link |         <.link | ||||||
|           :if={is_owner_or_admin?(note, @current_user)} |           :if={Notes.is_owner_or_admin?(note, @current_user)} | ||||||
|           href="#" |           href="#" | ||||||
|           phx-click="delete" |           phx-click="delete" | ||||||
|           phx-value-id={note.id} |           phx-value-id={note.id} | ||||||
|   | |||||||
| @@ -1,6 +1,6 @@ | |||||||
| defmodule MemexWeb.NoteLive.Show do | defmodule MemexWeb.NoteLive.Show do | ||||||
|   use MemexWeb, :live_view |   use MemexWeb, :live_view | ||||||
|   alias Memex.{Accounts.User, Notes, Notes.Note} |   alias Memex.Notes | ||||||
|  |  | ||||||
|   @impl true |   @impl true | ||||||
|   def mount(_params, _session, socket) do |   def mount(_params, _session, socket) do | ||||||
| @@ -45,13 +45,4 @@ defmodule MemexWeb.NoteLive.Show do | |||||||
|  |  | ||||||
|   defp page_title(:show, %{slug: slug}), do: slug |   defp page_title(:show, %{slug: slug}), do: slug | ||||||
|   defp page_title(:edit, %{slug: slug}), do: gettext("edit %{slug}", slug: slug) |   defp page_title(:edit, %{slug: slug}), do: gettext("edit %{slug}", slug: slug) | ||||||
|  |  | ||||||
|   @spec is_owner_or_admin?(Note.t(), User.t()) :: boolean() |  | ||||||
|   defp is_owner_or_admin?(%{user_id: user_id}, %{id: user_id}), do: true |  | ||||||
|   defp is_owner_or_admin?(_context, %{role: :admin}), do: true |  | ||||||
|   defp is_owner_or_admin?(_context, _other_user), do: false |  | ||||||
|  |  | ||||||
|   @spec is_owner?(Note.t(), User.t()) :: boolean() |  | ||||||
|   defp is_owner?(%{user_id: user_id}, %{id: user_id}), do: true |  | ||||||
|   defp is_owner?(_context, _other_user), do: false |  | ||||||
| end | end | ||||||
|   | |||||||
| @@ -24,14 +24,14 @@ | |||||||
|       <%= dgettext("actions", "back") %> |       <%= dgettext("actions", "back") %> | ||||||
|     </.link> |     </.link> | ||||||
|     <.link |     <.link | ||||||
|       :if={is_owner?(@note, @current_user)} |       :if={Notes.is_owner?(@note, @current_user)} | ||||||
|       class="btn btn-primary" |       class="btn btn-primary" | ||||||
|       patch={Routes.note_show_path(@socket, :edit, @note.slug)} |       patch={Routes.note_show_path(@socket, :edit, @note.slug)} | ||||||
|     > |     > | ||||||
|       <%= dgettext("actions", "edit") %> |       <%= dgettext("actions", "edit") %> | ||||||
|     </.link> |     </.link> | ||||||
|     <button |     <button | ||||||
|       :if={is_owner_or_admin?(@note, @current_user)} |       :if={Notes.is_owner_or_admin?(@note, @current_user)} | ||||||
|       type="button" |       type="button" | ||||||
|       class="btn btn-primary" |       class="btn btn-primary" | ||||||
|       phx-click="delete" |       phx-click="delete" | ||||||
|   | |||||||
| @@ -1,6 +1,6 @@ | |||||||
| defmodule MemexWeb.PipelineLive.Index do | defmodule MemexWeb.PipelineLive.Index do | ||||||
|   use MemexWeb, :live_view |   use MemexWeb, :live_view | ||||||
|   alias Memex.{Accounts.User, Pipelines, Pipelines.Pipeline} |   alias Memex.{Pipelines, Pipelines.Pipeline} | ||||||
|  |  | ||||||
|   @impl true |   @impl true | ||||||
|   def mount(%{"search" => search}, _session, socket) do |   def mount(%{"search" => search}, _session, socket) do | ||||||
| @@ -76,13 +76,4 @@ defmodule MemexWeb.PipelineLive.Index do | |||||||
|   defp display_pipelines(%{assigns: %{search: search}} = socket) do |   defp display_pipelines(%{assigns: %{search: search}} = socket) do | ||||||
|     socket |> assign(pipelines: Pipelines.list_public_pipelines(search)) |     socket |> assign(pipelines: Pipelines.list_public_pipelines(search)) | ||||||
|   end |   end | ||||||
|  |  | ||||||
|   @spec is_owner_or_admin?(Pipeline.t(), User.t()) :: boolean() |  | ||||||
|   defp is_owner_or_admin?(%{user_id: user_id}, %{id: user_id}), do: true |  | ||||||
|   defp is_owner_or_admin?(_context, %{role: :admin}), do: true |  | ||||||
|   defp is_owner_or_admin?(_context, _other_user), do: false |  | ||||||
|  |  | ||||||
|   @spec is_owner?(Pipeline.t(), User.t()) :: boolean() |  | ||||||
|   defp is_owner?(%{user_id: user_id}, %{id: user_id}), do: true |  | ||||||
|   defp is_owner?(_context, _other_user), do: false |  | ||||||
| end | end | ||||||
|   | |||||||
| @@ -32,14 +32,14 @@ | |||||||
|     > |     > | ||||||
|       <:actions :let={pipeline}> |       <:actions :let={pipeline}> | ||||||
|         <.link |         <.link | ||||||
|           :if={is_owner?(pipeline, @current_user)} |           :if={Pipelines.is_owner?(pipeline, @current_user)} | ||||||
|           patch={Routes.pipeline_index_path(@socket, :edit, pipeline.slug)} |           patch={Routes.pipeline_index_path(@socket, :edit, pipeline.slug)} | ||||||
|           aria-label={dgettext("actions", "edit %{pipeline_slug}", pipeline_slug: pipeline.slug)} |           aria-label={dgettext("actions", "edit %{pipeline_slug}", pipeline_slug: pipeline.slug)} | ||||||
|         > |         > | ||||||
|           <%= dgettext("actions", "edit") %> |           <%= dgettext("actions", "edit") %> | ||||||
|         </.link> |         </.link> | ||||||
|         <.link |         <.link | ||||||
|           :if={is_owner_or_admin?(pipeline, @current_user)} |           :if={Pipelines.is_owner_or_admin?(pipeline, @current_user)} | ||||||
|           href="#" |           href="#" | ||||||
|           phx-click="delete" |           phx-click="delete" | ||||||
|           phx-value-id={pipeline.id} |           phx-value-id={pipeline.id} | ||||||
|   | |||||||
| @@ -1,7 +1,6 @@ | |||||||
| defmodule MemexWeb.PipelineLive.Show do | defmodule MemexWeb.PipelineLive.Show do | ||||||
|   use MemexWeb, :live_view |   use MemexWeb, :live_view | ||||||
|   alias Memex.{Accounts.User, Pipelines} |   alias Memex.{Pipelines, Pipelines.Steps, Pipelines.Steps.Step} | ||||||
|   alias Memex.Pipelines.{Pipeline, Steps, Steps.Step} |  | ||||||
|  |  | ||||||
|   @impl true |   @impl true | ||||||
|   def mount(_params, _session, socket) do |   def mount(_params, _session, socket) do | ||||||
| @@ -122,13 +121,4 @@ defmodule MemexWeb.PipelineLive.Show do | |||||||
|     do: gettext("edit %{slug}", slug: slug) |     do: gettext("edit %{slug}", slug: slug) | ||||||
|  |  | ||||||
|   defp page_title(:add_step, %{slug: slug}), do: gettext("add step to %{slug}", slug: slug) |   defp page_title(:add_step, %{slug: slug}), do: gettext("add step to %{slug}", slug: slug) | ||||||
|  |  | ||||||
|   @spec is_owner_or_admin?(Pipeline.t(), User.t()) :: boolean() |  | ||||||
|   defp is_owner_or_admin?(%{user_id: user_id}, %{id: user_id}), do: true |  | ||||||
|   defp is_owner_or_admin?(_context, %{role: :admin}), do: true |  | ||||||
|   defp is_owner_or_admin?(_context, _other_user), do: false |  | ||||||
|  |  | ||||||
|   @spec is_owner?(Pipeline.t(), User.t()) :: boolean() |  | ||||||
|   defp is_owner?(%{user_id: user_id}, %{id: user_id}), do: true |  | ||||||
|   defp is_owner?(_context, _other_user), do: false |  | ||||||
| end | end | ||||||
|   | |||||||
| @@ -32,14 +32,14 @@ | |||||||
|       <%= dgettext("actions", "back") %> |       <%= dgettext("actions", "back") %> | ||||||
|     </.link> |     </.link> | ||||||
|     <.link |     <.link | ||||||
|       :if={is_owner?(@pipeline, @current_user)} |       :if={Pipelines.is_owner?(@pipeline, @current_user)} | ||||||
|       class="btn btn-primary" |       class="btn btn-primary" | ||||||
|       patch={Routes.pipeline_show_path(@socket, :edit, @pipeline.slug)} |       patch={Routes.pipeline_show_path(@socket, :edit, @pipeline.slug)} | ||||||
|     > |     > | ||||||
|       <%= dgettext("actions", "edit") %> |       <%= dgettext("actions", "edit") %> | ||||||
|     </.link> |     </.link> | ||||||
|     <button |     <button | ||||||
|       :if={is_owner_or_admin?(@pipeline, @current_user)} |       :if={Pipelines.is_owner_or_admin?(@pipeline, @current_user)} | ||||||
|       type="button" |       type="button" | ||||||
|       class="btn btn-primary" |       class="btn btn-primary" | ||||||
|       phx-click="delete" |       phx-click="delete" | ||||||
| @@ -67,7 +67,7 @@ | |||||||
|           <%= gettext("%{position}. %{title}", position: position + 1, title: title) %> |           <%= gettext("%{position}. %{title}", position: position + 1, title: title) %> | ||||||
|         </h3> |         </h3> | ||||||
|  |  | ||||||
|         <%= if is_owner?(@pipeline, @current_user) do %> |         <%= if Pipelines.is_owner?(@pipeline, @current_user) do %> | ||||||
|           <div class="flex justify-between items-center space-x-4"> |           <div class="flex justify-between items-center space-x-4"> | ||||||
|             <%= if position <= 0 do %> |             <%= if position <= 0 do %> | ||||||
|               <i class="fas text-xl fa-chevron-up cursor-not-allowed opacity-25"></i> |               <i class="fas text-xl fa-chevron-up cursor-not-allowed opacity-25"></i> | ||||||
| @@ -128,7 +128,7 @@ | |||||||
|   <% end %> |   <% end %> | ||||||
|  |  | ||||||
|   <.link |   <.link | ||||||
|     :if={is_owner?(@pipeline, @current_user)} |     :if={Pipelines.is_owner?(@pipeline, @current_user)} | ||||||
|     class="self-end btn btn-primary" |     class="self-end btn btn-primary" | ||||||
|     patch={Routes.pipeline_show_path(@socket, :add_step, @pipeline.slug)} |     patch={Routes.pipeline_show_path(@socket, :add_step, @pipeline.slug)} | ||||||
|   > |   > | ||||||
|   | |||||||
| @@ -364,7 +364,7 @@ msgstr "" | |||||||
| #: lib/memex_web/live/note_live/index.ex:57 | #: lib/memex_web/live/note_live/index.ex:57 | ||||||
| #: lib/memex_web/live/note_live/show.ex:40 | #: lib/memex_web/live/note_live/show.ex:40 | ||||||
| #: lib/memex_web/live/pipeline_live/index.ex:57 | #: lib/memex_web/live/pipeline_live/index.ex:57 | ||||||
| #: lib/memex_web/live/pipeline_live/show.ex:76 | #: lib/memex_web/live/pipeline_live/show.ex:75 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "%{slug} deleted" | msgid "%{slug} deleted" | ||||||
| msgstr "" | msgstr "" | ||||||
| @@ -381,7 +381,7 @@ msgstr "" | |||||||
| #: lib/memex_web/live/note_live/index.ex:23 | #: lib/memex_web/live/note_live/index.ex:23 | ||||||
| #: lib/memex_web/live/note_live/show.ex:47 | #: lib/memex_web/live/note_live/show.ex:47 | ||||||
| #: lib/memex_web/live/pipeline_live/index.ex:23 | #: lib/memex_web/live/pipeline_live/index.ex:23 | ||||||
| #: lib/memex_web/live/pipeline_live/show.ex:122 | #: lib/memex_web/live/pipeline_live/show.ex:121 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "edit %{slug}" | msgid "edit %{slug}" | ||||||
| msgstr "" | msgstr "" | ||||||
| @@ -398,7 +398,7 @@ msgstr "" | |||||||
|  |  | ||||||
| #: lib/memex_web/live/context_live/show.ex:18 | #: lib/memex_web/live/context_live/show.ex:18 | ||||||
| #: lib/memex_web/live/note_live/show.ex:18 | #: lib/memex_web/live/note_live/show.ex:18 | ||||||
| #: lib/memex_web/live/pipeline_live/show.ex:19 | #: lib/memex_web/live/pipeline_live/show.ex:18 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "%{slug} could not be found" | msgid "%{slug} could not be found" | ||||||
| msgstr "" | msgstr "" | ||||||
| @@ -444,7 +444,7 @@ msgstr "" | |||||||
| msgid "%{title} created" | msgid "%{title} created" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/memex_web/live/pipeline_live/show.ex:94 | #: lib/memex_web/live/pipeline_live/show.ex:93 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "%{title} deleted" | msgid "%{title} deleted" | ||||||
| msgstr "" | msgstr "" | ||||||
| @@ -454,7 +454,7 @@ msgstr "" | |||||||
| msgid "%{title} saved" | msgid "%{title} saved" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/memex_web/live/pipeline_live/show.ex:124 | #: lib/memex_web/live/pipeline_live/show.ex:123 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "add step to %{slug}" | msgid "add step to %{slug}" | ||||||
| msgstr "" | msgstr "" | ||||||
|   | |||||||
| @@ -362,7 +362,7 @@ msgstr "" | |||||||
| #: lib/memex_web/live/note_live/index.ex:57 | #: lib/memex_web/live/note_live/index.ex:57 | ||||||
| #: lib/memex_web/live/note_live/show.ex:40 | #: lib/memex_web/live/note_live/show.ex:40 | ||||||
| #: lib/memex_web/live/pipeline_live/index.ex:57 | #: lib/memex_web/live/pipeline_live/index.ex:57 | ||||||
| #: lib/memex_web/live/pipeline_live/show.ex:76 | #: lib/memex_web/live/pipeline_live/show.ex:75 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "%{slug} deleted" | msgid "%{slug} deleted" | ||||||
| msgstr "" | msgstr "" | ||||||
| @@ -379,7 +379,7 @@ msgstr "" | |||||||
| #: lib/memex_web/live/note_live/index.ex:23 | #: lib/memex_web/live/note_live/index.ex:23 | ||||||
| #: lib/memex_web/live/note_live/show.ex:47 | #: lib/memex_web/live/note_live/show.ex:47 | ||||||
| #: lib/memex_web/live/pipeline_live/index.ex:23 | #: lib/memex_web/live/pipeline_live/index.ex:23 | ||||||
| #: lib/memex_web/live/pipeline_live/show.ex:122 | #: lib/memex_web/live/pipeline_live/show.ex:121 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "edit %{slug}" | msgid "edit %{slug}" | ||||||
| msgstr "" | msgstr "" | ||||||
| @@ -396,7 +396,7 @@ msgstr "" | |||||||
|  |  | ||||||
| #: lib/memex_web/live/context_live/show.ex:18 | #: lib/memex_web/live/context_live/show.ex:18 | ||||||
| #: lib/memex_web/live/note_live/show.ex:18 | #: lib/memex_web/live/note_live/show.ex:18 | ||||||
| #: lib/memex_web/live/pipeline_live/show.ex:19 | #: lib/memex_web/live/pipeline_live/show.ex:18 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "%{slug} could not be found" | msgid "%{slug} could not be found" | ||||||
| msgstr "" | msgstr "" | ||||||
| @@ -442,7 +442,7 @@ msgstr "" | |||||||
| msgid "%{title} created" | msgid "%{title} created" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/memex_web/live/pipeline_live/show.ex:94 | #: lib/memex_web/live/pipeline_live/show.ex:93 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "%{title} deleted" | msgid "%{title} deleted" | ||||||
| msgstr "" | msgstr "" | ||||||
| @@ -452,7 +452,7 @@ msgstr "" | |||||||
| msgid "%{title} saved" | msgid "%{title} saved" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/memex_web/live/pipeline_live/show.ex:124 | #: lib/memex_web/live/pipeline_live/show.ex:123 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "add step to %{slug}" | msgid "add step to %{slug}" | ||||||
| msgstr "" | msgstr "" | ||||||
|   | |||||||
| @@ -363,7 +363,7 @@ msgstr "" | |||||||
| #: lib/memex_web/live/note_live/index.ex:57 | #: lib/memex_web/live/note_live/index.ex:57 | ||||||
| #: lib/memex_web/live/note_live/show.ex:40 | #: lib/memex_web/live/note_live/show.ex:40 | ||||||
| #: lib/memex_web/live/pipeline_live/index.ex:57 | #: lib/memex_web/live/pipeline_live/index.ex:57 | ||||||
| #: lib/memex_web/live/pipeline_live/show.ex:76 | #: lib/memex_web/live/pipeline_live/show.ex:75 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "%{slug} deleted" | msgid "%{slug} deleted" | ||||||
| msgstr "" | msgstr "" | ||||||
| @@ -380,7 +380,7 @@ msgstr "" | |||||||
| #: lib/memex_web/live/note_live/index.ex:23 | #: lib/memex_web/live/note_live/index.ex:23 | ||||||
| #: lib/memex_web/live/note_live/show.ex:47 | #: lib/memex_web/live/note_live/show.ex:47 | ||||||
| #: lib/memex_web/live/pipeline_live/index.ex:23 | #: lib/memex_web/live/pipeline_live/index.ex:23 | ||||||
| #: lib/memex_web/live/pipeline_live/show.ex:122 | #: lib/memex_web/live/pipeline_live/show.ex:121 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "edit %{slug}" | msgid "edit %{slug}" | ||||||
| msgstr "" | msgstr "" | ||||||
| @@ -397,7 +397,7 @@ msgstr "" | |||||||
|  |  | ||||||
| #: lib/memex_web/live/context_live/show.ex:18 | #: lib/memex_web/live/context_live/show.ex:18 | ||||||
| #: lib/memex_web/live/note_live/show.ex:18 | #: lib/memex_web/live/note_live/show.ex:18 | ||||||
| #: lib/memex_web/live/pipeline_live/show.ex:19 | #: lib/memex_web/live/pipeline_live/show.ex:18 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "%{slug} could not be found" | msgid "%{slug} could not be found" | ||||||
| msgstr "" | msgstr "" | ||||||
| @@ -443,7 +443,7 @@ msgstr "" | |||||||
| msgid "%{title} created" | msgid "%{title} created" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/memex_web/live/pipeline_live/show.ex:94 | #: lib/memex_web/live/pipeline_live/show.ex:93 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "%{title} deleted" | msgid "%{title} deleted" | ||||||
| msgstr "" | msgstr "" | ||||||
| @@ -453,7 +453,7 @@ msgstr "" | |||||||
| msgid "%{title} saved" | msgid "%{title} saved" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/memex_web/live/pipeline_live/show.ex:124 | #: lib/memex_web/live/pipeline_live/show.ex:123 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "add step to %{slug}" | msgid "add step to %{slug}" | ||||||
| msgstr "" | msgstr "" | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user