11 Commits

Author SHA1 Message Date
4615a29c11 disable arm builds
All checks were successful
continuous-integration/drone/push Build is passing
2023-04-16 21:36:33 -04:00
eb48ff7dc0 build in arm64 and amd64
Some checks reported errors
continuous-integration/drone/push Build was killed
2023-04-16 17:05:13 -04:00
fcfd9857d5 remove maintain attrs
All checks were successful
continuous-integration/drone/push Build is passing
2023-04-16 01:12:07 -04:00
c5f96a9d9d change invite path slightly
All checks were successful
continuous-integration/drone/push Build is passing
2023-04-16 00:48:04 -04:00
c1a0b4017f improve tests
Some checks failed
continuous-integration/drone/push Build is failing
2023-04-15 21:40:57 -04:00
04ebe59afe ee cummings even more 2023-04-15 21:40:17 -04:00
50be85a1c3 make test async
Some checks are pending
continuous-integration/drone/push Build is running
2023-04-14 23:50:16 -04:00
994aa96a20 simply assigns
All checks were successful
continuous-integration/drone/push Build is passing
2023-04-14 20:32:47 -04:00
026bf22f60 improve formatting 2023-04-14 20:08:03 -04:00
56e6eb3609 use more verified routes
All checks were successful
continuous-integration/drone/push Build is passing
2023-04-14 19:51:14 -04:00
c49140e7f5 ee cummings even more
Some checks failed
continuous-integration/drone/push Build is failing
2023-04-14 19:19:58 -04:00
53 changed files with 395 additions and 472 deletions

View File

@ -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:

View File

@ -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

View File

@ -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))
}
}
}

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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">

View File

@ -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">

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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>

View File

@ -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

View File

@ -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")

View File

@ -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)

View File

@ -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")

View File

@ -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")

View File

@ -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

View File

@ -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")

View File

@ -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

View File

@ -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 ""

View File

@ -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 ""

View File

@ -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 ""

View File

@ -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 ""

View File

@ -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 ""

View File

@ -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 ""

View File

@ -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 ""

View File

@ -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 ""

View File

@ -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 ""

View File

@ -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 ""

View File

@ -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 ""

View File

@ -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 ""

View File

@ -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}

View File

@ -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}

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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"

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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")

View File

@ -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

View File

@ -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