From 88c0fbf10145ddd4ccd10ee432b4ca1aadd96a91 Mon Sep 17 00:00:00 2001 From: Melonai Date: Fri, 7 May 2021 17:11:50 +0200 Subject: Initial structure --- lib/rook_web/views/app_view.ex | 7 +++++++ lib/rook_web/views/error_helpers.ex | 30 ++++++++++++++++++++++++++++++ lib/rook_web/views/error_view.ex | 16 ++++++++++++++++ lib/rook_web/views/home_view.ex | 3 +++ lib/rook_web/views/layout_view.ex | 3 +++ 5 files changed, 59 insertions(+) create mode 100644 lib/rook_web/views/app_view.ex create mode 100644 lib/rook_web/views/error_helpers.ex create mode 100644 lib/rook_web/views/error_view.ex create mode 100644 lib/rook_web/views/home_view.ex create mode 100644 lib/rook_web/views/layout_view.ex (limited to 'lib/rook_web/views') 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 -- cgit 1.4.1