diff --git a/assets/js/app.js b/assets/js/app.js
index 09cc87a..68ad0ff 100644
--- a/assets/js/app.js
+++ b/assets/js/app.js
@@ -1,7 +1,7 @@
// We import the CSS which is extracted to its own file by esbuild.
// Remove this line if you add a your own CSS build pipeline (e.g postcss).
import '../css/app.scss'
-import "@fontsource/nunito-sans";
+import '@fontsource/nunito-sans'
// If you want to use Phoenix channels, run `mix help phx.gen.channel`
// to get started and then uncomment the line below.
diff --git a/assets/tailwind.config.js b/assets/tailwind.config.js
index a6e83be..56ccf69 100644
--- a/assets/tailwind.config.js
+++ b/assets/tailwind.config.js
@@ -18,7 +18,7 @@ module.exports = {
yellow: colors.amber
},
fontFamily: {
- 'sans': ['Nunito Sans', 'ui-sans-serif', 'system-ui', '-apple-system', 'BlinkMacSystemFont']
+ sans: ['Nunito Sans', 'ui-sans-serif', 'system-ui', '-apple-system', 'BlinkMacSystemFont']
},
extend: {
spacing: {
diff --git a/lib/memex/contexts/context_note.ex b/lib/memex/contexts/context_note.ex
index 2c3e791..412d30b 100644
--- a/lib/memex/contexts/context_note.ex
+++ b/lib/memex/contexts/context_note.ex
@@ -5,7 +5,6 @@ defmodule Memex.Contexts.ContextNote do
@primary_key {:id, :binary_id, autogenerate: true}
@foreign_key_type :binary_id
schema "context_notes" do
-
field :context_id, :binary_id
field :note_id, :binary_id
diff --git a/lib/memex/steps/step_context.ex b/lib/memex/steps/step_context.ex
index 0f14d6c..fcf8976 100644
--- a/lib/memex/steps/step_context.ex
+++ b/lib/memex/steps/step_context.ex
@@ -5,7 +5,6 @@ defmodule Memex.Steps.StepContext do
@primary_key {:id, :binary_id, autogenerate: true}
@foreign_key_type :binary_id
schema "step_contexts" do
-
field :step_id, :binary_id
field :context_id, :binary_id
diff --git a/lib/memex_web/live/context_live/form_component.html.heex b/lib/memex_web/live/context_live/form_component.html.heex
index 2edc917..fb0a2b8 100644
--- a/lib/memex_web/live/context_live/form_component.html.heex
+++ b/lib/memex_web/live/context_live/form_component.html.heex
@@ -7,26 +7,28 @@
id="context-form"
phx-target={@myself}
phx-change="validate"
- phx-submit="save">
-
- <%= label f, :title %>
- <%= text_input f, :title %>
- <%= error_tag f, :title %>
-
- <%= label f, :content %>
- <%= textarea f, :content %>
- <%= error_tag f, :content %>
-
- <%= label f, :tag %>
- <%= multiple_select f, :tag, ["Option 1": "option1", "Option 2": "option2"] %>
- <%= error_tag f, :tag %>
-
- <%= label f, :visibility %>
- <%= select f, :visibility, Ecto.Enum.values(Memex.Contexts.Context, :visibility), prompt: "Choose a value" %>
- <%= error_tag f, :visibility %>
-
+ phx-submit="save"
+ >
+ <%= label(f, :title) %>
+ <%= text_input(f, :title) %>
+ <%= error_tag(f, :title) %>
+
+ <%= label(f, :content) %>
+ <%= textarea(f, :content) %>
+ <%= error_tag(f, :content) %>
+
+ <%= label(f, :tag) %>
+ <%= multiple_select(f, :tag, "Option 1": "option1", "Option 2": "option2") %>
+ <%= error_tag(f, :tag) %>
+
+ <%= label(f, :visibility) %>
+ <%= select(f, :visibility, Ecto.Enum.values(Memex.Contexts.Context, :visibility),
+ prompt: "Choose a value"
+ ) %>
+ <%= error_tag(f, :visibility) %>
+
- <%= submit "Save", phx_disable_with: "Saving..." %>
+ <%= submit("Save", phx_disable_with: "Saving...") %>
diff --git a/lib/memex_web/live/context_live/index.html.heex b/lib/memex_web/live/context_live/index.html.heex
index be335c6..83e5eb5 100644
--- a/lib/memex_web/live/context_live/index.html.heex
+++ b/lib/memex_web/live/context_live/index.html.heex
@@ -33,13 +33,24 @@
<%= context.visibility %> |
- <%= live_redirect "Show", to: Routes.context_show_path(@socket, :show, context) %>
- <%= live_patch "Edit", to: Routes.context_index_path(@socket, :edit, context) %>
- <%= link "Delete", to: "#", phx_click: "delete", phx_value_id: context.id, data: [confirm: "Are you sure?"] %>
+
+ <%= live_redirect("Show", to: Routes.context_show_path(@socket, :show, context)) %>
+
+
+ <%= live_patch("Edit", to: Routes.context_index_path(@socket, :edit, context)) %>
+
+
+ <%= link("Delete",
+ to: "#",
+ phx_click: "delete",
+ phx_value_id: context.id,
+ data: [confirm: "Are you sure?"]
+ ) %>
+
|
<% end %>
-<%= live_patch "New Context", to: Routes.context_index_path(@socket, :new) %>
+<%= live_patch("New Context", to: Routes.context_index_path(@socket, :new)) %>
diff --git a/lib/memex_web/live/context_live/show.html.heex b/lib/memex_web/live/context_live/show.html.heex
index c634d45..652ef45 100644
--- a/lib/memex_web/live/context_live/show.html.heex
+++ b/lib/memex_web/live/context_live/show.html.heex
@@ -14,7 +14,6 @@
<% end %>
-
-
Title:
<%= @context.title %>
@@ -34,8 +33,9 @@
Visibility:
<%= @context.visibility %>
-
-<%= live_patch "Edit", to: Routes.context_show_path(@socket, :edit, @context), class: "button" %> |
-<%= live_redirect "Back", to: Routes.context_index_path(@socket, :index) %>
+
+ <%= live_patch("Edit", to: Routes.context_show_path(@socket, :edit, @context), class: "button") %>
+ |
+<%= live_redirect("Back", to: Routes.context_index_path(@socket, :index)) %>
diff --git a/lib/memex_web/live/note_live/form_component.html.heex b/lib/memex_web/live/note_live/form_component.html.heex
index 860963e..b3bbc55 100644
--- a/lib/memex_web/live/note_live/form_component.html.heex
+++ b/lib/memex_web/live/note_live/form_component.html.heex
@@ -7,26 +7,28 @@
id="note-form"
phx-target={@myself}
phx-change="validate"
- phx-submit="save">
-
- <%= label f, :title %>
- <%= text_input f, :title %>
- <%= error_tag f, :title %>
-
- <%= label f, :content %>
- <%= textarea f, :content %>
- <%= error_tag f, :content %>
-
- <%= label f, :tag %>
- <%= multiple_select f, :tag, ["Option 1": "option1", "Option 2": "option2"] %>
- <%= error_tag f, :tag %>
-
- <%= label f, :visibility %>
- <%= select f, :visibility, Ecto.Enum.values(Memex.Notes.Note, :visibility), prompt: "Choose a value" %>
- <%= error_tag f, :visibility %>
-
+ phx-submit="save"
+ >
+ <%= label(f, :title) %>
+ <%= text_input(f, :title) %>
+ <%= error_tag(f, :title) %>
+
+ <%= label(f, :content) %>
+ <%= textarea(f, :content) %>
+ <%= error_tag(f, :content) %>
+
+ <%= label(f, :tag) %>
+ <%= multiple_select(f, :tag, "Option 1": "option1", "Option 2": "option2") %>
+ <%= error_tag(f, :tag) %>
+
+ <%= label(f, :visibility) %>
+ <%= select(f, :visibility, Ecto.Enum.values(Memex.Notes.Note, :visibility),
+ prompt: "Choose a value"
+ ) %>
+ <%= error_tag(f, :visibility) %>
+
- <%= submit "Save", phx_disable_with: "Saving..." %>
+ <%= submit("Save", phx_disable_with: "Saving...") %>
diff --git a/lib/memex_web/live/note_live/index.html.heex b/lib/memex_web/live/note_live/index.html.heex
index 05fb582..d3eeaa0 100644
--- a/lib/memex_web/live/note_live/index.html.heex
+++ b/lib/memex_web/live/note_live/index.html.heex
@@ -33,13 +33,22 @@
<%= note.visibility %> |
- <%= live_redirect "Show", to: Routes.note_show_path(@socket, :show, note) %>
- <%= live_patch "Edit", to: Routes.note_index_path(@socket, :edit, note) %>
- <%= link "Delete", to: "#", phx_click: "delete", phx_value_id: note.id, data: [confirm: "Are you sure?"] %>
+
+ <%= live_redirect("Show", to: Routes.note_show_path(@socket, :show, note)) %>
+
+ <%= live_patch("Edit", to: Routes.note_index_path(@socket, :edit, note)) %>
+
+ <%= link("Delete",
+ to: "#",
+ phx_click: "delete",
+ phx_value_id: note.id,
+ data: [confirm: "Are you sure?"]
+ ) %>
+
|
<% end %>
-<%= live_patch "New Note", to: Routes.note_index_path(@socket, :new) %>
+<%= live_patch("New Note", to: Routes.note_index_path(@socket, :new)) %>
diff --git a/lib/memex_web/live/note_live/show.html.heex b/lib/memex_web/live/note_live/show.html.heex
index ae040ba..d55faee 100644
--- a/lib/memex_web/live/note_live/show.html.heex
+++ b/lib/memex_web/live/note_live/show.html.heex
@@ -14,7 +14,6 @@
<% end %>
-
-
Title:
<%= @note.title %>
@@ -34,8 +33,8 @@
Visibility:
<%= @note.visibility %>
-
-<%= live_patch "Edit", to: Routes.note_show_path(@socket, :edit, @note), class: "button" %> |
-<%= live_redirect "Back", to: Routes.note_index_path(@socket, :index) %>
+
+ <%= live_patch("Edit", to: Routes.note_show_path(@socket, :edit, @note), class: "button") %>
+ | <%= live_redirect("Back", to: Routes.note_index_path(@socket, :index)) %>
diff --git a/lib/memex_web/live/pipeline_live/form_component.html.heex b/lib/memex_web/live/pipeline_live/form_component.html.heex
index 077c3e9..626b742 100644
--- a/lib/memex_web/live/pipeline_live/form_component.html.heex
+++ b/lib/memex_web/live/pipeline_live/form_component.html.heex
@@ -7,22 +7,24 @@
id="pipeline-form"
phx-target={@myself}
phx-change="validate"
- phx-submit="save">
-
- <%= label f, :title %>
- <%= text_input f, :title %>
- <%= error_tag f, :title %>
-
- <%= label f, :description %>
- <%= textarea f, :description %>
- <%= error_tag f, :description %>
-
- <%= label f, :visibility %>
- <%= select f, :visibility, Ecto.Enum.values(Memex.Pipelines.Pipeline, :visibility), prompt: "Choose a value" %>
- <%= error_tag f, :visibility %>
-
+ phx-submit="save"
+ >
+ <%= label(f, :title) %>
+ <%= text_input(f, :title) %>
+ <%= error_tag(f, :title) %>
+
+ <%= label(f, :description) %>
+ <%= textarea(f, :description) %>
+ <%= error_tag(f, :description) %>
+
+ <%= label(f, :visibility) %>
+ <%= select(f, :visibility, Ecto.Enum.values(Memex.Pipelines.Pipeline, :visibility),
+ prompt: "Choose a value"
+ ) %>
+ <%= error_tag(f, :visibility) %>
+
- <%= submit "Save", phx_disable_with: "Saving..." %>
+ <%= submit("Save", phx_disable_with: "Saving...") %>
diff --git a/lib/memex_web/live/pipeline_live/index.html.heex b/lib/memex_web/live/pipeline_live/index.html.heex
index 55559e3..3443bfc 100644
--- a/lib/memex_web/live/pipeline_live/index.html.heex
+++ b/lib/memex_web/live/pipeline_live/index.html.heex
@@ -31,13 +31,24 @@
<%= pipeline.visibility %> |
- <%= live_redirect "Show", to: Routes.pipeline_show_path(@socket, :show, pipeline) %>
- <%= live_patch "Edit", to: Routes.pipeline_index_path(@socket, :edit, pipeline) %>
- <%= link "Delete", to: "#", phx_click: "delete", phx_value_id: pipeline.id, data: [confirm: "Are you sure?"] %>
+
+ <%= live_redirect("Show", to: Routes.pipeline_show_path(@socket, :show, pipeline)) %>
+
+
+ <%= live_patch("Edit", to: Routes.pipeline_index_path(@socket, :edit, pipeline)) %>
+
+
+ <%= link("Delete",
+ to: "#",
+ phx_click: "delete",
+ phx_value_id: pipeline.id,
+ data: [confirm: "Are you sure?"]
+ ) %>
+
|
<% end %>
-<%= live_patch "New Pipeline", to: Routes.pipeline_index_path(@socket, :new) %>
+<%= live_patch("New Pipeline", to: Routes.pipeline_index_path(@socket, :new)) %>
diff --git a/lib/memex_web/live/pipeline_live/show.html.heex b/lib/memex_web/live/pipeline_live/show.html.heex
index daee582..4e63c63 100644
--- a/lib/memex_web/live/pipeline_live/show.html.heex
+++ b/lib/memex_web/live/pipeline_live/show.html.heex
@@ -14,7 +14,6 @@
<% end %>
-
-
Title:
<%= @pipeline.title %>
@@ -29,8 +28,9 @@
Visibility:
<%= @pipeline.visibility %>
-
-<%= live_patch "Edit", to: Routes.pipeline_show_path(@socket, :edit, @pipeline), class: "button" %> |
-<%= live_redirect "Back", to: Routes.pipeline_index_path(@socket, :index) %>
+
+ <%= live_patch("Edit", to: Routes.pipeline_show_path(@socket, :edit, @pipeline), class: "button") %>
+ |
+<%= live_redirect("Back", to: Routes.pipeline_index_path(@socket, :index)) %>
diff --git a/priv/gettext/actions.pot b/priv/gettext/actions.pot
new file mode 100644
index 0000000..af28542
--- /dev/null
+++ b/priv/gettext/actions.pot
@@ -0,0 +1,104 @@
+## This file is a PO Template file.
+##
+## "msgid"s here are often extracted from source code.
+## Add new translations manually only if they're dynamic
+## translations that can't be statically extracted.
+##
+## Run "mix gettext.extract" to bring this file up to
+## date. Leave "msgstr"s empty as changing them here has no
+## effect: edit them in PO (.po) files instead.
+msgid ""
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex_web/templates/user_settings/edit.html.heex:113
+msgid "Change Language"
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex_web/templates/user_settings/edit.html.heex:15
+#: lib/memex_web/templates/user_settings/edit.html.heex:44
+msgid "Change email"
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex_web/templates/user_settings/edit.html.heex:131
+msgid "Change language"
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex_web/templates/user_settings/edit.html.heex:58
+#: lib/memex_web/templates/user_settings/edit.html.heex:99
+msgid "Change password"
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex_web/live/invite_live/index.html.heex:32
+msgid "Copy to clipboard"
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex_web/live/invite_live/index.html.heex:16
+msgid "Create Invite"
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex_web/templates/user_settings/edit.html.heex:139
+msgid "Delete User"
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex_web/templates/user_registration/new.html.heex:51
+#: lib/memex_web/templates/user_reset_password/new.html.heex:3
+#: lib/memex_web/templates/user_session/new.html.heex:44
+msgid "Forgot your password?"
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex_web/live/invite_live/index.html.heex:11
+msgid "Invite someone new!"
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex_web/components/topbar.ex:119
+#: lib/memex_web/templates/user_confirmation/new.html.heex:29
+#: lib/memex_web/templates/user_registration/new.html.heex:47
+#: lib/memex_web/templates/user_reset_password/edit.html.heex:47
+#: lib/memex_web/templates/user_reset_password/new.html.heex:29
+#: lib/memex_web/templates/user_session/new.html.heex:3
+#: lib/memex_web/templates/user_session/new.html.heex:32
+msgid "Log in"
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex_web/components/topbar.ex:111
+#: lib/memex_web/templates/user_confirmation/new.html.heex:24
+#: lib/memex_web/templates/user_registration/new.html.heex:3
+#: lib/memex_web/templates/user_registration/new.html.heex:41
+#: lib/memex_web/templates/user_reset_password/edit.html.heex:42
+#: lib/memex_web/templates/user_reset_password/new.html.heex:24
+#: lib/memex_web/templates/user_session/new.html.heex:39
+msgid "Register"
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex_web/templates/user_confirmation/new.html.heex:3
+#: lib/memex_web/templates/user_confirmation/new.html.heex:15
+msgid "Resend confirmation instructions"
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex_web/templates/user_reset_password/edit.html.heex:3
+#: lib/memex_web/templates/user_reset_password/edit.html.heex:33
+msgid "Reset password"
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex_web/live/invite_live/form_component.html.heex:28
+msgid "Save"
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex_web/templates/user_reset_password/new.html.heex:15
+msgid "Send instructions to reset password"
+msgstr ""
diff --git a/priv/gettext/default.pot b/priv/gettext/default.pot
new file mode 100644
index 0000000..4318887
--- /dev/null
+++ b/priv/gettext/default.pot
@@ -0,0 +1,246 @@
+## This file is a PO Template file.
+##
+## "msgid"s here are often extracted from source code.
+## Add new translations manually only if they're dynamic
+## translations that can't be statically extracted.
+##
+## Run "mix gettext.extract" to bring this file up to
+## date. Leave "msgstr"s empty as changing them here has no
+## effect: edit them in PO (.po) files instead.
+msgid ""
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex_web/live/home_live.html.heex:73
+msgid "Accessible from any internet-capable device"
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex_web/live/invite_live/index.html.heex:89
+msgid "Admins"
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex_web/live/home_live.html.heex:53
+msgid "Built with sharing and collaboration in mind"
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex_web/templates/user_settings/edit.html.heex:78
+msgid "Confirm new password"
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex_web/controllers/user_confirmation_controller.ex:8
+msgid "Confirm your account"
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex_web/components/topbar.ex:45
+msgid "Contexts"
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex_web/live/home_live.html.heex:22
+msgid "Contexts:"
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex_web/live/home_live.html.heex:70
+msgid "Convenient:"
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex_web/templates/user_settings/edit.html.heex:32
+#: lib/memex_web/templates/user_settings/edit.html.heex:87
+msgid "Current password"
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex_web/live/invite_live/index.html.heex:58
+msgid "Disable"
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex_web/live/home_live.html.heex:15
+msgid "Document notes about individual items or concepts"
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex_web/live/home_live.html.heex:35
+msgid "Document your processes, attaching contexts to each step"
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex_web/live/invite_live/index.ex:33
+msgid "Edit Invite"
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex_web/live/invite_live/index.html.heex:62
+msgid "Enable"
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex_web/templates/user_registration/new.html.heex:36
+#: lib/memex_web/templates/user_settings/edit.html.heex:126
+msgid "English"
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex_web/live/home_live.html.heex:44
+msgid "Features"
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex_web/controllers/user_reset_password_controller.ex:9
+msgid "Forgot your password?"
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex_web/live/home_live.ex:10
+msgid "Home"
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex_web/components/invite_card.ex:25
+msgid "Invite Disabled"
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex_web/components/topbar.ex:78
+#: lib/memex_web/live/invite_live/index.ex:41
+#: lib/memex_web/live/invite_live/index.html.heex:3
+msgid "Invites"
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex_web/templates/user_session/new.html.heex:27
+msgid "Keep me logged in for 60 days"
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex_web/templates/user_registration/new.html.heex:32
+msgid "Language"
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex_web/templates/layout/live.html.heex:37
+msgid "Loading..."
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex_web/controllers/user_session_controller.ex:8
+msgid "Log in"
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex_web/live/home_live.html.heex:50
+msgid "Multi-user:"
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex_web/live/invite_live/form_component.html.heex:20
+msgid "Name"
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex_web/live/invite_live/index.ex:37
+msgid "New Invite"
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex_web/templates/user_settings/edit.html.heex:71
+msgid "New password"
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex_web/live/invite_live/index.html.heex:8
+msgid "No invites 😔"
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex_web/components/topbar.ex:52
+msgid "Notes"
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex_web/live/home_live.html.heex:12
+msgid "Notes:"
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex_web/components/topbar.ex:38
+msgid "Pipelines"
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex_web/live/home_live.html.heex:32
+msgid "Pipelines:"
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex_web/live/home_live.html.heex:63
+msgid "Privacy controls on a per-note, context or pipeline basis"
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex_web/live/home_live.html.heex:60
+msgid "Privacy:"
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex_web/live/home_live.html.heex:25
+msgid "Provide context around a single topic and hotlink to your notes"
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex_web/templates/layout/live.html.heex:50
+msgid "Reconnecting..."
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex_web/controllers/user_registration_controller.ex:35
+msgid "Register"
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex_web/controllers/user_reset_password_controller.ex:36
+msgid "Reset your password"
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex_web/live/invite_live/index.html.heex:78
+msgid "Set Unlimited"
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex_web/controllers/user_settings_controller.ex:10
+#: lib/memex_web/templates/user_settings/edit.html.heex:3
+msgid "Settings"
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex_web/components/user_card.ex:30
+msgid "User registered on"
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex_web/live/invite_live/index.html.heex:118
+msgid "Users"
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex_web/components/invite_card.ex:20
+msgid "Uses Left:"
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex_web/live/invite_live/form_component.html.heex:24
+msgid "Uses left"
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex_web/live/home_live.html.heex:3
+msgid "memex"
+msgstr ""
diff --git a/priv/gettext/emails.pot b/priv/gettext/emails.pot
new file mode 100644
index 0000000..e9c08c0
--- /dev/null
+++ b/priv/gettext/emails.pot
@@ -0,0 +1,92 @@
+## This file is a PO Template file.
+##
+## "msgid"s here are often extracted from source code.
+## Add new translations manually only if they're dynamic
+## translations that can't be statically extracted.
+##
+## Run "mix gettext.extract" to bring this file up to
+## date. Leave "msgstr"s empty as changing them here has no
+## effect: edit them in PO (.po) files instead.
+msgid ""
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex/accounts/email.ex:30
+msgid "Confirm your Memex account"
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex_web/templates/email/confirm_email.html.heex:3
+#: lib/memex_web/templates/email/confirm_email.txt.eex:2
+#: lib/memex_web/templates/email/reset_password.html.heex:3
+#: lib/memex_web/templates/email/reset_password.txt.eex:2
+#: lib/memex_web/templates/email/update_email.html.heex:3
+#: lib/memex_web/templates/email/update_email.txt.eex:2
+msgid "Hi %{email},"
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex_web/templates/email/confirm_email.txt.eex:10
+msgid "If you didn't create an account at %{url}, please ignore this."
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex_web/templates/email/confirm_email.html.heex:22
+msgid "If you didn't create an account at Memex, please ignore this."
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex_web/templates/email/reset_password.txt.eex:8
+#: lib/memex_web/templates/email/update_email.txt.eex:8
+msgid "If you didn't request this change from %{url}, please ignore this."
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex_web/templates/email/reset_password.html.heex:16
+#: lib/memex_web/templates/email/update_email.html.heex:16
+msgid "If you didn't request this change from Memex, please ignore this."
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex/accounts/email.ex:37
+msgid "Reset your Memex password"
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex_web/templates/layout/email.txt.eex:9
+msgid "This email was sent from Memex at %{url}, the self-hosted firearm tracker website."
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex_web/templates/layout/email.html.heex:13
+msgid "This email was sent from Memex, the self-hosted firearm tracker website."
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex/accounts/email.ex:44
+msgid "Update your Memex email"
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex_web/templates/email/confirm_email.html.heex:9
+#: lib/memex_web/templates/email/confirm_email.txt.eex:4
+msgid "Welcome to Memex"
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex_web/templates/email/update_email.html.heex:8
+#: lib/memex_web/templates/email/update_email.txt.eex:4
+msgid "You can change your email by visiting the URL below:"
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex_web/templates/email/confirm_email.html.heex:14
+#: lib/memex_web/templates/email/confirm_email.txt.eex:6
+msgid "You can confirm your account by visiting the URL below:"
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex_web/templates/email/reset_password.html.heex:8
+#: lib/memex_web/templates/email/reset_password.txt.eex:4
+msgid "You can reset your password by visiting the URL below:"
+msgstr ""
diff --git a/priv/gettext/errors.pot b/priv/gettext/errors.pot
new file mode 100644
index 0000000..060610a
--- /dev/null
+++ b/priv/gettext/errors.pot
@@ -0,0 +1,118 @@
+## This file is a PO Template file.
+##
+## "msgid"s here are often extracted from source code.
+## Add new translations manually only if they're dynamic
+## translations that can't be statically extracted.
+##
+## Run "mix gettext.extract" to bring this file up to
+## date. Leave "msgstr"s empty as changing them here has no
+## effect: edit them in PO (.po) files instead.
+msgid ""
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex_web/controllers/user_settings_controller.ex:84
+msgid "Email change link is invalid or it has expired."
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex_web/templates/error/error.html.heex:8
+msgid "Error"
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex_web/templates/error/error.html.heex:28
+msgid "Go back home"
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex_web/views/error_view.ex:11
+msgid "Internal Server Error"
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex_web/controllers/user_session_controller.ex:17
+msgid "Invalid email or password"
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex_web/views/error_view.ex:9
+msgid "Not found"
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex_web/templates/user_registration/new.html.heex:15
+#: lib/memex_web/templates/user_reset_password/edit.html.heex:15
+#: lib/memex_web/templates/user_settings/edit.html.heex:21
+#: lib/memex_web/templates/user_settings/edit.html.heex:64
+#: lib/memex_web/templates/user_settings/edit.html.heex:119
+msgid "Oops, something went wrong! Please check the errors below."
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex_web/controllers/user_reset_password_controller.ex:63
+msgid "Reset password link is invalid or it has expired."
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex_web/controllers/user_registration_controller.ex:25
+#: lib/memex_web/controllers/user_registration_controller.ex:56
+msgid "Sorry, public registration is disabled"
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex_web/controllers/user_registration_controller.ex:15
+#: lib/memex_web/controllers/user_registration_controller.ex:46
+msgid "Sorry, this invite was not found or expired"
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex_web/controllers/user_settings_controller.ex:99
+msgid "Unable to delete user"
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex_web/views/error_view.ex:10
+msgid "Unauthorized"
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex_web/controllers/user_confirmation_controller.ex:54
+msgid "User confirmation link is invalid or it has expired."
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex_web/live/invite_live/index.ex:18
+msgid "You are not authorized to view this page"
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex_web/controllers/user_auth.ex:177
+msgid "You are not authorized to view this page."
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex_web/controllers/user_auth.ex:39
+#: lib/memex_web/controllers/user_auth.ex:161
+msgid "You must confirm your account and log in to access this page."
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex/accounts/user.ex:130
+msgid "did not change"
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex/accounts/user.ex:151
+msgid "does not match password"
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex/accounts/user.ex:188
+msgid "is not valid"
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex/accounts/user.ex:84
+msgid "must have the @ sign and no spaces"
+msgstr ""
diff --git a/priv/gettext/prompts.pot b/priv/gettext/prompts.pot
new file mode 100644
index 0000000..143b800
--- /dev/null
+++ b/priv/gettext/prompts.pot
@@ -0,0 +1,142 @@
+## This file is a PO Template file.
+##
+## "msgid"s here are often extracted from source code.
+## Add new translations manually only if they're dynamic
+## translations that can't be statically extracted.
+##
+## Run "mix gettext.extract" to bring this file up to
+## date. Leave "msgstr"s empty as changing them here has no
+## effect: edit them in PO (.po) files instead.
+msgid ""
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex_web/controllers/user_confirmation_controller.ex:38
+msgid "%{email} confirmed successfully."
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex_web/live/invite_live/form_component.ex:62
+msgid "%{invite_name} created successfully"
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex_web/live/invite_live/index.ex:53
+msgid "%{invite_name} deleted succesfully"
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex_web/live/invite_live/index.ex:114
+msgid "%{invite_name} disabled succesfully"
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex_web/live/invite_live/index.ex:90
+msgid "%{invite_name} enabled succesfully"
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex_web/live/invite_live/index.ex:68
+msgid "%{invite_name} updated succesfully"
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex_web/live/invite_live/form_component.ex:42
+msgid "%{invite_name} updated successfully"
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex_web/live/invite_live/index.ex:139
+msgid "%{user_email} deleted succesfully"
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex_web/controllers/user_settings_controller.ex:29
+msgid "A link to confirm your email change has been sent to the new address."
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex_web/templates/user_settings/edit.html.heex:133
+msgid "Are you sure you want to change your language?"
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex_web/live/invite_live/index.html.heex:101
+#: lib/memex_web/live/invite_live/index.html.heex:130
+msgid "Are you sure you want to delete %{email}? This action is permanent!"
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex_web/live/invite_live/index.html.heex:48
+msgid "Are you sure you want to delete the invite for %{invite_name}?"
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex_web/templates/user_settings/edit.html.heex:143
+msgid "Are you sure you want to delete your account?"
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex_web/components/topbar.ex:95
+msgid "Are you sure you want to log out?"
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex_web/live/invite_live/index.html.heex:73
+msgid "Are you sure you want to make %{invite_name} unlimited?"
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex_web/live/invite_live/index.ex:127
+msgid "Copied to clipboard"
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex_web/controllers/user_settings_controller.ex:77
+msgid "Email changed successfully."
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex_web/controllers/user_confirmation_controller.ex:23
+msgid "If your email is in our system and it has not been confirmed yet, you will receive an email with instructions shortly."
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex_web/controllers/user_reset_password_controller.ex:24
+msgid "If your email is in our system, you will receive instructions to reset your password shortly."
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex_web/controllers/user_settings_controller.ex:65
+msgid "Language updated successfully."
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex_web/controllers/user_session_controller.ex:23
+msgid "Logged out successfully."
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex_web/controllers/user_reset_password_controller.ex:46
+msgid "Password reset successfully."
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex_web/controllers/user_settings_controller.ex:49
+msgid "Password updated successfully."
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex_web/controllers/user_registration_controller.ex:74
+msgid "Please check your email to verify your account"
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex_web/live/invite_live/form_component.html.heex:30
+msgid "Saving..."
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/memex_web/controllers/user_settings_controller.ex:95
+msgid "Your account has been deleted"
+msgstr ""
diff --git a/test/memex/contexts_test.exs b/test/memex/contexts_test.exs
index 8431ec1..f2062ee 100644
--- a/test/memex/contexts_test.exs
+++ b/test/memex/contexts_test.exs
@@ -36,7 +36,13 @@ defmodule Memex.ContextsTest do
test "update_context/2 with valid data updates the context" do
context = context_fixture()
- update_attrs = %{content: "some updated content", tag: [], title: "some updated title", visibility: :private}
+
+ update_attrs = %{
+ content: "some updated content",
+ tag: [],
+ title: "some updated title",
+ visibility: :private
+ }
assert {:ok, %Context{} = context} = Contexts.update_context(context, update_attrs)
assert context.content == "some updated content"
diff --git a/test/memex/notes_test.exs b/test/memex/notes_test.exs
index 06b6d98..4b9ea29 100644
--- a/test/memex/notes_test.exs
+++ b/test/memex/notes_test.exs
@@ -36,7 +36,13 @@ defmodule Memex.NotesTest do
test "update_note/2 with valid data updates the note" do
note = note_fixture()
- update_attrs = %{content: "some updated content", tag: [], title: "some updated title", visibility: :private}
+
+ update_attrs = %{
+ content: "some updated content",
+ tag: [],
+ title: "some updated title",
+ visibility: :private
+ }
assert {:ok, %Note{} = note} = Notes.update_note(note, update_attrs)
assert note.content == "some updated content"
diff --git a/test/memex/pipelines_test.exs b/test/memex/pipelines_test.exs
index 18a4932..939928c 100644
--- a/test/memex/pipelines_test.exs
+++ b/test/memex/pipelines_test.exs
@@ -35,7 +35,12 @@ defmodule Memex.PipelinesTest do
test "update_pipeline/2 with valid data updates the pipeline" do
pipeline = pipeline_fixture()
- update_attrs = %{description: "some updated description", title: "some updated title", visibility: :private}
+
+ update_attrs = %{
+ description: "some updated description",
+ title: "some updated title",
+ visibility: :private
+ }
assert {:ok, %Pipeline{} = pipeline} = Pipelines.update_pipeline(pipeline, update_attrs)
assert pipeline.description == "some updated description"
diff --git a/test/memex/steps_test.exs b/test/memex/steps_test.exs
index cc7318b..2e0a233 100644
--- a/test/memex/steps_test.exs
+++ b/test/memex/steps_test.exs
@@ -35,7 +35,12 @@ defmodule Memex.StepsTest do
test "update_step/2 with valid data updates the step" do
step = step_fixture()
- update_attrs = %{description: "some updated description", position: 43, title: "some updated title"}
+
+ update_attrs = %{
+ description: "some updated description",
+ position: 43,
+ title: "some updated title"
+ }
assert {:ok, %Step{} = step} = Steps.update_step(step, update_attrs)
assert step.description == "some updated description"
diff --git a/test/memex_web/live/context_live_test.exs b/test/memex_web/live/context_live_test.exs
index d3ca969..492a52a 100644
--- a/test/memex_web/live/context_live_test.exs
+++ b/test/memex_web/live/context_live_test.exs
@@ -5,7 +5,12 @@ defmodule MemexWeb.ContextLiveTest do
import Memex.ContextsFixtures
@create_attrs %{content: "some content", tag: [], title: "some title", visibility: :public}
- @update_attrs %{content: "some updated content", tag: [], title: "some updated title", visibility: :private}
+ @update_attrs %{
+ content: "some updated content",
+ tag: [],
+ title: "some updated title",
+ visibility: :private
+ }
@invalid_attrs %{content: nil, tag: [], title: nil, visibility: nil}
defp create_context(_) do
diff --git a/test/memex_web/live/note_live_test.exs b/test/memex_web/live/note_live_test.exs
index acbde53..2455a7e 100644
--- a/test/memex_web/live/note_live_test.exs
+++ b/test/memex_web/live/note_live_test.exs
@@ -5,7 +5,12 @@ defmodule MemexWeb.NoteLiveTest do
import Memex.NotesFixtures
@create_attrs %{content: "some content", tag: [], title: "some title", visibility: :public}
- @update_attrs %{content: "some updated content", tag: [], title: "some updated title", visibility: :private}
+ @update_attrs %{
+ content: "some updated content",
+ tag: [],
+ title: "some updated title",
+ visibility: :private
+ }
@invalid_attrs %{content: nil, tag: [], title: nil, visibility: nil}
defp create_note(_) do
diff --git a/test/memex_web/live/pipeline_live_test.exs b/test/memex_web/live/pipeline_live_test.exs
index b996b9b..eeecd07 100644
--- a/test/memex_web/live/pipeline_live_test.exs
+++ b/test/memex_web/live/pipeline_live_test.exs
@@ -5,7 +5,11 @@ defmodule MemexWeb.PipelineLiveTest do
import Memex.PipelinesFixtures
@create_attrs %{description: "some description", title: "some title", visibility: :public}
- @update_attrs %{description: "some updated description", title: "some updated title", visibility: :private}
+ @update_attrs %{
+ description: "some updated description",
+ title: "some updated title",
+ visibility: :private
+ }
@invalid_attrs %{description: nil, title: nil, visibility: nil}
defp create_pipeline(_) do