diff options
Diffstat (limited to 'lib/aggiedit_web/views')
-rw-r--r-- | lib/aggiedit_web/views/error_helpers.ex | 47 | ||||
-rw-r--r-- | lib/aggiedit_web/views/error_view.ex | 16 | ||||
-rw-r--r-- | lib/aggiedit_web/views/layout_view.ex | 7 | ||||
-rw-r--r-- | lib/aggiedit_web/views/page_view.ex | 3 | ||||
-rw-r--r-- | lib/aggiedit_web/views/user_confirmation_view.ex | 3 | ||||
-rw-r--r-- | lib/aggiedit_web/views/user_registration_view.ex | 3 | ||||
-rw-r--r-- | lib/aggiedit_web/views/user_reset_password_view.ex | 3 | ||||
-rw-r--r-- | lib/aggiedit_web/views/user_session_view.ex | 3 | ||||
-rw-r--r-- | lib/aggiedit_web/views/user_settings_view.ex | 3 |
9 files changed, 88 insertions, 0 deletions
diff --git a/lib/aggiedit_web/views/error_helpers.ex b/lib/aggiedit_web/views/error_helpers.ex new file mode 100644 index 0000000..651e48f --- /dev/null +++ b/lib/aggiedit_web/views/error_helpers.ex @@ -0,0 +1,47 @@ +defmodule AggieditWeb.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 using gettext. + """ + def translate_error({msg, opts}) do + # When using gettext, we typically pass the strings we want + # to translate as a static argument: + # + # # Translate "is invalid" in the "errors" domain + # dgettext("errors", "is invalid") + # + # # Translate the number of files with plural rules + # dngettext("errors", "1 file", "%{count} files", count) + # + # Because the error messages we show in our forms and APIs + # are defined inside Ecto, we need to translate them dynamically. + # This requires us to call the Gettext module passing our gettext + # backend as first argument. + # + # Note we use the "errors" domain, which means translations + # should be written to the errors.po file. The :count option is + # set by Ecto and indicates we should also apply plural rules. + if count = opts[:count] do + Gettext.dngettext(AggieditWeb.Gettext, "errors", msg, msg, count, opts) + else + Gettext.dgettext(AggieditWeb.Gettext, "errors", msg, opts) + end + end +end diff --git a/lib/aggiedit_web/views/error_view.ex b/lib/aggiedit_web/views/error_view.ex new file mode 100644 index 0000000..3615b3b --- /dev/null +++ b/lib/aggiedit_web/views/error_view.ex @@ -0,0 +1,16 @@ +defmodule AggieditWeb.ErrorView do + use AggieditWeb, :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/aggiedit_web/views/layout_view.ex b/lib/aggiedit_web/views/layout_view.ex new file mode 100644 index 0000000..8f4b14f --- /dev/null +++ b/lib/aggiedit_web/views/layout_view.ex @@ -0,0 +1,7 @@ +defmodule AggieditWeb.LayoutView do + use AggieditWeb, :view + + # Phoenix LiveDashboard is available only in development by default, + # so we instruct Elixir to not warn if the dashboard route is missing. + @compile {:no_warn_undefined, {Routes, :live_dashboard_path, 2}} +end diff --git a/lib/aggiedit_web/views/page_view.ex b/lib/aggiedit_web/views/page_view.ex new file mode 100644 index 0000000..f7e6157 --- /dev/null +++ b/lib/aggiedit_web/views/page_view.ex @@ -0,0 +1,3 @@ +defmodule AggieditWeb.PageView do + use AggieditWeb, :view +end diff --git a/lib/aggiedit_web/views/user_confirmation_view.ex b/lib/aggiedit_web/views/user_confirmation_view.ex new file mode 100644 index 0000000..aa856e4 --- /dev/null +++ b/lib/aggiedit_web/views/user_confirmation_view.ex @@ -0,0 +1,3 @@ +defmodule AggieditWeb.UserConfirmationView do + use AggieditWeb, :view +end diff --git a/lib/aggiedit_web/views/user_registration_view.ex b/lib/aggiedit_web/views/user_registration_view.ex new file mode 100644 index 0000000..cf3d53d --- /dev/null +++ b/lib/aggiedit_web/views/user_registration_view.ex @@ -0,0 +1,3 @@ +defmodule AggieditWeb.UserRegistrationView do + use AggieditWeb, :view +end diff --git a/lib/aggiedit_web/views/user_reset_password_view.ex b/lib/aggiedit_web/views/user_reset_password_view.ex new file mode 100644 index 0000000..40d6f4c --- /dev/null +++ b/lib/aggiedit_web/views/user_reset_password_view.ex @@ -0,0 +1,3 @@ +defmodule AggieditWeb.UserResetPasswordView do + use AggieditWeb, :view +end diff --git a/lib/aggiedit_web/views/user_session_view.ex b/lib/aggiedit_web/views/user_session_view.ex new file mode 100644 index 0000000..b87ce6b --- /dev/null +++ b/lib/aggiedit_web/views/user_session_view.ex @@ -0,0 +1,3 @@ +defmodule AggieditWeb.UserSessionView do + use AggieditWeb, :view +end diff --git a/lib/aggiedit_web/views/user_settings_view.ex b/lib/aggiedit_web/views/user_settings_view.ex new file mode 100644 index 0000000..8257d7e --- /dev/null +++ b/lib/aggiedit_web/views/user_settings_view.ex @@ -0,0 +1,3 @@ +defmodule AggieditWeb.UserSettingsView do + use AggieditWeb, :view +end |