Compare commits
11 Commits
1276635a3e
...
0.1.11
Author | SHA1 | Date | |
---|---|---|---|
4615a29c11 | |||
eb48ff7dc0 | |||
fcfd9857d5 | |||
c5f96a9d9d | |||
c1a0b4017f | |||
04ebe59afe | |||
50be85a1c3 | |||
994aa96a20 | |||
026bf22f60 | |||
56e6eb3609 | |||
c49140e7f5 |
@ -42,7 +42,8 @@ steps:
|
|||||||
repo: shibaobun/memex
|
repo: shibaobun/memex
|
||||||
purge: true
|
purge: true
|
||||||
compress: true
|
compress: true
|
||||||
platforms: linux/amd64,linux/arm/v7
|
platforms:
|
||||||
|
- linux/amd64
|
||||||
username:
|
username:
|
||||||
from_secret: docker_username
|
from_secret: docker_username
|
||||||
password:
|
password:
|
||||||
@ -59,7 +60,8 @@ steps:
|
|||||||
repo: shibaobun/memex
|
repo: shibaobun/memex
|
||||||
purge: true
|
purge: true
|
||||||
compress: true
|
compress: true
|
||||||
platforms: linux/amd64,linux/arm/v7
|
platforms:
|
||||||
|
- linux/amd64
|
||||||
username:
|
username:
|
||||||
from_secret: docker_username
|
from_secret: docker_username
|
||||||
password:
|
password:
|
||||||
|
@ -28,14 +28,13 @@ import { LiveSocket } from 'phoenix_live_view'
|
|||||||
import topbar from 'topbar'
|
import topbar from 'topbar'
|
||||||
import Date from './date'
|
import Date from './date'
|
||||||
import DateTime from './datetime'
|
import DateTime from './datetime'
|
||||||
import MaintainAttrs from './maintain_attrs'
|
|
||||||
|
|
||||||
const csrfTokenElement = document.querySelector("meta[name='csrf-token']")
|
const csrfTokenElement = document.querySelector("meta[name='csrf-token']")
|
||||||
let csrfToken
|
let csrfToken
|
||||||
if (csrfTokenElement) { csrfToken = csrfTokenElement.getAttribute('content') }
|
if (csrfTokenElement) { csrfToken = csrfTokenElement.getAttribute('content') }
|
||||||
const liveSocket = new LiveSocket('/live', Socket, {
|
const liveSocket = new LiveSocket('/live', Socket, {
|
||||||
params: { _csrf_token: csrfToken },
|
params: { _csrf_token: csrfToken },
|
||||||
hooks: { Date, DateTime, MaintainAttrs }
|
hooks: { Date, DateTime }
|
||||||
})
|
})
|
||||||
|
|
||||||
// Show progress bar on live navigation and form submits
|
// Show progress bar on live navigation and form submits
|
||||||
|
@ -1,22 +0,0 @@
|
|||||||
// maintain user adjusted attributes, like textbox length on phoenix liveview
|
|
||||||
// update. https://github.com/phoenixframework/phoenix_live_view/issues/1011
|
|
||||||
|
|
||||||
export default {
|
|
||||||
attrs () {
|
|
||||||
if (this.el && this.el.getAttribute('data-attrs')) {
|
|
||||||
return this.el.getAttribute('data-attrs').split(', ')
|
|
||||||
} else {
|
|
||||||
return []
|
|
||||||
}
|
|
||||||
},
|
|
||||||
beforeUpdate () {
|
|
||||||
if (this.el) {
|
|
||||||
this.prevAttrs = this.attrs().map(name => [name, this.el.getAttribute(name)])
|
|
||||||
}
|
|
||||||
},
|
|
||||||
updated () {
|
|
||||||
if (this.el) {
|
|
||||||
this.prevAttrs.forEach(([name, val]) => this.el.setAttribute(name, val))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,5 +1,9 @@
|
|||||||
# v0.1.11
|
# v0.1.11
|
||||||
- Update dependencies
|
- Update dependencies
|
||||||
|
- ee cummings even more
|
||||||
|
- Improve tests
|
||||||
|
- Change invite path slightly
|
||||||
|
- Disable arm builds since ci fails to build
|
||||||
|
|
||||||
# v0.1.10
|
# v0.1.10
|
||||||
- Improve accessibility
|
- Improve accessibility
|
||||||
|
@ -4,7 +4,6 @@ defmodule MemexWeb.CoreComponents do
|
|||||||
"""
|
"""
|
||||||
use Phoenix.Component
|
use Phoenix.Component
|
||||||
use MemexWeb, :verified_routes
|
use MemexWeb, :verified_routes
|
||||||
|
|
||||||
import MemexWeb.{Gettext, HTMLHelpers}
|
import MemexWeb.{Gettext, HTMLHelpers}
|
||||||
alias Memex.{Accounts, Accounts.Invite, Accounts.User}
|
alias Memex.{Accounts, Accounts.Invite, Accounts.User}
|
||||||
alias Memex.Contexts.Context
|
alias Memex.Contexts.Context
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
<div
|
<div
|
||||||
id={"show-context-content-#{@context.id}"}
|
id={"show-context-content-#{@context.id}"}
|
||||||
class="input input-primary h-128 min-h-128 inline-block whitespace-pre-wrap overflow-x-hidden overflow-y-auto"
|
class="input input-primary h-128 min-h-128 inline-block whitespace-pre-wrap overflow-x-hidden overflow-y-auto"
|
||||||
phx-hook="MaintainAttrs"
|
|
||||||
phx-update="ignore"
|
phx-update="ignore"
|
||||||
readonly
|
readonly
|
||||||
phx-no-format
|
phx-no-format
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
<div
|
<div
|
||||||
id={"show-note-content-#{@note.id}"}
|
id={"show-note-content-#{@note.id}"}
|
||||||
class="input input-primary h-128 min-h-128 inline-block whitespace-pre-wrap overflow-x-hidden overflow-y-auto"
|
class="input input-primary h-128 min-h-128 inline-block whitespace-pre-wrap overflow-x-hidden overflow-y-auto"
|
||||||
phx-hook="MaintainAttrs"
|
|
||||||
phx-update="ignore"
|
phx-update="ignore"
|
||||||
readonly
|
readonly
|
||||||
phx-no-format
|
phx-no-format
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
<div
|
<div
|
||||||
id={"show-step-content-#{@step.id}"}
|
id={"show-step-content-#{@step.id}"}
|
||||||
class="input input-primary h-32 min-h-32 inline-block whitespace-pre-wrap overflow-x-hidden overflow-y-auto"
|
class="input input-primary h-32 min-h-32 inline-block whitespace-pre-wrap overflow-x-hidden overflow-y-auto"
|
||||||
phx-hook="MaintainAttrs"
|
|
||||||
phx-update="ignore"
|
phx-update="ignore"
|
||||||
readonly
|
readonly
|
||||||
phx-no-format
|
phx-no-format
|
||||||
|
@ -88,9 +88,7 @@ defmodule MemexWeb.Components.NotesTableComponent do
|
|||||||
|
|
||||||
@spec get_value_for_key(atom(), Note.t(), additional_data :: map()) ::
|
@spec get_value_for_key(atom(), Note.t(), additional_data :: map()) ::
|
||||||
any() | {any(), Rendered.t()}
|
any() | {any(), Rendered.t()}
|
||||||
defp get_value_for_key(:slug, %{slug: slug}, _additional_data) do
|
defp get_value_for_key(:slug, %{slug: slug} = assigns, _additional_data) do
|
||||||
assigns = %{slug: slug}
|
|
||||||
|
|
||||||
slug_block = ~H"""
|
slug_block = ~H"""
|
||||||
<.link navigate={~p"/note/#{@slug}"} class="link">
|
<.link navigate={~p"/note/#{@slug}"} class="link">
|
||||||
<%= @slug %>
|
<%= @slug %>
|
||||||
@ -100,9 +98,7 @@ defmodule MemexWeb.Components.NotesTableComponent do
|
|||||||
{slug, slug_block}
|
{slug, slug_block}
|
||||||
end
|
end
|
||||||
|
|
||||||
defp get_value_for_key(:tags, %{tags: tags}, _additional_data) do
|
defp get_value_for_key(:tags, assigns, _additional_data) do
|
||||||
assigns = %{tags: tags}
|
|
||||||
|
|
||||||
~H"""
|
~H"""
|
||||||
<div class="flex flex-wrap justify-center space-x-1">
|
<div class="flex flex-wrap justify-center space-x-1">
|
||||||
<.link :for={tag <- @tags} patch={~p"/notes/#{tag}"} class="link">
|
<.link :for={tag <- @tags} patch={~p"/notes/#{tag}"} class="link">
|
||||||
|
@ -89,9 +89,7 @@ defmodule MemexWeb.Components.PipelinesTableComponent do
|
|||||||
|
|
||||||
@spec get_value_for_key(atom(), Pipeline.t(), additional_data :: map()) ::
|
@spec get_value_for_key(atom(), Pipeline.t(), additional_data :: map()) ::
|
||||||
any() | {any(), Rendered.t()}
|
any() | {any(), Rendered.t()}
|
||||||
defp get_value_for_key(:slug, %{slug: slug}, _additional_data) do
|
defp get_value_for_key(:slug, %{slug: slug} = assigns, _additional_data) do
|
||||||
assigns = %{slug: slug}
|
|
||||||
|
|
||||||
slug_block = ~H"""
|
slug_block = ~H"""
|
||||||
<.link navigate={~p"/pipeline/#{@slug}"} class="link">
|
<.link navigate={~p"/pipeline/#{@slug}"} class="link">
|
||||||
<%= @slug %>
|
<%= @slug %>
|
||||||
@ -101,9 +99,7 @@ defmodule MemexWeb.Components.PipelinesTableComponent do
|
|||||||
{slug, slug_block}
|
{slug, slug_block}
|
||||||
end
|
end
|
||||||
|
|
||||||
defp get_value_for_key(:description, %{description: description}, _additional_data) do
|
defp get_value_for_key(:description, %{description: description} = assigns, _additional_data) do
|
||||||
assigns = %{description: description}
|
|
||||||
|
|
||||||
description_block = ~H"""
|
description_block = ~H"""
|
||||||
<div class="truncate max-w-sm">
|
<div class="truncate max-w-sm">
|
||||||
<%= @description %>
|
<%= @description %>
|
||||||
@ -113,9 +109,7 @@ defmodule MemexWeb.Components.PipelinesTableComponent do
|
|||||||
{description, description_block}
|
{description, description_block}
|
||||||
end
|
end
|
||||||
|
|
||||||
defp get_value_for_key(:tags, %{tags: tags}, _additional_data) do
|
defp get_value_for_key(:tags, assigns, _additional_data) do
|
||||||
assigns = %{tags: tags}
|
|
||||||
|
|
||||||
~H"""
|
~H"""
|
||||||
<div class="flex flex-wrap justify-center space-x-1">
|
<div class="flex flex-wrap justify-center space-x-1">
|
||||||
<.link :for={tag <- @tags} patch={~p"/pipelines/#{tag}"} class="link">
|
<.link :for={tag <- @tags} patch={~p"/pipelines/#{tag}"} class="link">
|
||||||
|
@ -5,7 +5,7 @@ defmodule MemexWeb.UserConfirmationController do
|
|||||||
alias Memex.Accounts
|
alias Memex.Accounts
|
||||||
|
|
||||||
def new(conn, _params) do
|
def new(conn, _params) do
|
||||||
render(conn, :new, page_title: gettext("Confirm your account"))
|
render(conn, :new, page_title: gettext("confirm your account"))
|
||||||
end
|
end
|
||||||
|
|
||||||
def create(conn, %{"user" => %{"email" => email}}) do
|
def create(conn, %{"user" => %{"email" => email}}) do
|
||||||
@ -22,11 +22,10 @@ defmodule MemexWeb.UserConfirmationController do
|
|||||||
:info,
|
:info,
|
||||||
dgettext(
|
dgettext(
|
||||||
"prompts",
|
"prompts",
|
||||||
"If your email is in our system and it has not been confirmed yet, " <>
|
"if your email is in our system and it has not been confirmed yet, you will receive an email with instructions shortly."
|
||||||
"you will receive an email with instructions shortly."
|
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|> redirect(to: "/")
|
|> redirect(to: ~p"/")
|
||||||
end
|
end
|
||||||
|
|
||||||
# Do not log in the user after confirmation to avoid a
|
# Do not log in the user after confirmation to avoid a
|
||||||
@ -36,7 +35,7 @@ defmodule MemexWeb.UserConfirmationController do
|
|||||||
{:ok, %{email: email}} ->
|
{:ok, %{email: email}} ->
|
||||||
conn
|
conn
|
||||||
|> put_flash(:info, dgettext("prompts", "%{email} confirmed successfully.", email: email))
|
|> put_flash(:info, dgettext("prompts", "%{email} confirmed successfully.", email: email))
|
||||||
|> redirect(to: "/")
|
|> redirect(to: ~p"/")
|
||||||
|
|
||||||
:error ->
|
:error ->
|
||||||
# If there is a current user and the account was already confirmed,
|
# If there is a current user and the account was already confirmed,
|
||||||
@ -45,15 +44,15 @@ defmodule MemexWeb.UserConfirmationController do
|
|||||||
# a warning message.
|
# a warning message.
|
||||||
case conn.assigns do
|
case conn.assigns do
|
||||||
%{current_user: %{confirmed_at: confirmed_at}} when not is_nil(confirmed_at) ->
|
%{current_user: %{confirmed_at: confirmed_at}} when not is_nil(confirmed_at) ->
|
||||||
redirect(conn, to: "/")
|
redirect(conn, to: ~p"/")
|
||||||
|
|
||||||
%{} ->
|
%{} ->
|
||||||
conn
|
conn
|
||||||
|> put_flash(
|
|> put_flash(
|
||||||
:error,
|
:error,
|
||||||
dgettext("errors", "User confirmation link is invalid or it has expired.")
|
dgettext("errors", "user confirmation link is invalid or it has expired.")
|
||||||
)
|
)
|
||||||
|> redirect(to: "/")
|
|> redirect(to: ~p"/")
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -8,7 +8,7 @@ defmodule MemexWeb.UserRegistrationController do
|
|||||||
conn |> render_new(invite_token)
|
conn |> render_new(invite_token)
|
||||||
else
|
else
|
||||||
conn
|
conn
|
||||||
|> put_flash(:error, dgettext("errors", "Sorry, this invite was not found or expired"))
|
|> put_flash(:error, dgettext("errors", "sorry, this invite was not found or expired"))
|
||||||
|> redirect(to: ~p"/")
|
|> redirect(to: ~p"/")
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -18,7 +18,7 @@ defmodule MemexWeb.UserRegistrationController do
|
|||||||
conn |> render_new()
|
conn |> render_new()
|
||||||
else
|
else
|
||||||
conn
|
conn
|
||||||
|> put_flash(:error, dgettext("errors", "Sorry, public registration is disabled"))
|
|> put_flash(:error, dgettext("errors", "sorry, public registration is disabled"))
|
||||||
|> redirect(to: ~p"/")
|
|> redirect(to: ~p"/")
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -37,7 +37,7 @@ defmodule MemexWeb.UserRegistrationController do
|
|||||||
conn |> create_user(attrs, invite_token)
|
conn |> create_user(attrs, invite_token)
|
||||||
else
|
else
|
||||||
conn
|
conn
|
||||||
|> put_flash(:error, dgettext("errors", "Sorry, this invite was not found or expired"))
|
|> put_flash(:error, dgettext("errors", "sorry, this invite was not found or expired"))
|
||||||
|> redirect(to: ~p"/")
|
|> redirect(to: ~p"/")
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -47,7 +47,7 @@ defmodule MemexWeb.UserRegistrationController do
|
|||||||
conn |> create_user(attrs)
|
conn |> create_user(attrs)
|
||||||
else
|
else
|
||||||
conn
|
conn
|
||||||
|> put_flash(:error, dgettext("errors", "Sorry, public registration is disabled"))
|
|> put_flash(:error, dgettext("errors", "sorry, public registration is disabled"))
|
||||||
|> redirect(to: ~p"/")
|
|> redirect(to: ~p"/")
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -23,17 +23,16 @@ defmodule MemexWeb.UserResetPasswordController do
|
|||||||
:info,
|
:info,
|
||||||
dgettext(
|
dgettext(
|
||||||
"prompts",
|
"prompts",
|
||||||
"If your email is in our system, you will receive instructions to " <>
|
"if your email is in our system, you will receive instructions to reset your password shortly."
|
||||||
"reset your password shortly."
|
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|> redirect(to: "/")
|
|> redirect(to: ~p"/")
|
||||||
end
|
end
|
||||||
|
|
||||||
def edit(conn, _params) do
|
def edit(conn, _params) do
|
||||||
render(conn, :edit,
|
render(conn, :edit,
|
||||||
changeset: Accounts.change_user_password(conn.assigns.user),
|
changeset: Accounts.change_user_password(conn.assigns.user),
|
||||||
page_title: gettext("Reset your password")
|
page_title: gettext("reset your password")
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -43,7 +42,7 @@ defmodule MemexWeb.UserResetPasswordController do
|
|||||||
case Accounts.reset_user_password(conn.assigns.user, user_params) do
|
case Accounts.reset_user_password(conn.assigns.user, user_params) do
|
||||||
{:ok, _} ->
|
{:ok, _} ->
|
||||||
conn
|
conn
|
||||||
|> put_flash(:info, dgettext("prompts", "Password reset successfully."))
|
|> put_flash(:info, dgettext("prompts", "password reset successfully."))
|
||||||
|> redirect(to: ~p"/users/log_in")
|
|> redirect(to: ~p"/users/log_in")
|
||||||
|
|
||||||
{:error, changeset} ->
|
{:error, changeset} ->
|
||||||
@ -60,9 +59,9 @@ defmodule MemexWeb.UserResetPasswordController do
|
|||||||
conn
|
conn
|
||||||
|> put_flash(
|
|> put_flash(
|
||||||
:error,
|
:error,
|
||||||
dgettext("errors", "Reset password link is invalid or it has expired.")
|
dgettext("errors", "reset password link is invalid or it has expired.")
|
||||||
)
|
)
|
||||||
|> redirect(to: "/")
|
|> redirect(to: ~p"/")
|
||||||
|> halt()
|
|> halt()
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
<div class="mx-auto pb-8 max-w-2xl flex flex-col justify-center items-center space-y-4">
|
<div class="mx-auto pb-8 max-w-2xl flex flex-col justify-center items-center space-y-4">
|
||||||
<h1 class="title text-primary-400 text-xl">
|
<h1 class="title text-primary-400 text-xl">
|
||||||
<%= dgettext("actions", "Reset password") %>
|
<%= dgettext("actions", "reset password") %>
|
||||||
</h1>
|
</h1>
|
||||||
|
|
||||||
<.form
|
<.form
|
||||||
@ -26,7 +26,7 @@
|
|||||||
) %>
|
) %>
|
||||||
<%= error_tag(f, :password_confirmation, "col-span-3") %>
|
<%= error_tag(f, :password_confirmation, "col-span-3") %>
|
||||||
|
|
||||||
<%= submit(dgettext("actions", "Reset password"),
|
<%= submit(dgettext("actions", "reset password"),
|
||||||
class: "mx-auto btn btn-primary col-span-3"
|
class: "mx-auto btn btn-primary col-span-3"
|
||||||
) %>
|
) %>
|
||||||
</.form>
|
</.form>
|
||||||
|
@ -14,7 +14,7 @@ defmodule MemexWeb.UserSessionController do
|
|||||||
if user = Accounts.get_user_by_email_and_password(email, password) do
|
if user = Accounts.get_user_by_email_and_password(email, password) do
|
||||||
UserAuth.log_in_user(conn, user, user_params)
|
UserAuth.log_in_user(conn, user, user_params)
|
||||||
else
|
else
|
||||||
render(conn, :new, error_message: dgettext("errors", "Invalid email or password"))
|
render(conn, :new, error_message: dgettext("errors", "invalid email or password"))
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -19,7 +19,6 @@
|
|||||||
<%= textarea(f, :content,
|
<%= textarea(f, :content,
|
||||||
id: "context-form-content",
|
id: "context-form-content",
|
||||||
class: "input input-primary h-64 min-h-64",
|
class: "input input-primary h-64 min-h-64",
|
||||||
phx_hook: "MaintainAttrs",
|
|
||||||
phx_update: "ignore",
|
phx_update: "ignore",
|
||||||
placeholder: gettext("use [[note-slug]] to link to a note"),
|
placeholder: gettext("use [[note-slug]] to link to a note"),
|
||||||
aria_label: gettext("use [[note-slug]] to link to a note")
|
aria_label: gettext("use [[note-slug]] to link to a note")
|
||||||
|
@ -35,7 +35,7 @@
|
|||||||
</form>
|
</form>
|
||||||
</:code_actions>
|
</:code_actions>
|
||||||
<.link
|
<.link
|
||||||
patch={~p"/invites/#{invite}/edit"}
|
patch={~p"/invites/edit/#{invite}"}
|
||||||
class="text-primary-400 link"
|
class="text-primary-400 link"
|
||||||
aria-label={
|
aria-label={
|
||||||
dgettext("actions", "edit invite for %{invite_name}", invite_name: invite.name)
|
dgettext("actions", "edit invite for %{invite_name}", invite_name: invite.name)
|
||||||
|
@ -19,7 +19,6 @@
|
|||||||
<%= textarea(f, :content,
|
<%= textarea(f, :content,
|
||||||
id: "note-form-content",
|
id: "note-form-content",
|
||||||
class: "input input-primary h-64 min-h-64",
|
class: "input input-primary h-64 min-h-64",
|
||||||
phx_hook: "MaintainAttrs",
|
|
||||||
phx_update: "ignore",
|
phx_update: "ignore",
|
||||||
placeholder: gettext("content"),
|
placeholder: gettext("content"),
|
||||||
aria_label: gettext("content")
|
aria_label: gettext("content")
|
||||||
|
@ -19,7 +19,6 @@
|
|||||||
<%= textarea(f, :description,
|
<%= textarea(f, :description,
|
||||||
id: "pipeline-form-description",
|
id: "pipeline-form-description",
|
||||||
class: "input input-primary h-64 min-h-64",
|
class: "input input-primary h-64 min-h-64",
|
||||||
phx_hook: "MaintainAttrs",
|
|
||||||
phx_update: "ignore",
|
phx_update: "ignore",
|
||||||
placeholder: gettext("description"),
|
placeholder: gettext("description"),
|
||||||
aria_label: gettext("description")
|
aria_label: gettext("description")
|
||||||
|
@ -13,7 +13,6 @@
|
|||||||
:if={@pipeline.description}
|
:if={@pipeline.description}
|
||||||
id="show-pipeline-description"
|
id="show-pipeline-description"
|
||||||
class="input input-primary h-32 min-h-32"
|
class="input input-primary h-32 min-h-32"
|
||||||
phx-hook="MaintainAttrs"
|
|
||||||
phx-update="ignore"
|
phx-update="ignore"
|
||||||
readonly
|
readonly
|
||||||
phx-no-format
|
phx-no-format
|
||||||
|
@ -19,7 +19,6 @@
|
|||||||
<%= textarea(f, :content,
|
<%= textarea(f, :content,
|
||||||
id: "step-form-content",
|
id: "step-form-content",
|
||||||
class: "input input-primary h-64 min-h-64",
|
class: "input input-primary h-64 min-h-64",
|
||||||
phx_hook: "MaintainAttrs",
|
|
||||||
phx_update: "ignore",
|
phx_update: "ignore",
|
||||||
placeholder: gettext("use [[context-slug]] to link to a context"),
|
placeholder: gettext("use [[context-slug]] to link to a context"),
|
||||||
aria_label: gettext("use [[context-slug]] to link to a context")
|
aria_label: gettext("use [[context-slug]] to link to a context")
|
||||||
|
@ -95,7 +95,7 @@ defmodule MemexWeb.Router do
|
|||||||
live_session :admin, on_mount: [{MemexWeb.UserAuth, :ensure_admin}] do
|
live_session :admin, on_mount: [{MemexWeb.UserAuth, :ensure_admin}] do
|
||||||
live "/invites", InviteLive.Index, :index
|
live "/invites", InviteLive.Index, :index
|
||||||
live "/invites/new", InviteLive.Index, :new
|
live "/invites/new", InviteLive.Index, :new
|
||||||
live "/invites/:id/edit", InviteLive.Index, :edit
|
live "/invites/edit/:id", InviteLive.Index, :edit
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -16,12 +16,6 @@ msgstr ""
|
|||||||
msgid "Resend confirmation instructions"
|
msgid "Resend confirmation instructions"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/memex_web/controllers/user_reset_password_html/edit.html.heex:3
|
|
||||||
#: lib/memex_web/controllers/user_reset_password_html/edit.html.heex:29
|
|
||||||
#, elixir-autogen, elixir-format
|
|
||||||
msgid "Reset password"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/memex_web/controllers/user_settings_html/edit.html.heex:15
|
#: lib/memex_web/controllers/user_settings_html/edit.html.heex:15
|
||||||
#: lib/memex_web/controllers/user_settings_html/edit.html.heex:43
|
#: lib/memex_web/controllers/user_settings_html/edit.html.heex:43
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
@ -50,8 +44,8 @@ msgstr ""
|
|||||||
#: lib/memex_web/live/note_live/index.html.heex:50
|
#: lib/memex_web/live/note_live/index.html.heex:50
|
||||||
#: lib/memex_web/live/note_live/show.html.heex:34
|
#: lib/memex_web/live/note_live/show.html.heex:34
|
||||||
#: lib/memex_web/live/pipeline_live/index.html.heex:52
|
#: lib/memex_web/live/pipeline_live/index.html.heex:52
|
||||||
#: lib/memex_web/live/pipeline_live/show.html.heex:42
|
#: lib/memex_web/live/pipeline_live/show.html.heex:41
|
||||||
#: lib/memex_web/live/pipeline_live/show.html.heex:113
|
#: lib/memex_web/live/pipeline_live/show.html.heex:112
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "delete"
|
msgid "delete"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -66,8 +60,8 @@ msgstr ""
|
|||||||
#: lib/memex_web/live/note_live/index.html.heex:40
|
#: lib/memex_web/live/note_live/index.html.heex:40
|
||||||
#: lib/memex_web/live/note_live/show.html.heex:24
|
#: lib/memex_web/live/note_live/show.html.heex:24
|
||||||
#: lib/memex_web/live/pipeline_live/index.html.heex:40
|
#: lib/memex_web/live/pipeline_live/index.html.heex:40
|
||||||
#: lib/memex_web/live/pipeline_live/show.html.heex:32
|
#: lib/memex_web/live/pipeline_live/show.html.heex:31
|
||||||
#: lib/memex_web/live/pipeline_live/show.html.heex:102
|
#: lib/memex_web/live/pipeline_live/show.html.heex:101
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "edit"
|
msgid "edit"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -114,16 +108,16 @@ msgstr ""
|
|||||||
msgid "register"
|
msgid "register"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/memex_web/live/context_live/form_component.html.heex:44
|
#: lib/memex_web/live/context_live/form_component.html.heex:43
|
||||||
#: lib/memex_web/live/invite_live/form_component.html.heex:32
|
#: lib/memex_web/live/invite_live/form_component.html.heex:32
|
||||||
#: lib/memex_web/live/note_live/form_component.html.heex:44
|
#: lib/memex_web/live/note_live/form_component.html.heex:43
|
||||||
#: lib/memex_web/live/pipeline_live/form_component.html.heex:44
|
#: lib/memex_web/live/pipeline_live/form_component.html.heex:43
|
||||||
#: lib/memex_web/live/step_live/form_component.html.heex:30
|
#: lib/memex_web/live/step_live/form_component.html.heex:29
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "save"
|
msgid "save"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/memex_web/live/pipeline_live/show.html.heex:128
|
#: lib/memex_web/live/pipeline_live/show.html.heex:127
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "add step"
|
msgid "add step"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -168,12 +162,12 @@ msgid "delete %{note_slug}"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/memex_web/live/pipeline_live/index.html.heex:49
|
#: lib/memex_web/live/pipeline_live/index.html.heex:49
|
||||||
#: lib/memex_web/live/pipeline_live/show.html.heex:40
|
#: lib/memex_web/live/pipeline_live/show.html.heex:39
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "delete %{pipeline_slug}"
|
msgid "delete %{pipeline_slug}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/memex_web/live/pipeline_live/show.html.heex:111
|
#: lib/memex_web/live/pipeline_live/show.html.heex:110
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "delete %{step_title}"
|
msgid "delete %{step_title}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -198,7 +192,7 @@ msgstr ""
|
|||||||
msgid "edit %{pipeline_slug}"
|
msgid "edit %{pipeline_slug}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/memex_web/live/pipeline_live/show.html.heex:100
|
#: lib/memex_web/live/pipeline_live/show.html.heex:99
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "edit %{step_title}"
|
msgid "edit %{step_title}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -208,12 +202,18 @@ msgstr ""
|
|||||||
msgid "edit invite for %{invite_name}"
|
msgid "edit invite for %{invite_name}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/memex_web/live/pipeline_live/show.html.heex:90
|
#: lib/memex_web/live/pipeline_live/show.html.heex:89
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "move %{step_title} down"
|
msgid "move %{step_title} down"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/memex_web/live/pipeline_live/show.html.heex:74
|
#: lib/memex_web/live/pipeline_live/show.html.heex:73
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "move %{step_title} up"
|
msgid "move %{step_title} up"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/memex_web/controllers/user_reset_password_html/edit.html.heex:3
|
||||||
|
#: lib/memex_web/controllers/user_reset_password_html/edit.html.heex:29
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "reset password"
|
||||||
|
msgstr ""
|
||||||
|
@ -16,12 +16,6 @@ msgstr ""
|
|||||||
msgid "Resend confirmation instructions"
|
msgid "Resend confirmation instructions"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/memex_web/controllers/user_reset_password_html/edit.html.heex:3
|
|
||||||
#: lib/memex_web/controllers/user_reset_password_html/edit.html.heex:29
|
|
||||||
#, elixir-autogen, elixir-format
|
|
||||||
msgid "Reset password"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/memex_web/controllers/user_settings_html/edit.html.heex:15
|
#: lib/memex_web/controllers/user_settings_html/edit.html.heex:15
|
||||||
#: lib/memex_web/controllers/user_settings_html/edit.html.heex:43
|
#: lib/memex_web/controllers/user_settings_html/edit.html.heex:43
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
@ -50,8 +44,8 @@ msgstr ""
|
|||||||
#: lib/memex_web/live/note_live/index.html.heex:50
|
#: lib/memex_web/live/note_live/index.html.heex:50
|
||||||
#: lib/memex_web/live/note_live/show.html.heex:34
|
#: lib/memex_web/live/note_live/show.html.heex:34
|
||||||
#: lib/memex_web/live/pipeline_live/index.html.heex:52
|
#: lib/memex_web/live/pipeline_live/index.html.heex:52
|
||||||
#: lib/memex_web/live/pipeline_live/show.html.heex:42
|
#: lib/memex_web/live/pipeline_live/show.html.heex:41
|
||||||
#: lib/memex_web/live/pipeline_live/show.html.heex:113
|
#: lib/memex_web/live/pipeline_live/show.html.heex:112
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "delete"
|
msgid "delete"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -66,8 +60,8 @@ msgstr ""
|
|||||||
#: lib/memex_web/live/note_live/index.html.heex:40
|
#: lib/memex_web/live/note_live/index.html.heex:40
|
||||||
#: lib/memex_web/live/note_live/show.html.heex:24
|
#: lib/memex_web/live/note_live/show.html.heex:24
|
||||||
#: lib/memex_web/live/pipeline_live/index.html.heex:40
|
#: lib/memex_web/live/pipeline_live/index.html.heex:40
|
||||||
#: lib/memex_web/live/pipeline_live/show.html.heex:32
|
#: lib/memex_web/live/pipeline_live/show.html.heex:31
|
||||||
#: lib/memex_web/live/pipeline_live/show.html.heex:102
|
#: lib/memex_web/live/pipeline_live/show.html.heex:101
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "edit"
|
msgid "edit"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -114,16 +108,16 @@ msgstr ""
|
|||||||
msgid "register"
|
msgid "register"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/memex_web/live/context_live/form_component.html.heex:44
|
#: lib/memex_web/live/context_live/form_component.html.heex:43
|
||||||
#: lib/memex_web/live/invite_live/form_component.html.heex:32
|
#: lib/memex_web/live/invite_live/form_component.html.heex:32
|
||||||
#: lib/memex_web/live/note_live/form_component.html.heex:44
|
#: lib/memex_web/live/note_live/form_component.html.heex:43
|
||||||
#: lib/memex_web/live/pipeline_live/form_component.html.heex:44
|
#: lib/memex_web/live/pipeline_live/form_component.html.heex:43
|
||||||
#: lib/memex_web/live/step_live/form_component.html.heex:30
|
#: lib/memex_web/live/step_live/form_component.html.heex:29
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "save"
|
msgid "save"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/memex_web/live/pipeline_live/show.html.heex:128
|
#: lib/memex_web/live/pipeline_live/show.html.heex:127
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "add step"
|
msgid "add step"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -168,12 +162,12 @@ msgid "delete %{note_slug}"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/memex_web/live/pipeline_live/index.html.heex:49
|
#: lib/memex_web/live/pipeline_live/index.html.heex:49
|
||||||
#: lib/memex_web/live/pipeline_live/show.html.heex:40
|
#: lib/memex_web/live/pipeline_live/show.html.heex:39
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "delete %{pipeline_slug}"
|
msgid "delete %{pipeline_slug}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/memex_web/live/pipeline_live/show.html.heex:111
|
#: lib/memex_web/live/pipeline_live/show.html.heex:110
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "delete %{step_title}"
|
msgid "delete %{step_title}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -198,7 +192,7 @@ msgstr ""
|
|||||||
msgid "edit %{pipeline_slug}"
|
msgid "edit %{pipeline_slug}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/memex_web/live/pipeline_live/show.html.heex:100
|
#: lib/memex_web/live/pipeline_live/show.html.heex:99
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "edit %{step_title}"
|
msgid "edit %{step_title}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -208,12 +202,18 @@ msgstr ""
|
|||||||
msgid "edit invite for %{invite_name}"
|
msgid "edit invite for %{invite_name}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/memex_web/live/pipeline_live/show.html.heex:90
|
#: lib/memex_web/live/pipeline_live/show.html.heex:89
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "move %{step_title} down"
|
msgid "move %{step_title} down"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/memex_web/live/pipeline_live/show.html.heex:74
|
#: lib/memex_web/live/pipeline_live/show.html.heex:73
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "move %{step_title} up"
|
msgid "move %{step_title} up"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/memex_web/controllers/user_reset_password_html/edit.html.heex:3
|
||||||
|
#: lib/memex_web/controllers/user_reset_password_html/edit.html.heex:29
|
||||||
|
#, elixir-autogen, elixir-format, fuzzy
|
||||||
|
msgid "reset password"
|
||||||
|
msgstr ""
|
||||||
|
@ -12,24 +12,14 @@ msgstr ""
|
|||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"X-Generator: Translate Toolkit 3.7.4\n"
|
"X-Generator: Translate Toolkit 3.7.4\n"
|
||||||
|
|
||||||
#: lib/memex_web/controllers/user_confirmation_controller.ex:8
|
|
||||||
#, elixir-autogen, elixir-format
|
|
||||||
msgid "Confirm your account"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/memex_web/components/layouts/live.html.heex:43
|
#: lib/memex_web/components/layouts/live.html.heex:43
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Reconnecting..."
|
msgid "Reconnecting..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/memex_web/controllers/user_reset_password_controller.ex:36
|
|
||||||
#, elixir-autogen, elixir-format
|
|
||||||
msgid "Reset your password"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/memex_web/live/context_live/show.html.heex:15
|
#: lib/memex_web/live/context_live/show.html.heex:15
|
||||||
#: lib/memex_web/live/note_live/show.html.heex:15
|
#: lib/memex_web/live/note_live/show.html.heex:15
|
||||||
#: lib/memex_web/live/pipeline_live/show.html.heex:23
|
#: lib/memex_web/live/pipeline_live/show.html.heex:22
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Visibility: %{visibility}"
|
msgid "Visibility: %{visibility}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -55,8 +45,8 @@ msgstr ""
|
|||||||
msgid "confirm new password"
|
msgid "confirm new password"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/memex_web/live/note_live/form_component.html.heex:23
|
||||||
#: lib/memex_web/live/note_live/form_component.html.heex:24
|
#: lib/memex_web/live/note_live/form_component.html.heex:24
|
||||||
#: lib/memex_web/live/note_live/form_component.html.heex:25
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "content"
|
msgid "content"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -253,20 +243,20 @@ msgstr ""
|
|||||||
msgid "report bugs or request features"
|
msgid "report bugs or request features"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/memex_web/live/context_live/form_component.html.heex:45
|
#: lib/memex_web/live/context_live/form_component.html.heex:44
|
||||||
#: lib/memex_web/live/note_live/form_component.html.heex:45
|
#: lib/memex_web/live/note_live/form_component.html.heex:44
|
||||||
#: lib/memex_web/live/pipeline_live/form_component.html.heex:45
|
#: lib/memex_web/live/pipeline_live/form_component.html.heex:44
|
||||||
#: lib/memex_web/live/step_live/form_component.html.heex:31
|
#: lib/memex_web/live/step_live/form_component.html.heex:30
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "saving..."
|
msgid "saving..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/memex_web/live/context_live/form_component.html.heex:39
|
||||||
#: lib/memex_web/live/context_live/form_component.html.heex:40
|
#: lib/memex_web/live/context_live/form_component.html.heex:40
|
||||||
#: lib/memex_web/live/context_live/form_component.html.heex:41
|
#: lib/memex_web/live/note_live/form_component.html.heex:39
|
||||||
#: lib/memex_web/live/note_live/form_component.html.heex:40
|
#: lib/memex_web/live/note_live/form_component.html.heex:40
|
||||||
#: lib/memex_web/live/note_live/form_component.html.heex:41
|
#: lib/memex_web/live/pipeline_live/form_component.html.heex:39
|
||||||
#: lib/memex_web/live/pipeline_live/form_component.html.heex:40
|
#: lib/memex_web/live/pipeline_live/form_component.html.heex:40
|
||||||
#: lib/memex_web/live/pipeline_live/form_component.html.heex:41
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "select privacy"
|
msgid "select privacy"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -282,12 +272,12 @@ msgstr ""
|
|||||||
msgid "settings"
|
msgid "settings"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/memex_web/live/context_live/form_component.html.heex:31
|
||||||
#: lib/memex_web/live/context_live/form_component.html.heex:32
|
#: lib/memex_web/live/context_live/form_component.html.heex:32
|
||||||
#: lib/memex_web/live/context_live/form_component.html.heex:33
|
#: lib/memex_web/live/note_live/form_component.html.heex:31
|
||||||
#: lib/memex_web/live/note_live/form_component.html.heex:32
|
#: lib/memex_web/live/note_live/form_component.html.heex:32
|
||||||
#: lib/memex_web/live/note_live/form_component.html.heex:33
|
#: lib/memex_web/live/pipeline_live/form_component.html.heex:31
|
||||||
#: lib/memex_web/live/pipeline_live/form_component.html.heex:32
|
#: lib/memex_web/live/pipeline_live/form_component.html.heex:32
|
||||||
#: lib/memex_web/live/pipeline_live/form_component.html.heex:33
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "tag1,tag2"
|
msgid "tag1,tag2"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -344,8 +334,8 @@ msgid "no contexts found"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/memex_web/components/pipelines_table_component.ex:48
|
#: lib/memex_web/components/pipelines_table_component.ex:48
|
||||||
|
#: lib/memex_web/live/pipeline_live/form_component.html.heex:23
|
||||||
#: lib/memex_web/live/pipeline_live/form_component.html.heex:24
|
#: lib/memex_web/live/pipeline_live/form_component.html.heex:24
|
||||||
#: lib/memex_web/live/pipeline_live/form_component.html.heex:25
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "description"
|
msgid "description"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -419,8 +409,8 @@ msgstr ""
|
|||||||
msgid "home"
|
msgid "home"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/memex_web/live/context_live/form_component.html.heex:23
|
||||||
#: lib/memex_web/live/context_live/form_component.html.heex:24
|
#: lib/memex_web/live/context_live/form_component.html.heex:24
|
||||||
#: lib/memex_web/live/context_live/form_component.html.heex:25
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "use [[note-slug]] to link to a note"
|
msgid "use [[note-slug]] to link to a note"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -446,7 +436,7 @@ msgstr ""
|
|||||||
msgid "what is this?"
|
msgid "what is this?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/memex_web/live/pipeline_live/show.html.heex:60
|
#: lib/memex_web/live/pipeline_live/show.html.heex:59
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "%{position}. %{title}"
|
msgid "%{position}. %{title}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -471,12 +461,12 @@ msgstr ""
|
|||||||
msgid "add step to %{slug}"
|
msgid "add step to %{slug}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/memex_web/live/pipeline_live/show.html.heex:54
|
#: lib/memex_web/live/pipeline_live/show.html.heex:53
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "no steps"
|
msgid "no steps"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/memex_web/live/pipeline_live/show.html.heex:49
|
#: lib/memex_web/live/pipeline_live/show.html.heex:48
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "steps:"
|
msgid "steps:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -487,8 +477,8 @@ msgstr ""
|
|||||||
msgid "title"
|
msgid "title"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/memex_web/live/step_live/form_component.html.heex:23
|
||||||
#: lib/memex_web/live/step_live/form_component.html.heex:24
|
#: lib/memex_web/live/step_live/form_component.html.heex:24
|
||||||
#: lib/memex_web/live/step_live/form_component.html.heex:25
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "use [[context-slug]] to link to a context"
|
msgid "use [[context-slug]] to link to a context"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -711,3 +701,13 @@ msgstr ""
|
|||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "log out"
|
msgid "log out"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/memex_web/controllers/user_confirmation_controller.ex:8
|
||||||
|
#, elixir-autogen, elixir-format, fuzzy
|
||||||
|
msgid "confirm your account"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/memex_web/controllers/user_reset_password_controller.ex:35
|
||||||
|
#, elixir-autogen, elixir-format, fuzzy
|
||||||
|
msgid "reset your password"
|
||||||
|
msgstr ""
|
||||||
|
@ -15,33 +15,6 @@ msgstr ""
|
|||||||
msgid "Error"
|
msgid "Error"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/memex_web/controllers/user_session_controller.ex:17
|
|
||||||
#, elixir-autogen, elixir-format
|
|
||||||
msgid "Invalid email or password"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/memex_web/controllers/user_reset_password_controller.ex:63
|
|
||||||
#, elixir-autogen, elixir-format
|
|
||||||
msgid "Reset password link is invalid or it has expired."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/memex_web/controllers/user_registration_controller.ex:21
|
|
||||||
#: lib/memex_web/controllers/user_registration_controller.ex:50
|
|
||||||
#, elixir-autogen, elixir-format
|
|
||||||
msgid "Sorry, public registration is disabled"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/memex_web/controllers/user_registration_controller.ex:11
|
|
||||||
#: lib/memex_web/controllers/user_registration_controller.ex:40
|
|
||||||
#, elixir-autogen, elixir-format
|
|
||||||
msgid "Sorry, this invite was not found or expired"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/memex_web/controllers/user_confirmation_controller.ex:54
|
|
||||||
#, elixir-autogen, elixir-format
|
|
||||||
msgid "User confirmation link is invalid or it has expired."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/memex_web/controllers/user_auth.ex:266
|
#: lib/memex_web/controllers/user_auth.ex:266
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "You are not authorized to view this page."
|
msgid "You are not authorized to view this page."
|
||||||
@ -120,6 +93,8 @@ msgstr ""
|
|||||||
msgid "oops, something went wrong! please check the errors below."
|
msgid "oops, something went wrong! please check the errors below."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/memex_web/controllers/user_registration_controller.ex:11
|
||||||
|
#: lib/memex_web/controllers/user_registration_controller.ex:40
|
||||||
#: lib/memex_web/controllers/user_registration_controller.ex:69
|
#: lib/memex_web/controllers/user_registration_controller.ex:69
|
||||||
#, elixir-autogen, elixir-format, fuzzy
|
#, elixir-autogen, elixir-format, fuzzy
|
||||||
msgid "sorry, this invite was not found or expired"
|
msgid "sorry, this invite was not found or expired"
|
||||||
@ -150,3 +125,24 @@ msgstr ""
|
|||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "You must log in to access this page."
|
msgid "You must log in to access this page."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/memex_web/controllers/user_session_controller.ex:17
|
||||||
|
#, elixir-autogen, elixir-format, fuzzy
|
||||||
|
msgid "invalid email or password"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/memex_web/controllers/user_reset_password_controller.ex:62
|
||||||
|
#, elixir-autogen, elixir-format, fuzzy
|
||||||
|
msgid "reset password link is invalid or it has expired."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/memex_web/controllers/user_registration_controller.ex:21
|
||||||
|
#: lib/memex_web/controllers/user_registration_controller.ex:50
|
||||||
|
#, elixir-autogen, elixir-format, fuzzy
|
||||||
|
msgid "sorry, public registration is disabled"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/memex_web/controllers/user_confirmation_controller.ex:53
|
||||||
|
#, elixir-autogen, elixir-format, fuzzy
|
||||||
|
msgid "user confirmation link is invalid or it has expired."
|
||||||
|
msgstr ""
|
||||||
|
@ -10,7 +10,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Language: de\n"
|
"Language: de\n"
|
||||||
|
|
||||||
#: lib/memex_web/controllers/user_confirmation_controller.ex:38
|
#: lib/memex_web/controllers/user_confirmation_controller.ex:37
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "%{email} confirmed successfully."
|
msgid "%{email} confirmed successfully."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -40,21 +40,6 @@ msgstr ""
|
|||||||
msgid "%{user_email} deleted succesfully"
|
msgid "%{user_email} deleted succesfully"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/memex_web/controllers/user_confirmation_controller.ex:23
|
|
||||||
#, elixir-autogen, elixir-format
|
|
||||||
msgid "If your email is in our system and it has not been confirmed yet, you will receive an email with instructions shortly."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/memex_web/controllers/user_reset_password_controller.ex:24
|
|
||||||
#, elixir-autogen, elixir-format
|
|
||||||
msgid "If your email is in our system, you will receive instructions to reset your password shortly."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/memex_web/controllers/user_reset_password_controller.ex:46
|
|
||||||
#, elixir-autogen, elixir-format
|
|
||||||
msgid "Password reset successfully."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/memex_web/controllers/user_settings_html/edit.html.heex:130
|
#: lib/memex_web/controllers/user_settings_html/edit.html.heex:130
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "are you sure you want to change your language?"
|
msgid "are you sure you want to change your language?"
|
||||||
@ -85,8 +70,8 @@ msgstr ""
|
|||||||
#: lib/memex_web/live/note_live/index.html.heex:47
|
#: lib/memex_web/live/note_live/index.html.heex:47
|
||||||
#: lib/memex_web/live/note_live/show.html.heex:31
|
#: lib/memex_web/live/note_live/show.html.heex:31
|
||||||
#: lib/memex_web/live/pipeline_live/index.html.heex:47
|
#: lib/memex_web/live/pipeline_live/index.html.heex:47
|
||||||
#: lib/memex_web/live/pipeline_live/show.html.heex:39
|
#: lib/memex_web/live/pipeline_live/show.html.heex:38
|
||||||
#: lib/memex_web/live/pipeline_live/show.html.heex:110
|
#: lib/memex_web/live/pipeline_live/show.html.heex:109
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "are you sure?"
|
msgid "are you sure?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -156,3 +141,18 @@ msgstr ""
|
|||||||
#, elixir-autogen, elixir-format, fuzzy
|
#, elixir-autogen, elixir-format, fuzzy
|
||||||
msgid "saving..."
|
msgid "saving..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/memex_web/controllers/user_confirmation_controller.ex:23
|
||||||
|
#, elixir-autogen, elixir-format, fuzzy
|
||||||
|
msgid "if your email is in our system and it has not been confirmed yet, you will receive an email with instructions shortly."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/memex_web/controllers/user_reset_password_controller.ex:24
|
||||||
|
#, elixir-autogen, elixir-format, fuzzy
|
||||||
|
msgid "if your email is in our system, you will receive instructions to reset your password shortly."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/memex_web/controllers/user_reset_password_controller.ex:45
|
||||||
|
#, elixir-autogen, elixir-format, fuzzy
|
||||||
|
msgid "password reset successfully."
|
||||||
|
msgstr ""
|
||||||
|
@ -10,24 +10,14 @@
|
|||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/memex_web/controllers/user_confirmation_controller.ex:8
|
|
||||||
#, elixir-autogen, elixir-format
|
|
||||||
msgid "Confirm your account"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/memex_web/components/layouts/live.html.heex:43
|
#: lib/memex_web/components/layouts/live.html.heex:43
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Reconnecting..."
|
msgid "Reconnecting..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/memex_web/controllers/user_reset_password_controller.ex:36
|
|
||||||
#, elixir-autogen, elixir-format
|
|
||||||
msgid "Reset your password"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/memex_web/live/context_live/show.html.heex:15
|
#: lib/memex_web/live/context_live/show.html.heex:15
|
||||||
#: lib/memex_web/live/note_live/show.html.heex:15
|
#: lib/memex_web/live/note_live/show.html.heex:15
|
||||||
#: lib/memex_web/live/pipeline_live/show.html.heex:23
|
#: lib/memex_web/live/pipeline_live/show.html.heex:22
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Visibility: %{visibility}"
|
msgid "Visibility: %{visibility}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -53,8 +43,8 @@ msgstr ""
|
|||||||
msgid "confirm new password"
|
msgid "confirm new password"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/memex_web/live/note_live/form_component.html.heex:23
|
||||||
#: lib/memex_web/live/note_live/form_component.html.heex:24
|
#: lib/memex_web/live/note_live/form_component.html.heex:24
|
||||||
#: lib/memex_web/live/note_live/form_component.html.heex:25
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "content"
|
msgid "content"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -251,20 +241,20 @@ msgstr ""
|
|||||||
msgid "report bugs or request features"
|
msgid "report bugs or request features"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/memex_web/live/context_live/form_component.html.heex:45
|
#: lib/memex_web/live/context_live/form_component.html.heex:44
|
||||||
#: lib/memex_web/live/note_live/form_component.html.heex:45
|
#: lib/memex_web/live/note_live/form_component.html.heex:44
|
||||||
#: lib/memex_web/live/pipeline_live/form_component.html.heex:45
|
#: lib/memex_web/live/pipeline_live/form_component.html.heex:44
|
||||||
#: lib/memex_web/live/step_live/form_component.html.heex:31
|
#: lib/memex_web/live/step_live/form_component.html.heex:30
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "saving..."
|
msgid "saving..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/memex_web/live/context_live/form_component.html.heex:39
|
||||||
#: lib/memex_web/live/context_live/form_component.html.heex:40
|
#: lib/memex_web/live/context_live/form_component.html.heex:40
|
||||||
#: lib/memex_web/live/context_live/form_component.html.heex:41
|
#: lib/memex_web/live/note_live/form_component.html.heex:39
|
||||||
#: lib/memex_web/live/note_live/form_component.html.heex:40
|
#: lib/memex_web/live/note_live/form_component.html.heex:40
|
||||||
#: lib/memex_web/live/note_live/form_component.html.heex:41
|
#: lib/memex_web/live/pipeline_live/form_component.html.heex:39
|
||||||
#: lib/memex_web/live/pipeline_live/form_component.html.heex:40
|
#: lib/memex_web/live/pipeline_live/form_component.html.heex:40
|
||||||
#: lib/memex_web/live/pipeline_live/form_component.html.heex:41
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "select privacy"
|
msgid "select privacy"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -280,12 +270,12 @@ msgstr ""
|
|||||||
msgid "settings"
|
msgid "settings"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/memex_web/live/context_live/form_component.html.heex:31
|
||||||
#: lib/memex_web/live/context_live/form_component.html.heex:32
|
#: lib/memex_web/live/context_live/form_component.html.heex:32
|
||||||
#: lib/memex_web/live/context_live/form_component.html.heex:33
|
#: lib/memex_web/live/note_live/form_component.html.heex:31
|
||||||
#: lib/memex_web/live/note_live/form_component.html.heex:32
|
#: lib/memex_web/live/note_live/form_component.html.heex:32
|
||||||
#: lib/memex_web/live/note_live/form_component.html.heex:33
|
#: lib/memex_web/live/pipeline_live/form_component.html.heex:31
|
||||||
#: lib/memex_web/live/pipeline_live/form_component.html.heex:32
|
#: lib/memex_web/live/pipeline_live/form_component.html.heex:32
|
||||||
#: lib/memex_web/live/pipeline_live/form_component.html.heex:33
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "tag1,tag2"
|
msgid "tag1,tag2"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -342,8 +332,8 @@ msgid "no contexts found"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/memex_web/components/pipelines_table_component.ex:48
|
#: lib/memex_web/components/pipelines_table_component.ex:48
|
||||||
|
#: lib/memex_web/live/pipeline_live/form_component.html.heex:23
|
||||||
#: lib/memex_web/live/pipeline_live/form_component.html.heex:24
|
#: lib/memex_web/live/pipeline_live/form_component.html.heex:24
|
||||||
#: lib/memex_web/live/pipeline_live/form_component.html.heex:25
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "description"
|
msgid "description"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -417,8 +407,8 @@ msgstr ""
|
|||||||
msgid "home"
|
msgid "home"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/memex_web/live/context_live/form_component.html.heex:23
|
||||||
#: lib/memex_web/live/context_live/form_component.html.heex:24
|
#: lib/memex_web/live/context_live/form_component.html.heex:24
|
||||||
#: lib/memex_web/live/context_live/form_component.html.heex:25
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "use [[note-slug]] to link to a note"
|
msgid "use [[note-slug]] to link to a note"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -444,7 +434,7 @@ msgstr ""
|
|||||||
msgid "what is this?"
|
msgid "what is this?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/memex_web/live/pipeline_live/show.html.heex:60
|
#: lib/memex_web/live/pipeline_live/show.html.heex:59
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "%{position}. %{title}"
|
msgid "%{position}. %{title}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -469,12 +459,12 @@ msgstr ""
|
|||||||
msgid "add step to %{slug}"
|
msgid "add step to %{slug}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/memex_web/live/pipeline_live/show.html.heex:54
|
#: lib/memex_web/live/pipeline_live/show.html.heex:53
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "no steps"
|
msgid "no steps"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/memex_web/live/pipeline_live/show.html.heex:49
|
#: lib/memex_web/live/pipeline_live/show.html.heex:48
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "steps:"
|
msgid "steps:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -485,8 +475,8 @@ msgstr ""
|
|||||||
msgid "title"
|
msgid "title"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/memex_web/live/step_live/form_component.html.heex:23
|
||||||
#: lib/memex_web/live/step_live/form_component.html.heex:24
|
#: lib/memex_web/live/step_live/form_component.html.heex:24
|
||||||
#: lib/memex_web/live/step_live/form_component.html.heex:25
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "use [[context-slug]] to link to a context"
|
msgid "use [[context-slug]] to link to a context"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -709,3 +699,13 @@ msgstr ""
|
|||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "log out"
|
msgid "log out"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/memex_web/controllers/user_confirmation_controller.ex:8
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "confirm your account"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/memex_web/controllers/user_reset_password_controller.ex:35
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "reset your password"
|
||||||
|
msgstr ""
|
||||||
|
@ -17,12 +17,6 @@ msgstr ""
|
|||||||
msgid "Resend confirmation instructions"
|
msgid "Resend confirmation instructions"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/memex_web/controllers/user_reset_password_html/edit.html.heex:3
|
|
||||||
#: lib/memex_web/controllers/user_reset_password_html/edit.html.heex:29
|
|
||||||
#, elixir-autogen, elixir-format
|
|
||||||
msgid "Reset password"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/memex_web/controllers/user_settings_html/edit.html.heex:15
|
#: lib/memex_web/controllers/user_settings_html/edit.html.heex:15
|
||||||
#: lib/memex_web/controllers/user_settings_html/edit.html.heex:43
|
#: lib/memex_web/controllers/user_settings_html/edit.html.heex:43
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
@ -51,8 +45,8 @@ msgstr ""
|
|||||||
#: lib/memex_web/live/note_live/index.html.heex:50
|
#: lib/memex_web/live/note_live/index.html.heex:50
|
||||||
#: lib/memex_web/live/note_live/show.html.heex:34
|
#: lib/memex_web/live/note_live/show.html.heex:34
|
||||||
#: lib/memex_web/live/pipeline_live/index.html.heex:52
|
#: lib/memex_web/live/pipeline_live/index.html.heex:52
|
||||||
#: lib/memex_web/live/pipeline_live/show.html.heex:42
|
#: lib/memex_web/live/pipeline_live/show.html.heex:41
|
||||||
#: lib/memex_web/live/pipeline_live/show.html.heex:113
|
#: lib/memex_web/live/pipeline_live/show.html.heex:112
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "delete"
|
msgid "delete"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -67,8 +61,8 @@ msgstr ""
|
|||||||
#: lib/memex_web/live/note_live/index.html.heex:40
|
#: lib/memex_web/live/note_live/index.html.heex:40
|
||||||
#: lib/memex_web/live/note_live/show.html.heex:24
|
#: lib/memex_web/live/note_live/show.html.heex:24
|
||||||
#: lib/memex_web/live/pipeline_live/index.html.heex:40
|
#: lib/memex_web/live/pipeline_live/index.html.heex:40
|
||||||
#: lib/memex_web/live/pipeline_live/show.html.heex:32
|
#: lib/memex_web/live/pipeline_live/show.html.heex:31
|
||||||
#: lib/memex_web/live/pipeline_live/show.html.heex:102
|
#: lib/memex_web/live/pipeline_live/show.html.heex:101
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "edit"
|
msgid "edit"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -115,16 +109,16 @@ msgstr ""
|
|||||||
msgid "register"
|
msgid "register"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/memex_web/live/context_live/form_component.html.heex:44
|
#: lib/memex_web/live/context_live/form_component.html.heex:43
|
||||||
#: lib/memex_web/live/invite_live/form_component.html.heex:32
|
#: lib/memex_web/live/invite_live/form_component.html.heex:32
|
||||||
#: lib/memex_web/live/note_live/form_component.html.heex:44
|
#: lib/memex_web/live/note_live/form_component.html.heex:43
|
||||||
#: lib/memex_web/live/pipeline_live/form_component.html.heex:44
|
#: lib/memex_web/live/pipeline_live/form_component.html.heex:43
|
||||||
#: lib/memex_web/live/step_live/form_component.html.heex:30
|
#: lib/memex_web/live/step_live/form_component.html.heex:29
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "save"
|
msgid "save"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/memex_web/live/pipeline_live/show.html.heex:128
|
#: lib/memex_web/live/pipeline_live/show.html.heex:127
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "add step"
|
msgid "add step"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -169,12 +163,12 @@ msgid "delete %{note_slug}"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/memex_web/live/pipeline_live/index.html.heex:49
|
#: lib/memex_web/live/pipeline_live/index.html.heex:49
|
||||||
#: lib/memex_web/live/pipeline_live/show.html.heex:40
|
#: lib/memex_web/live/pipeline_live/show.html.heex:39
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "delete %{pipeline_slug}"
|
msgid "delete %{pipeline_slug}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/memex_web/live/pipeline_live/show.html.heex:111
|
#: lib/memex_web/live/pipeline_live/show.html.heex:110
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "delete %{step_title}"
|
msgid "delete %{step_title}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -199,7 +193,7 @@ msgstr ""
|
|||||||
msgid "edit %{pipeline_slug}"
|
msgid "edit %{pipeline_slug}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/memex_web/live/pipeline_live/show.html.heex:100
|
#: lib/memex_web/live/pipeline_live/show.html.heex:99
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "edit %{step_title}"
|
msgid "edit %{step_title}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -209,12 +203,18 @@ msgstr ""
|
|||||||
msgid "edit invite for %{invite_name}"
|
msgid "edit invite for %{invite_name}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/memex_web/live/pipeline_live/show.html.heex:90
|
#: lib/memex_web/live/pipeline_live/show.html.heex:89
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "move %{step_title} down"
|
msgid "move %{step_title} down"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/memex_web/live/pipeline_live/show.html.heex:74
|
#: lib/memex_web/live/pipeline_live/show.html.heex:73
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "move %{step_title} up"
|
msgid "move %{step_title} up"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/memex_web/controllers/user_reset_password_html/edit.html.heex:3
|
||||||
|
#: lib/memex_web/controllers/user_reset_password_html/edit.html.heex:29
|
||||||
|
#, elixir-autogen, elixir-format, fuzzy
|
||||||
|
msgid "reset password"
|
||||||
|
msgstr ""
|
||||||
|
@ -11,24 +11,14 @@ msgstr ""
|
|||||||
"Language: en\n"
|
"Language: en\n"
|
||||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
|
|
||||||
#: lib/memex_web/controllers/user_confirmation_controller.ex:8
|
|
||||||
#, elixir-autogen, elixir-format
|
|
||||||
msgid "Confirm your account"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/memex_web/components/layouts/live.html.heex:43
|
#: lib/memex_web/components/layouts/live.html.heex:43
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Reconnecting..."
|
msgid "Reconnecting..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/memex_web/controllers/user_reset_password_controller.ex:36
|
|
||||||
#, elixir-autogen, elixir-format
|
|
||||||
msgid "Reset your password"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/memex_web/live/context_live/show.html.heex:15
|
#: lib/memex_web/live/context_live/show.html.heex:15
|
||||||
#: lib/memex_web/live/note_live/show.html.heex:15
|
#: lib/memex_web/live/note_live/show.html.heex:15
|
||||||
#: lib/memex_web/live/pipeline_live/show.html.heex:23
|
#: lib/memex_web/live/pipeline_live/show.html.heex:22
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Visibility: %{visibility}"
|
msgid "Visibility: %{visibility}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -54,8 +44,8 @@ msgstr ""
|
|||||||
msgid "confirm new password"
|
msgid "confirm new password"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/memex_web/live/note_live/form_component.html.heex:23
|
||||||
#: lib/memex_web/live/note_live/form_component.html.heex:24
|
#: lib/memex_web/live/note_live/form_component.html.heex:24
|
||||||
#: lib/memex_web/live/note_live/form_component.html.heex:25
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "content"
|
msgid "content"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -252,20 +242,20 @@ msgstr ""
|
|||||||
msgid "report bugs or request features"
|
msgid "report bugs or request features"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/memex_web/live/context_live/form_component.html.heex:45
|
#: lib/memex_web/live/context_live/form_component.html.heex:44
|
||||||
#: lib/memex_web/live/note_live/form_component.html.heex:45
|
#: lib/memex_web/live/note_live/form_component.html.heex:44
|
||||||
#: lib/memex_web/live/pipeline_live/form_component.html.heex:45
|
#: lib/memex_web/live/pipeline_live/form_component.html.heex:44
|
||||||
#: lib/memex_web/live/step_live/form_component.html.heex:31
|
#: lib/memex_web/live/step_live/form_component.html.heex:30
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "saving..."
|
msgid "saving..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/memex_web/live/context_live/form_component.html.heex:39
|
||||||
#: lib/memex_web/live/context_live/form_component.html.heex:40
|
#: lib/memex_web/live/context_live/form_component.html.heex:40
|
||||||
#: lib/memex_web/live/context_live/form_component.html.heex:41
|
#: lib/memex_web/live/note_live/form_component.html.heex:39
|
||||||
#: lib/memex_web/live/note_live/form_component.html.heex:40
|
#: lib/memex_web/live/note_live/form_component.html.heex:40
|
||||||
#: lib/memex_web/live/note_live/form_component.html.heex:41
|
#: lib/memex_web/live/pipeline_live/form_component.html.heex:39
|
||||||
#: lib/memex_web/live/pipeline_live/form_component.html.heex:40
|
#: lib/memex_web/live/pipeline_live/form_component.html.heex:40
|
||||||
#: lib/memex_web/live/pipeline_live/form_component.html.heex:41
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "select privacy"
|
msgid "select privacy"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -281,12 +271,12 @@ msgstr ""
|
|||||||
msgid "settings"
|
msgid "settings"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/memex_web/live/context_live/form_component.html.heex:31
|
||||||
#: lib/memex_web/live/context_live/form_component.html.heex:32
|
#: lib/memex_web/live/context_live/form_component.html.heex:32
|
||||||
#: lib/memex_web/live/context_live/form_component.html.heex:33
|
#: lib/memex_web/live/note_live/form_component.html.heex:31
|
||||||
#: lib/memex_web/live/note_live/form_component.html.heex:32
|
#: lib/memex_web/live/note_live/form_component.html.heex:32
|
||||||
#: lib/memex_web/live/note_live/form_component.html.heex:33
|
#: lib/memex_web/live/pipeline_live/form_component.html.heex:31
|
||||||
#: lib/memex_web/live/pipeline_live/form_component.html.heex:32
|
#: lib/memex_web/live/pipeline_live/form_component.html.heex:32
|
||||||
#: lib/memex_web/live/pipeline_live/form_component.html.heex:33
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "tag1,tag2"
|
msgid "tag1,tag2"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -343,8 +333,8 @@ msgid "no contexts found"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/memex_web/components/pipelines_table_component.ex:48
|
#: lib/memex_web/components/pipelines_table_component.ex:48
|
||||||
|
#: lib/memex_web/live/pipeline_live/form_component.html.heex:23
|
||||||
#: lib/memex_web/live/pipeline_live/form_component.html.heex:24
|
#: lib/memex_web/live/pipeline_live/form_component.html.heex:24
|
||||||
#: lib/memex_web/live/pipeline_live/form_component.html.heex:25
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "description"
|
msgid "description"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -418,8 +408,8 @@ msgstr ""
|
|||||||
msgid "home"
|
msgid "home"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/memex_web/live/context_live/form_component.html.heex:23
|
||||||
#: lib/memex_web/live/context_live/form_component.html.heex:24
|
#: lib/memex_web/live/context_live/form_component.html.heex:24
|
||||||
#: lib/memex_web/live/context_live/form_component.html.heex:25
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "use [[note-slug]] to link to a note"
|
msgid "use [[note-slug]] to link to a note"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -445,7 +435,7 @@ msgstr ""
|
|||||||
msgid "what is this?"
|
msgid "what is this?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/memex_web/live/pipeline_live/show.html.heex:60
|
#: lib/memex_web/live/pipeline_live/show.html.heex:59
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "%{position}. %{title}"
|
msgid "%{position}. %{title}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -470,12 +460,12 @@ msgstr ""
|
|||||||
msgid "add step to %{slug}"
|
msgid "add step to %{slug}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/memex_web/live/pipeline_live/show.html.heex:54
|
#: lib/memex_web/live/pipeline_live/show.html.heex:53
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "no steps"
|
msgid "no steps"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/memex_web/live/pipeline_live/show.html.heex:49
|
#: lib/memex_web/live/pipeline_live/show.html.heex:48
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "steps:"
|
msgid "steps:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -486,8 +476,8 @@ msgstr ""
|
|||||||
msgid "title"
|
msgid "title"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/memex_web/live/step_live/form_component.html.heex:23
|
||||||
#: lib/memex_web/live/step_live/form_component.html.heex:24
|
#: lib/memex_web/live/step_live/form_component.html.heex:24
|
||||||
#: lib/memex_web/live/step_live/form_component.html.heex:25
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "use [[context-slug]] to link to a context"
|
msgid "use [[context-slug]] to link to a context"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -710,3 +700,13 @@ msgstr ""
|
|||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "log out"
|
msgid "log out"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/memex_web/controllers/user_confirmation_controller.ex:8
|
||||||
|
#, elixir-autogen, elixir-format, fuzzy
|
||||||
|
msgid "confirm your account"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/memex_web/controllers/user_reset_password_controller.ex:35
|
||||||
|
#, elixir-autogen, elixir-format, fuzzy
|
||||||
|
msgid "reset your password"
|
||||||
|
msgstr ""
|
||||||
|
@ -16,33 +16,6 @@ msgstr ""
|
|||||||
msgid "Error"
|
msgid "Error"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/memex_web/controllers/user_session_controller.ex:17
|
|
||||||
#, elixir-autogen, elixir-format
|
|
||||||
msgid "Invalid email or password"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/memex_web/controllers/user_reset_password_controller.ex:63
|
|
||||||
#, elixir-autogen, elixir-format
|
|
||||||
msgid "Reset password link is invalid or it has expired."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/memex_web/controllers/user_registration_controller.ex:21
|
|
||||||
#: lib/memex_web/controllers/user_registration_controller.ex:50
|
|
||||||
#, elixir-autogen, elixir-format
|
|
||||||
msgid "Sorry, public registration is disabled"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/memex_web/controllers/user_registration_controller.ex:11
|
|
||||||
#: lib/memex_web/controllers/user_registration_controller.ex:40
|
|
||||||
#, elixir-autogen, elixir-format
|
|
||||||
msgid "Sorry, this invite was not found or expired"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/memex_web/controllers/user_confirmation_controller.ex:54
|
|
||||||
#, elixir-autogen, elixir-format
|
|
||||||
msgid "User confirmation link is invalid or it has expired."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/memex_web/controllers/user_auth.ex:266
|
#: lib/memex_web/controllers/user_auth.ex:266
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "You are not authorized to view this page."
|
msgid "You are not authorized to view this page."
|
||||||
@ -121,6 +94,8 @@ msgstr ""
|
|||||||
msgid "oops, something went wrong! please check the errors below."
|
msgid "oops, something went wrong! please check the errors below."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/memex_web/controllers/user_registration_controller.ex:11
|
||||||
|
#: lib/memex_web/controllers/user_registration_controller.ex:40
|
||||||
#: lib/memex_web/controllers/user_registration_controller.ex:69
|
#: lib/memex_web/controllers/user_registration_controller.ex:69
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "sorry, this invite was not found or expired"
|
msgid "sorry, this invite was not found or expired"
|
||||||
@ -151,3 +126,24 @@ msgstr ""
|
|||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "You must log in to access this page."
|
msgid "You must log in to access this page."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/memex_web/controllers/user_session_controller.ex:17
|
||||||
|
#, elixir-autogen, elixir-format, fuzzy
|
||||||
|
msgid "invalid email or password"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/memex_web/controllers/user_reset_password_controller.ex:62
|
||||||
|
#, elixir-autogen, elixir-format, fuzzy
|
||||||
|
msgid "reset password link is invalid or it has expired."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/memex_web/controllers/user_registration_controller.ex:21
|
||||||
|
#: lib/memex_web/controllers/user_registration_controller.ex:50
|
||||||
|
#, elixir-autogen, elixir-format, fuzzy
|
||||||
|
msgid "sorry, public registration is disabled"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/memex_web/controllers/user_confirmation_controller.ex:53
|
||||||
|
#, elixir-autogen, elixir-format, fuzzy
|
||||||
|
msgid "user confirmation link is invalid or it has expired."
|
||||||
|
msgstr ""
|
||||||
|
@ -11,7 +11,7 @@ msgstr ""
|
|||||||
"Language: en\n"
|
"Language: en\n"
|
||||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
|
|
||||||
#: lib/memex_web/controllers/user_confirmation_controller.ex:38
|
#: lib/memex_web/controllers/user_confirmation_controller.ex:37
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "%{email} confirmed successfully."
|
msgid "%{email} confirmed successfully."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -41,21 +41,6 @@ msgstr ""
|
|||||||
msgid "%{user_email} deleted succesfully"
|
msgid "%{user_email} deleted succesfully"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/memex_web/controllers/user_confirmation_controller.ex:23
|
|
||||||
#, elixir-autogen, elixir-format
|
|
||||||
msgid "If your email is in our system and it has not been confirmed yet, you will receive an email with instructions shortly."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/memex_web/controllers/user_reset_password_controller.ex:24
|
|
||||||
#, elixir-autogen, elixir-format
|
|
||||||
msgid "If your email is in our system, you will receive instructions to reset your password shortly."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/memex_web/controllers/user_reset_password_controller.ex:46
|
|
||||||
#, elixir-autogen, elixir-format
|
|
||||||
msgid "Password reset successfully."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/memex_web/controllers/user_settings_html/edit.html.heex:130
|
#: lib/memex_web/controllers/user_settings_html/edit.html.heex:130
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "are you sure you want to change your language?"
|
msgid "are you sure you want to change your language?"
|
||||||
@ -86,8 +71,8 @@ msgstr ""
|
|||||||
#: lib/memex_web/live/note_live/index.html.heex:47
|
#: lib/memex_web/live/note_live/index.html.heex:47
|
||||||
#: lib/memex_web/live/note_live/show.html.heex:31
|
#: lib/memex_web/live/note_live/show.html.heex:31
|
||||||
#: lib/memex_web/live/pipeline_live/index.html.heex:47
|
#: lib/memex_web/live/pipeline_live/index.html.heex:47
|
||||||
#: lib/memex_web/live/pipeline_live/show.html.heex:39
|
#: lib/memex_web/live/pipeline_live/show.html.heex:38
|
||||||
#: lib/memex_web/live/pipeline_live/show.html.heex:110
|
#: lib/memex_web/live/pipeline_live/show.html.heex:109
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "are you sure?"
|
msgid "are you sure?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -157,3 +142,18 @@ msgstr ""
|
|||||||
#, elixir-autogen, elixir-format, fuzzy
|
#, elixir-autogen, elixir-format, fuzzy
|
||||||
msgid "saving..."
|
msgid "saving..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/memex_web/controllers/user_confirmation_controller.ex:23
|
||||||
|
#, elixir-autogen, elixir-format, fuzzy
|
||||||
|
msgid "if your email is in our system and it has not been confirmed yet, you will receive an email with instructions shortly."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/memex_web/controllers/user_reset_password_controller.ex:24
|
||||||
|
#, elixir-autogen, elixir-format, fuzzy
|
||||||
|
msgid "if your email is in our system, you will receive instructions to reset your password shortly."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/memex_web/controllers/user_reset_password_controller.ex:45
|
||||||
|
#, elixir-autogen, elixir-format, fuzzy
|
||||||
|
msgid "password reset successfully."
|
||||||
|
msgstr ""
|
||||||
|
@ -15,33 +15,6 @@ msgstr ""
|
|||||||
msgid "Error"
|
msgid "Error"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/memex_web/controllers/user_session_controller.ex:17
|
|
||||||
#, elixir-autogen, elixir-format
|
|
||||||
msgid "Invalid email or password"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/memex_web/controllers/user_reset_password_controller.ex:63
|
|
||||||
#, elixir-autogen, elixir-format
|
|
||||||
msgid "Reset password link is invalid or it has expired."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/memex_web/controllers/user_registration_controller.ex:21
|
|
||||||
#: lib/memex_web/controllers/user_registration_controller.ex:50
|
|
||||||
#, elixir-autogen, elixir-format
|
|
||||||
msgid "Sorry, public registration is disabled"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/memex_web/controllers/user_registration_controller.ex:11
|
|
||||||
#: lib/memex_web/controllers/user_registration_controller.ex:40
|
|
||||||
#, elixir-autogen, elixir-format
|
|
||||||
msgid "Sorry, this invite was not found or expired"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/memex_web/controllers/user_confirmation_controller.ex:54
|
|
||||||
#, elixir-autogen, elixir-format
|
|
||||||
msgid "User confirmation link is invalid or it has expired."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/memex_web/controllers/user_auth.ex:266
|
#: lib/memex_web/controllers/user_auth.ex:266
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "You are not authorized to view this page."
|
msgid "You are not authorized to view this page."
|
||||||
@ -120,6 +93,8 @@ msgstr ""
|
|||||||
msgid "oops, something went wrong! please check the errors below."
|
msgid "oops, something went wrong! please check the errors below."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/memex_web/controllers/user_registration_controller.ex:11
|
||||||
|
#: lib/memex_web/controllers/user_registration_controller.ex:40
|
||||||
#: lib/memex_web/controllers/user_registration_controller.ex:69
|
#: lib/memex_web/controllers/user_registration_controller.ex:69
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "sorry, this invite was not found or expired"
|
msgid "sorry, this invite was not found or expired"
|
||||||
@ -150,3 +125,24 @@ msgstr ""
|
|||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "You must log in to access this page."
|
msgid "You must log in to access this page."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/memex_web/controllers/user_session_controller.ex:17
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "invalid email or password"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/memex_web/controllers/user_reset_password_controller.ex:62
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "reset password link is invalid or it has expired."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/memex_web/controllers/user_registration_controller.ex:21
|
||||||
|
#: lib/memex_web/controllers/user_registration_controller.ex:50
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "sorry, public registration is disabled"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/memex_web/controllers/user_confirmation_controller.ex:53
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "user confirmation link is invalid or it has expired."
|
||||||
|
msgstr ""
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/memex_web/controllers/user_confirmation_controller.ex:38
|
#: lib/memex_web/controllers/user_confirmation_controller.ex:37
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "%{email} confirmed successfully."
|
msgid "%{email} confirmed successfully."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -40,21 +40,6 @@ msgstr ""
|
|||||||
msgid "%{user_email} deleted succesfully"
|
msgid "%{user_email} deleted succesfully"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/memex_web/controllers/user_confirmation_controller.ex:23
|
|
||||||
#, elixir-autogen, elixir-format
|
|
||||||
msgid "If your email is in our system and it has not been confirmed yet, you will receive an email with instructions shortly."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/memex_web/controllers/user_reset_password_controller.ex:24
|
|
||||||
#, elixir-autogen, elixir-format
|
|
||||||
msgid "If your email is in our system, you will receive instructions to reset your password shortly."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/memex_web/controllers/user_reset_password_controller.ex:46
|
|
||||||
#, elixir-autogen, elixir-format
|
|
||||||
msgid "Password reset successfully."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/memex_web/controllers/user_settings_html/edit.html.heex:130
|
#: lib/memex_web/controllers/user_settings_html/edit.html.heex:130
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "are you sure you want to change your language?"
|
msgid "are you sure you want to change your language?"
|
||||||
@ -85,8 +70,8 @@ msgstr ""
|
|||||||
#: lib/memex_web/live/note_live/index.html.heex:47
|
#: lib/memex_web/live/note_live/index.html.heex:47
|
||||||
#: lib/memex_web/live/note_live/show.html.heex:31
|
#: lib/memex_web/live/note_live/show.html.heex:31
|
||||||
#: lib/memex_web/live/pipeline_live/index.html.heex:47
|
#: lib/memex_web/live/pipeline_live/index.html.heex:47
|
||||||
#: lib/memex_web/live/pipeline_live/show.html.heex:39
|
#: lib/memex_web/live/pipeline_live/show.html.heex:38
|
||||||
#: lib/memex_web/live/pipeline_live/show.html.heex:110
|
#: lib/memex_web/live/pipeline_live/show.html.heex:109
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "are you sure?"
|
msgid "are you sure?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -156,3 +141,18 @@ msgstr ""
|
|||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "saving..."
|
msgid "saving..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/memex_web/controllers/user_confirmation_controller.ex:23
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "if your email is in our system and it has not been confirmed yet, you will receive an email with instructions shortly."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/memex_web/controllers/user_reset_password_controller.ex:24
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "if your email is in our system, you will receive instructions to reset your password shortly."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/memex_web/controllers/user_reset_password_controller.ex:45
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "password reset successfully."
|
||||||
|
msgstr ""
|
||||||
|
@ -3,7 +3,7 @@ defmodule Memex.InvitesTest do
|
|||||||
This module tests the Memex.Accounts.Invites context
|
This module tests the Memex.Accounts.Invites context
|
||||||
"""
|
"""
|
||||||
|
|
||||||
use Memex.DataCase
|
use Memex.DataCase, async: true
|
||||||
alias Ecto.Changeset
|
alias Ecto.Changeset
|
||||||
alias Memex.Accounts
|
alias Memex.Accounts
|
||||||
alias Memex.Accounts.{Invite, Invites}
|
alias Memex.Accounts.{Invite, Invites}
|
||||||
|
@ -3,7 +3,7 @@ defmodule Memex.AccountsTest do
|
|||||||
This tests the accounts module
|
This tests the accounts module
|
||||||
"""
|
"""
|
||||||
|
|
||||||
use Memex.DataCase
|
use Memex.DataCase, async: true
|
||||||
alias Ecto.Changeset
|
alias Ecto.Changeset
|
||||||
alias Memex.Accounts
|
alias Memex.Accounts
|
||||||
alias Memex.Accounts.{Invites, User, UserToken}
|
alias Memex.Accounts.{Invites, User, UserToken}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
defmodule Memex.ContextsTest do
|
defmodule Memex.ContextsTest do
|
||||||
use Memex.DataCase
|
use Memex.DataCase, async: true
|
||||||
import Memex.Fixtures
|
import Memex.Fixtures
|
||||||
alias Memex.{Contexts, Contexts.Context}
|
alias Memex.{Contexts, Contexts.Context}
|
||||||
@moduletag :contexts_test
|
@moduletag :contexts_test
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
defmodule Memex.NotesTest do
|
defmodule Memex.NotesTest do
|
||||||
use Memex.DataCase
|
use Memex.DataCase, async: true
|
||||||
import Memex.Fixtures
|
import Memex.Fixtures
|
||||||
alias Memex.{Notes, Notes.Note}
|
alias Memex.{Notes, Notes.Note}
|
||||||
@moduletag :notes_test
|
@moduletag :notes_test
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
defmodule Memex.PipelinesTest do
|
defmodule Memex.PipelinesTest do
|
||||||
use Memex.DataCase
|
use Memex.DataCase, async: true
|
||||||
import Memex.Fixtures
|
import Memex.Fixtures
|
||||||
alias Memex.{Pipelines, Pipelines.Pipeline}
|
alias Memex.{Pipelines, Pipelines.Pipeline}
|
||||||
@moduletag :pipelines_test
|
@moduletag :pipelines_test
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
defmodule Memex.StepsTest do
|
defmodule Memex.StepsTest do
|
||||||
use Memex.DataCase
|
use Memex.DataCase, async: true
|
||||||
import Memex.Fixtures
|
import Memex.Fixtures
|
||||||
alias Memex.Pipelines.{Steps, Steps.Step}
|
alias Memex.Pipelines.{Steps, Steps.Step}
|
||||||
@moduletag :steps_test
|
@moduletag :steps_test
|
||||||
|
@ -3,7 +3,7 @@ defmodule MemexWeb.ExportControllerTest do
|
|||||||
Tests the export function
|
Tests the export function
|
||||||
"""
|
"""
|
||||||
|
|
||||||
use MemexWeb.ConnCase
|
use MemexWeb.ConnCase, async: true
|
||||||
import Memex.Fixtures
|
import Memex.Fixtures
|
||||||
|
|
||||||
@moduletag :export_controller_test
|
@moduletag :export_controller_test
|
||||||
|
@ -24,7 +24,7 @@ defmodule MemexWeb.UserAuthTest do
|
|||||||
conn = UserAuth.log_in_user(conn, current_user)
|
conn = UserAuth.log_in_user(conn, current_user)
|
||||||
assert token = get_session(conn, :user_token)
|
assert token = get_session(conn, :user_token)
|
||||||
assert get_session(conn, :live_socket_id) == "users_sessions:#{Base.url_encode64(token)}"
|
assert get_session(conn, :live_socket_id) == "users_sessions:#{Base.url_encode64(token)}"
|
||||||
assert redirected_to(conn) == "/"
|
assert redirected_to(conn) == ~p"/"
|
||||||
assert Accounts.get_user_by_session_token(token)
|
assert Accounts.get_user_by_session_token(token)
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -64,7 +64,7 @@ defmodule MemexWeb.UserAuthTest do
|
|||||||
refute get_session(conn, :user_token)
|
refute get_session(conn, :user_token)
|
||||||
refute conn.cookies[@remember_me_cookie]
|
refute conn.cookies[@remember_me_cookie]
|
||||||
assert %{max_age: 0} = conn.resp_cookies[@remember_me_cookie]
|
assert %{max_age: 0} = conn.resp_cookies[@remember_me_cookie]
|
||||||
assert redirected_to(conn) == "/"
|
assert redirected_to(conn) == ~p"/"
|
||||||
refute Accounts.get_user_by_session_token(user_token)
|
refute Accounts.get_user_by_session_token(user_token)
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -86,7 +86,7 @@ defmodule MemexWeb.UserAuthTest do
|
|||||||
conn = conn |> fetch_cookies() |> UserAuth.log_out_user()
|
conn = conn |> fetch_cookies() |> UserAuth.log_out_user()
|
||||||
refute get_session(conn, :user_token)
|
refute get_session(conn, :user_token)
|
||||||
assert %{max_age: 0} = conn.resp_cookies[@remember_me_cookie]
|
assert %{max_age: 0} = conn.resp_cookies[@remember_me_cookie]
|
||||||
assert redirected_to(conn) == "/"
|
assert redirected_to(conn) == ~p"/"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -129,7 +129,7 @@ defmodule MemexWeb.UserAuthTest do
|
|||||||
|> UserAuth.redirect_if_user_is_authenticated([])
|
|> UserAuth.redirect_if_user_is_authenticated([])
|
||||||
|
|
||||||
assert conn.halted
|
assert conn.halted
|
||||||
assert redirected_to(conn) == "/"
|
assert redirected_to(conn) == ~p"/"
|
||||||
end
|
end
|
||||||
|
|
||||||
test "does not redirect if user is not authenticated", %{conn: conn} do
|
test "does not redirect if user is not authenticated", %{conn: conn} do
|
||||||
|
@ -23,15 +23,11 @@ defmodule MemexWeb.UserConfirmationControllerTest do
|
|||||||
describe "POST /users/confirm" do
|
describe "POST /users/confirm" do
|
||||||
@tag :capture_log
|
@tag :capture_log
|
||||||
test "sends a new confirmation token", %{conn: conn, user: user} do
|
test "sends a new confirmation token", %{conn: conn, user: user} do
|
||||||
conn =
|
conn = post(conn, ~p"/users/confirm", %{user: %{email: user.email}})
|
||||||
post(conn, ~p"/users/confirm", %{
|
assert redirected_to(conn) == ~p"/"
|
||||||
user: %{email: user.email}
|
|
||||||
})
|
|
||||||
|
|
||||||
assert redirected_to(conn) == "/"
|
assert conn.assigns.flash["info"] =~
|
||||||
|
"if your email is in our system and it has not been confirmed yet, you will receive an email with instructions shortly."
|
||||||
conn.assigns.flash["info"] =~
|
|
||||||
"If your email is in our system and it has not been confirmed yet, you will receive an email with instructions shortly."
|
|
||||||
|
|
||||||
assert Repo.get_by!(Accounts.UserToken, user_id: user.id).context == "confirm"
|
assert Repo.get_by!(Accounts.UserToken, user_id: user.id).context == "confirm"
|
||||||
end
|
end
|
||||||
@ -39,27 +35,19 @@ defmodule MemexWeb.UserConfirmationControllerTest do
|
|||||||
test "does not send confirmation token if User is confirmed", %{conn: conn, user: user} do
|
test "does not send confirmation token if User is confirmed", %{conn: conn, user: user} do
|
||||||
Repo.update!(Accounts.User.confirm_changeset(user))
|
Repo.update!(Accounts.User.confirm_changeset(user))
|
||||||
|
|
||||||
conn =
|
conn = post(conn, ~p"/users/confirm", %{user: %{email: user.email}})
|
||||||
post(conn, ~p"/users/confirm", %{
|
assert redirected_to(conn) == ~p"/"
|
||||||
user: %{email: user.email}
|
|
||||||
})
|
|
||||||
|
|
||||||
assert redirected_to(conn) == "/"
|
assert conn.assigns.flash["info"] =~
|
||||||
|
"if your email is in our system and it has not been confirmed yet, you will receive an email with instructions shortly."
|
||||||
conn.assigns.flash["info"] =~
|
|
||||||
"If your email is in our system and it has not been confirmed yet, you will receive an email with instructions shortly."
|
|
||||||
end
|
end
|
||||||
|
|
||||||
test "does not send confirmation token if email is invalid", %{conn: conn} do
|
test "does not send confirmation token if email is invalid", %{conn: conn} do
|
||||||
conn =
|
conn = post(conn, ~p"/users/confirm", %{user: %{email: "unknown@example.com"}})
|
||||||
post(conn, ~p"/users/confirm", %{
|
assert redirected_to(conn) == ~p"/"
|
||||||
user: %{email: "unknown@example.com"}
|
|
||||||
})
|
|
||||||
|
|
||||||
assert redirected_to(conn) == "/"
|
assert conn.assigns.flash["info"] =~
|
||||||
|
"if your email is in our system and it has not been confirmed yet, you will receive an email with instructions shortly."
|
||||||
conn.assigns.flash["info"] =~
|
|
||||||
"If your email is in our system and it has not been confirmed yet, you will receive an email with instructions shortly."
|
|
||||||
|
|
||||||
assert Repo.all(Accounts.UserToken) == []
|
assert Repo.all(Accounts.UserToken) == []
|
||||||
end
|
end
|
||||||
@ -73,18 +61,16 @@ defmodule MemexWeb.UserConfirmationControllerTest do
|
|||||||
end)
|
end)
|
||||||
|
|
||||||
conn = get(conn, ~p"/users/confirm/#{token}")
|
conn = get(conn, ~p"/users/confirm/#{token}")
|
||||||
assert redirected_to(conn) == "/"
|
assert redirected_to(conn) == ~p"/"
|
||||||
|
assert conn.assigns.flash["info"] =~ "#{user.email} confirmed successfully"
|
||||||
conn.assigns.flash["info"] =~ "#{user.email} confirmed successfully"
|
|
||||||
|
|
||||||
assert Accounts.get_user!(user.id).confirmed_at
|
assert Accounts.get_user!(user.id).confirmed_at
|
||||||
refute get_session(conn, :user_token)
|
refute get_session(conn, :user_token)
|
||||||
assert Repo.all(Accounts.UserToken) == []
|
assert Repo.all(Accounts.UserToken) == []
|
||||||
|
|
||||||
# When not logged in
|
# When not logged in
|
||||||
conn = get(conn, ~p"/users/confirm/#{token}")
|
conn = get(conn, ~p"/users/confirm/#{token}")
|
||||||
assert redirected_to(conn) == "/"
|
assert redirected_to(conn) == ~p"/"
|
||||||
conn.assigns.flash["error"] =~ "User confirmation link is invalid or it has expired"
|
assert conn.assigns.flash["error"] =~ "user confirmation link is invalid or it has expired"
|
||||||
|
|
||||||
# When logged in
|
# When logged in
|
||||||
conn =
|
conn =
|
||||||
@ -92,15 +78,14 @@ defmodule MemexWeb.UserConfirmationControllerTest do
|
|||||||
|> log_in_user(user)
|
|> log_in_user(user)
|
||||||
|> get(~p"/users/confirm/#{token}")
|
|> get(~p"/users/confirm/#{token}")
|
||||||
|
|
||||||
assert redirected_to(conn) == "/"
|
assert redirected_to(conn) == ~p"/"
|
||||||
refute conn.assigns.flash["error"]
|
refute conn.assigns.flash["error"]
|
||||||
end
|
end
|
||||||
|
|
||||||
test "does not confirm email with invalid token", %{conn: conn, user: user} do
|
test "does not confirm email with invalid token", %{conn: conn, user: user} do
|
||||||
conn = get(conn, ~p"/users/confirm/#{"oops"}")
|
conn = get(conn, ~p"/users/confirm/oops")
|
||||||
assert redirected_to(conn) == "/"
|
assert redirected_to(conn) == ~p"/"
|
||||||
conn.assigns.flash["error"] =~ "User confirmation link is invalid or it has expired"
|
assert conn.assigns.flash["error"] =~ "user confirmation link is invalid or it has expired"
|
||||||
|
|
||||||
refute Accounts.get_user!(user.id).confirmed_at
|
refute Accounts.get_user!(user.id).confirmed_at
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -17,7 +17,7 @@ defmodule MemexWeb.UserRegistrationControllerTest do
|
|||||||
|
|
||||||
test "redirects if already logged in", %{conn: conn} do
|
test "redirects if already logged in", %{conn: conn} do
|
||||||
conn = conn |> log_in_user(user_fixture()) |> get(~p"/users/register")
|
conn = conn |> log_in_user(user_fixture()) |> get(~p"/users/register")
|
||||||
assert redirected_to(conn) == "/"
|
assert redirected_to(conn) == ~p"/"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -25,24 +25,24 @@ defmodule MemexWeb.UserRegistrationControllerTest do
|
|||||||
@tag :capture_log
|
@tag :capture_log
|
||||||
test "creates account and logs the user in", %{conn: conn} do
|
test "creates account and logs the user in", %{conn: conn} do
|
||||||
email = unique_user_email()
|
email = unique_user_email()
|
||||||
|
conn = post(conn, ~p"/users/register", %{user: valid_user_attributes(email: email)})
|
||||||
conn =
|
|
||||||
post(conn, ~p"/users/register", %{
|
|
||||||
user: valid_user_attributes(email: email)
|
|
||||||
})
|
|
||||||
|
|
||||||
assert get_session(conn, :phoenix_flash) == %{
|
assert get_session(conn, :phoenix_flash) == %{
|
||||||
"info" => "please check your email to verify your account"
|
"info" => "please check your email to verify your account"
|
||||||
}
|
}
|
||||||
|
|
||||||
assert redirected_to(conn) =~ "/"
|
assert redirected_to(conn) =~ ~p"/"
|
||||||
|
|
||||||
|
# Now do a logged in request and assert on the menu
|
||||||
|
conn = get(conn, ~p"/")
|
||||||
|
response = html_response(conn, 200)
|
||||||
|
# user's email is recorded as admin
|
||||||
|
assert response =~ email
|
||||||
end
|
end
|
||||||
|
|
||||||
test "render errors for invalid data", %{conn: conn} do
|
test "render errors for invalid data", %{conn: conn} do
|
||||||
conn =
|
conn =
|
||||||
post(conn, ~p"/users/register", %{
|
post(conn, ~p"/users/register", %{user: %{email: "with spaces", password: "too short"}})
|
||||||
user: %{email: "with spaces", password: "too short"}
|
|
||||||
})
|
|
||||||
|
|
||||||
response = html_response(conn, 200)
|
response = html_response(conn, 200)
|
||||||
assert response =~ "register"
|
assert response =~ "register"
|
||||||
|
@ -23,29 +23,21 @@ defmodule MemexWeb.UserResetPasswordControllerTest do
|
|||||||
describe "POST /users/reset_password" do
|
describe "POST /users/reset_password" do
|
||||||
@tag :capture_log
|
@tag :capture_log
|
||||||
test "sends a new reset password token", %{conn: conn, user: user} do
|
test "sends a new reset password token", %{conn: conn, user: user} do
|
||||||
conn =
|
conn = post(conn, ~p"/users/reset_password", %{user: %{email: user.email}})
|
||||||
post(conn, ~p"/users/reset_password", %{
|
assert redirected_to(conn) == ~p"/"
|
||||||
user: %{email: user.email}
|
|
||||||
})
|
|
||||||
|
|
||||||
assert redirected_to(conn) == "/"
|
assert conn.assigns.flash["info"] =~
|
||||||
|
"if your email is in our system, you will receive instructions to reset your password shortly."
|
||||||
conn.assigns.flash["info"] =~
|
|
||||||
"If your email is in our system, you will receive instructions to reset your password shortly."
|
|
||||||
|
|
||||||
assert Repo.get_by!(Accounts.UserToken, user_id: user.id).context == "reset_password"
|
assert Repo.get_by!(Accounts.UserToken, user_id: user.id).context == "reset_password"
|
||||||
end
|
end
|
||||||
|
|
||||||
test "does not send reset password token if email is invalid", %{conn: conn} do
|
test "does not send reset password token if email is invalid", %{conn: conn} do
|
||||||
conn =
|
conn = post(conn, ~p"/users/reset_password", %{user: %{email: "unknown@example.com"}})
|
||||||
post(conn, ~p"/users/reset_password", %{
|
assert redirected_to(conn) == ~p"/"
|
||||||
user: %{email: "unknown@example.com"}
|
|
||||||
})
|
|
||||||
|
|
||||||
assert redirected_to(conn) == "/"
|
assert conn.assigns.flash["info"] =~
|
||||||
|
"if your email is in our system, you will receive instructions to reset your password shortly."
|
||||||
conn.assigns.flash["info"] =~
|
|
||||||
"If your email is in our system, you will receive instructions to reset your password shortly."
|
|
||||||
|
|
||||||
assert Repo.all(Accounts.UserToken) == []
|
assert Repo.all(Accounts.UserToken) == []
|
||||||
end
|
end
|
||||||
@ -63,13 +55,13 @@ defmodule MemexWeb.UserResetPasswordControllerTest do
|
|||||||
|
|
||||||
test "renders reset password", %{conn: conn, token: token} do
|
test "renders reset password", %{conn: conn, token: token} do
|
||||||
conn = get(conn, ~p"/users/reset_password/#{token}")
|
conn = get(conn, ~p"/users/reset_password/#{token}")
|
||||||
assert html_response(conn, 200) =~ "Reset password"
|
assert html_response(conn, 200) =~ "reset password"
|
||||||
end
|
end
|
||||||
|
|
||||||
test "does not render reset password with invalid token", %{conn: conn} do
|
test "does not render reset password with invalid token", %{conn: conn} do
|
||||||
conn = get(conn, ~p"/users/reset_password/#{"oops"}")
|
conn = get(conn, ~p"/users/reset_password/oops")
|
||||||
assert redirected_to(conn) == "/"
|
assert redirected_to(conn) == ~p"/"
|
||||||
conn.assigns.flash["error"] =~ "Reset password link is invalid or it has expired"
|
assert conn.assigns.flash["error"] =~ "reset password link is invalid or it has expired"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -94,7 +86,7 @@ defmodule MemexWeb.UserResetPasswordControllerTest do
|
|||||||
|
|
||||||
assert redirected_to(conn) == ~p"/users/log_in"
|
assert redirected_to(conn) == ~p"/users/log_in"
|
||||||
refute get_session(conn, :user_token)
|
refute get_session(conn, :user_token)
|
||||||
conn.assigns.flash["info"] =~ "Password reset successfully"
|
assert conn.assigns.flash["info"] =~ "password reset successfully"
|
||||||
assert Accounts.get_user_by_email_and_password(user.email, "new valid password")
|
assert Accounts.get_user_by_email_and_password(user.email, "new valid password")
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -108,15 +100,15 @@ defmodule MemexWeb.UserResetPasswordControllerTest do
|
|||||||
})
|
})
|
||||||
|
|
||||||
response = html_response(conn, 200)
|
response = html_response(conn, 200)
|
||||||
assert response =~ "Reset password"
|
assert response =~ "reset password"
|
||||||
assert response =~ "should be at least 12 character(s)"
|
assert response =~ "should be at least 12 character(s)"
|
||||||
assert response =~ "does not match password"
|
assert response =~ "does not match password"
|
||||||
end
|
end
|
||||||
|
|
||||||
test "does not reset password with invalid token", %{conn: conn} do
|
test "does not reset password with invalid token", %{conn: conn} do
|
||||||
conn = put(conn, ~p"/users/reset_password/#{"oops"}")
|
conn = put(conn, ~p"/users/reset_password/oops")
|
||||||
assert redirected_to(conn) == "/"
|
assert redirected_to(conn) == ~p"/"
|
||||||
conn.assigns.flash["error"] =~ "Reset password link is invalid or it has expired"
|
assert conn.assigns.flash["error"] =~ "reset password link is invalid or it has expired"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -20,7 +20,7 @@ defmodule MemexWeb.UserSessionControllerTest do
|
|||||||
|
|
||||||
test "redirects if already logged in", %{conn: conn, current_user: current_user} do
|
test "redirects if already logged in", %{conn: conn, current_user: current_user} do
|
||||||
conn = conn |> log_in_user(current_user) |> get(~p"/users/log_in")
|
conn = conn |> log_in_user(current_user) |> get(~p"/users/log_in")
|
||||||
assert redirected_to(conn) == "/"
|
assert redirected_to(conn) == ~p"/"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -32,10 +32,10 @@ defmodule MemexWeb.UserSessionControllerTest do
|
|||||||
})
|
})
|
||||||
|
|
||||||
assert get_session(conn, :user_token)
|
assert get_session(conn, :user_token)
|
||||||
assert redirected_to(conn) =~ "/"
|
assert redirected_to(conn) =~ ~p"/"
|
||||||
|
|
||||||
# Now do a logged in request and assert on the menu
|
# Now do a logged in request and assert on the menu
|
||||||
conn = get(conn, "/")
|
conn = get(conn, ~p"/")
|
||||||
response = html_response(conn, 200)
|
response = html_response(conn, 200)
|
||||||
assert response =~ current_user.email
|
assert response =~ current_user.email
|
||||||
assert response =~ "are you sure you want to log out?"
|
assert response =~ "are you sure you want to log out?"
|
||||||
@ -52,7 +52,7 @@ defmodule MemexWeb.UserSessionControllerTest do
|
|||||||
})
|
})
|
||||||
|
|
||||||
assert conn.resp_cookies["_memex_web_user_remember_me"]
|
assert conn.resp_cookies["_memex_web_user_remember_me"]
|
||||||
assert redirected_to(conn) =~ "/"
|
assert redirected_to(conn) =~ ~p"/"
|
||||||
end
|
end
|
||||||
|
|
||||||
test "logs the user in with return to", %{conn: conn, current_user: current_user} do
|
test "logs the user in with return to", %{conn: conn, current_user: current_user} do
|
||||||
@ -71,30 +71,26 @@ defmodule MemexWeb.UserSessionControllerTest do
|
|||||||
|
|
||||||
test "emits error message with invalid credentials",
|
test "emits error message with invalid credentials",
|
||||||
%{conn: conn, current_user: current_user} do
|
%{conn: conn, current_user: current_user} do
|
||||||
conn =
|
conn = post(conn, ~p"/users/log_in", %{user: %{email: current_user.email, password: "bad"}})
|
||||||
post(conn, ~p"/users/log_in", %{
|
|
||||||
user: %{email: current_user.email, password: "bad"}
|
|
||||||
})
|
|
||||||
|
|
||||||
response = html_response(conn, 200)
|
response = html_response(conn, 200)
|
||||||
assert response =~ "log in"
|
assert response =~ "log in"
|
||||||
assert response =~ "Invalid email or password"
|
assert response =~ "invalid email or password"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
describe "DELETE /users/log_out" do
|
describe "DELETE /users/log_out" do
|
||||||
test "logs the user out", %{conn: conn, current_user: current_user} do
|
test "logs the user out", %{conn: conn, current_user: current_user} do
|
||||||
conn = conn |> log_in_user(current_user) |> delete(~p"/users/log_out")
|
conn = conn |> log_in_user(current_user) |> delete(~p"/users/log_out")
|
||||||
assert redirected_to(conn) == "/"
|
assert redirected_to(conn) == ~p"/"
|
||||||
refute get_session(conn, :user_token)
|
refute get_session(conn, :user_token)
|
||||||
conn.assigns.flash["info"] =~ "logged out successfully"
|
assert conn.assigns.flash["info"] =~ "logged out successfully"
|
||||||
end
|
end
|
||||||
|
|
||||||
test "succeeds even if the user is not logged in", %{conn: conn} do
|
test "succeeds even if the user is not logged in", %{conn: conn} do
|
||||||
conn = delete(conn, ~p"/users/log_out")
|
conn = delete(conn, ~p"/users/log_out")
|
||||||
assert redirected_to(conn) == "/"
|
assert redirected_to(conn) == ~p"/"
|
||||||
refute get_session(conn, :user_token)
|
refute get_session(conn, :user_token)
|
||||||
conn.assigns.flash["info"] =~ "logged out successfully"
|
assert conn.assigns.flash["info"] =~ "logged out successfully"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -39,8 +39,7 @@ defmodule MemexWeb.UserSettingsControllerTest do
|
|||||||
|
|
||||||
assert redirected_to(new_password_conn) == ~p"/users/settings"
|
assert redirected_to(new_password_conn) == ~p"/users/settings"
|
||||||
assert get_session(new_password_conn, :user_token) != get_session(conn, :user_token)
|
assert get_session(new_password_conn, :user_token) != get_session(conn, :user_token)
|
||||||
new_password_conn.assigns.flash["info"] =~ "password updated successfully"
|
assert new_password_conn.assigns.flash["info"] =~ "password updated successfully"
|
||||||
|
|
||||||
assert Accounts.get_user_by_email_and_password(current_user.email, "new valid password")
|
assert Accounts.get_user_by_email_and_password(current_user.email, "new valid password")
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -60,7 +59,6 @@ defmodule MemexWeb.UserSettingsControllerTest do
|
|||||||
assert response =~ "should be at least 12 character(s)"
|
assert response =~ "should be at least 12 character(s)"
|
||||||
assert response =~ "does not match password"
|
assert response =~ "does not match password"
|
||||||
assert response =~ "is not valid"
|
assert response =~ "is not valid"
|
||||||
|
|
||||||
assert get_session(old_password_conn, :user_token) == get_session(conn, :user_token)
|
assert get_session(old_password_conn, :user_token) == get_session(conn, :user_token)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -72,13 +70,13 @@ defmodule MemexWeb.UserSettingsControllerTest do
|
|||||||
put(conn, ~p"/users/settings", %{
|
put(conn, ~p"/users/settings", %{
|
||||||
action: "update_email",
|
action: "update_email",
|
||||||
current_password: valid_user_password(),
|
current_password: valid_user_password(),
|
||||||
user: %{"email" => unique_user_email()}
|
user: %{email: unique_user_email()}
|
||||||
})
|
})
|
||||||
|
|
||||||
assert redirected_to(conn) == ~p"/users/settings"
|
assert redirected_to(conn) == ~p"/users/settings"
|
||||||
|
|
||||||
conn.assigns.flash["info"] =~
|
assert conn.assigns.flash["info"] =~
|
||||||
"a link to confirm your email change has been sent to the new address."
|
"a link to confirm your email change has been sent to the new address."
|
||||||
|
|
||||||
assert Accounts.get_user_by_email(current_user.email)
|
assert Accounts.get_user_by_email(current_user.email)
|
||||||
end
|
end
|
||||||
@ -86,9 +84,9 @@ defmodule MemexWeb.UserSettingsControllerTest do
|
|||||||
test "does not update email on invalid data", %{conn: conn} do
|
test "does not update email on invalid data", %{conn: conn} do
|
||||||
conn =
|
conn =
|
||||||
put(conn, ~p"/users/settings", %{
|
put(conn, ~p"/users/settings", %{
|
||||||
"action" => "update_email",
|
action: "update_email",
|
||||||
"current_password" => "invalid",
|
current_password: "invalid",
|
||||||
"user" => %{"email" => "with spaces"}
|
user: %{email: "with spaces"}
|
||||||
})
|
})
|
||||||
|
|
||||||
response = html_response(conn, 200)
|
response = html_response(conn, 200)
|
||||||
@ -118,19 +116,19 @@ defmodule MemexWeb.UserSettingsControllerTest do
|
|||||||
%{conn: conn, current_user: current_user, token: token, email: email} do
|
%{conn: conn, current_user: current_user, token: token, email: email} do
|
||||||
conn = get(conn, ~p"/users/settings/confirm_email/#{token}")
|
conn = get(conn, ~p"/users/settings/confirm_email/#{token}")
|
||||||
assert redirected_to(conn) == ~p"/users/settings"
|
assert redirected_to(conn) == ~p"/users/settings"
|
||||||
conn.assigns.flash["info"] =~ "email changed successfully"
|
assert conn.assigns.flash["info"] =~ "email changed successfully"
|
||||||
refute Accounts.get_user_by_email(current_user.email)
|
refute Accounts.get_user_by_email(current_user.email)
|
||||||
assert Accounts.get_user_by_email(email)
|
assert Accounts.get_user_by_email(email)
|
||||||
|
|
||||||
conn = get(conn, ~p"/users/settings/confirm_email/#{token}")
|
conn = get(conn, ~p"/users/settings/confirm_email/#{token}")
|
||||||
assert redirected_to(conn) == ~p"/users/settings"
|
assert redirected_to(conn) == ~p"/users/settings"
|
||||||
conn.assigns.flash["error"] =~ "email change link is invalid or it has expired"
|
assert conn.assigns.flash["error"] =~ "email change link is invalid or it has expired"
|
||||||
end
|
end
|
||||||
|
|
||||||
test "does not update email with invalid token", %{conn: conn, current_user: current_user} do
|
test "does not update email with invalid token", %{conn: conn, current_user: current_user} do
|
||||||
conn = get(conn, ~p"/users/settings/confirm_email/#{"oops"}")
|
conn = get(conn, ~p"/users/settings/confirm_email/oops")
|
||||||
assert redirected_to(conn) == ~p"/users/settings"
|
assert redirected_to(conn) == ~p"/users/settings"
|
||||||
conn.assigns.flash["error"] =~ "email change link is invalid or it has expired"
|
assert conn.assigns.flash["error"] =~ "email change link is invalid or it has expired"
|
||||||
assert Accounts.get_user_by_email(current_user.email)
|
assert Accounts.get_user_by_email(current_user.email)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
defmodule MemexWeb.ContextLiveTest do
|
defmodule MemexWeb.ContextLiveTest do
|
||||||
use MemexWeb.ConnCase
|
use MemexWeb.ConnCase, async: true
|
||||||
import Phoenix.LiveViewTest
|
import Phoenix.LiveViewTest
|
||||||
import Memex.Fixtures
|
import Memex.Fixtures
|
||||||
|
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
defmodule MemexWeb.FaqLiveTest do
|
defmodule MemexWeb.FaqLiveTest do
|
||||||
use MemexWeb.ConnCase
|
use MemexWeb.ConnCase, async: true
|
||||||
|
|
||||||
import Phoenix.LiveViewTest
|
import Phoenix.LiveViewTest
|
||||||
|
|
||||||
test "disconnected and connected render", %{conn: conn} do
|
test "disconnected and connected render", %{conn: conn} do
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
defmodule MemexWeb.HomeLiveTest do
|
defmodule MemexWeb.HomeLiveTest do
|
||||||
use MemexWeb.ConnCase
|
use MemexWeb.ConnCase, async: true
|
||||||
|
|
||||||
import Phoenix.LiveViewTest
|
import Phoenix.LiveViewTest
|
||||||
|
|
||||||
test "disconnected and connected render", %{conn: conn} do
|
test "disconnected and connected render", %{conn: conn} do
|
||||||
@ -8,4 +7,10 @@ defmodule MemexWeb.HomeLiveTest do
|
|||||||
assert disconnected_html =~ "memEx"
|
assert disconnected_html =~ "memEx"
|
||||||
assert render(page_live) =~ "memEx"
|
assert render(page_live) =~ "memEx"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
test "displays version number", %{conn: conn} do
|
||||||
|
{:ok, home_live, disconnected_html} = live(conn, ~p"/")
|
||||||
|
assert disconnected_html =~ Mix.Project.config()[:version]
|
||||||
|
assert render(home_live) =~ Mix.Project.config()[:version]
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
@ -3,7 +3,7 @@ defmodule MemexWeb.InviteLiveTest do
|
|||||||
Tests the invite liveview
|
Tests the invite liveview
|
||||||
"""
|
"""
|
||||||
|
|
||||||
use MemexWeb.ConnCase
|
use MemexWeb.ConnCase, async: true
|
||||||
import Phoenix.LiveViewTest
|
import Phoenix.LiveViewTest
|
||||||
alias Memex.Accounts.Invites
|
alias Memex.Accounts.Invites
|
||||||
|
|
||||||
@ -22,7 +22,6 @@ defmodule MemexWeb.InviteLiveTest do
|
|||||||
|
|
||||||
test "lists all invites", %{conn: conn, invite: invite} do
|
test "lists all invites", %{conn: conn, invite: invite} do
|
||||||
{:ok, _index_live, html} = live(conn, ~p"/invites")
|
{:ok, _index_live, html} = live(conn, ~p"/invites")
|
||||||
|
|
||||||
assert html =~ "invites"
|
assert html =~ "invites"
|
||||||
assert html =~ invite.name
|
assert html =~ invite.name
|
||||||
end
|
end
|
||||||
@ -52,7 +51,7 @@ defmodule MemexWeb.InviteLiveTest do
|
|||||||
|> element(~s/a[aria-label="edit invite for #{invite.name}"]/)
|
|> element(~s/a[aria-label="edit invite for #{invite.name}"]/)
|
||||||
|> render_click() =~ "edit invite"
|
|> render_click() =~ "edit invite"
|
||||||
|
|
||||||
assert_patch(index_live, ~p"/invites/#{invite}/edit")
|
assert_patch(index_live, ~p"/invites/edit/#{invite}")
|
||||||
|
|
||||||
assert index_live
|
assert index_live
|
||||||
|> form("#invite-form")
|
|> form("#invite-form")
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
defmodule MemexWeb.NoteLiveTest do
|
defmodule MemexWeb.NoteLiveTest do
|
||||||
use MemexWeb.ConnCase
|
use MemexWeb.ConnCase, async: true
|
||||||
|
|
||||||
import Phoenix.LiveViewTest
|
import Phoenix.LiveViewTest
|
||||||
import Memex.Fixtures
|
import Memex.Fixtures
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
defmodule MemexWeb.PipelineLiveTest do
|
defmodule MemexWeb.PipelineLiveTest do
|
||||||
use MemexWeb.ConnCase
|
use MemexWeb.ConnCase, async: true
|
||||||
import Phoenix.LiveViewTest
|
import Phoenix.LiveViewTest
|
||||||
import Memex.Fixtures
|
import Memex.Fixtures
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user