aboutsummaryrefslogtreecommitdiff
path: root/lib/rook_web/views
diff options
context:
space:
mode:
Diffstat (limited to 'lib/rook_web/views')
-rw-r--r--lib/rook_web/views/app_view.ex7
-rw-r--r--lib/rook_web/views/error_helpers.ex30
-rw-r--r--lib/rook_web/views/error_view.ex16
-rw-r--r--lib/rook_web/views/home_view.ex3
-rw-r--r--lib/rook_web/views/layout_view.ex3
5 files changed, 59 insertions, 0 deletions
diff --git a/lib/rook_web/views/app_view.ex b/lib/rook_web/views/app_view.ex
new file mode 100644
index 0000000..66c7f6a
--- /dev/null
+++ b/lib/rook_web/views/app_view.ex
@@ -0,0 +1,7 @@
+defmodule RookWeb.AppView do
+ use RookWeb, :view
+
+ def render_app(conn, token, entrypoint) do
+ render("entrypoint.html", conn: conn, token: token, entrypoint: entrypoint)
+ end
+end
diff --git a/lib/rook_web/views/error_helpers.ex b/lib/rook_web/views/error_helpers.ex
new file mode 100644
index 0000000..a905b5e
--- /dev/null
+++ b/lib/rook_web/views/error_helpers.ex
@@ -0,0 +1,30 @@
+defmodule RookWeb.ErrorHelpers do
+ @moduledoc """
+ Conveniences for translating and building error messages.
+ """
+
+ use Phoenix.HTML
+
+ @doc """
+ Generates tag for inlined form input errors.
+ """
+ def error_tag(form, field) do
+ Enum.map(Keyword.get_values(form.errors, field), fn error ->
+ content_tag(:span, translate_error(error),
+ class: "invalid-feedback",
+ phx_feedback_for: input_name(form, field)
+ )
+ end)
+ end
+
+ @doc """
+ Translates an error message.
+ """
+ def translate_error({msg, opts}) do
+ # Because the error messages we show in our forms and APIs
+ # are defined inside Ecto, we need to translate them dynamically.
+ Enum.reduce(opts, msg, fn {key, value}, acc ->
+ String.replace(acc, "%{#{key}}", to_string(value))
+ end)
+ end
+end
diff --git a/lib/rook_web/views/error_view.ex b/lib/rook_web/views/error_view.ex
new file mode 100644
index 0000000..6ffc93d
--- /dev/null
+++ b/lib/rook_web/views/error_view.ex
@@ -0,0 +1,16 @@
+defmodule RookWeb.ErrorView do
+ use RookWeb, :view
+
+ # If you want to customize a particular status code
+ # for a certain format, you may uncomment below.
+ # def render("500.html", _assigns) do
+ # "Internal Server Error"
+ # end
+
+ # By default, Phoenix returns the status message from
+ # the template name. For example, "404.html" becomes
+ # "Not Found".
+ def template_not_found(template, _assigns) do
+ Phoenix.Controller.status_message_from_template(template)
+ end
+end
diff --git a/lib/rook_web/views/home_view.ex b/lib/rook_web/views/home_view.ex
new file mode 100644
index 0000000..700ea71
--- /dev/null
+++ b/lib/rook_web/views/home_view.ex
@@ -0,0 +1,3 @@
+defmodule RookWeb.HomeView do
+ use RookWeb, :view
+end
diff --git a/lib/rook_web/views/layout_view.ex b/lib/rook_web/views/layout_view.ex
new file mode 100644
index 0000000..19d121f
--- /dev/null
+++ b/lib/rook_web/views/layout_view.ex
@@ -0,0 +1,3 @@
+defmodule RookWeb.LayoutView do
+ use RookWeb, :view
+end