Packages
pow
1.0.7
1.0.39
1.0.38
1.0.37
1.0.36
1.0.35
1.0.34
1.0.33
1.0.32
1.0.31
1.0.30
1.0.29
1.0.28
1.0.27
1.0.26
1.0.25
1.0.24
1.0.23
1.0.22
1.0.21
1.0.20
1.0.19
1.0.18
1.0.17
1.0.16
1.0.15
1.0.14
1.0.13
1.0.12
1.0.11
1.0.10
1.0.9
1.0.8
1.0.7
1.0.6
1.0.5
1.0.4
1.0.3
1.0.2
1.0.1
1.0.0
1.0.0-rc.4
1.0.0-rc.3
1.0.0-rc.2
1.0.0-rc.1
1.0.0-rc.0
0.1.0-rc.1
0.1.0-alpha.8
0.1.0-alpha.7
retired
0.1.0-alpha.6
0.1.0-alpha.5
0.1.0-alpha.4
0.1.0-alpha.3
0.1.0-alpha.2
0.1.0-alpha.1
0.1.0-alpha
Robust user authentication solution
Security advisory:
This version has known vulnerabilities.
View advisories
Current section
Files
Jump to
Current section
Files
lib/pow/phoenix/html/bootstrap.ex
defmodule Pow.Phoenix.HTML.Bootstrap do
# TODO: Remove module by 1.1.0 and only support Phoenix 1.4.0
@moduledoc """
Module that helps build HTML for Phoenix with Bootstrap CSS.
"""
import Pow.Phoenix.HTML.FormTemplate, only: [inspect_key: 1]
@form_template EEx.compile_string(
"""
<%%= form_for @changeset, @action, [as: :user], fn f -> %>
<%%= if @changeset.action do %>
<div class="alert alert-danger">
<p>Oops, something went wrong! Please check the errors below.</p>
</div>
<%% end %>
<%= for {label, input, error} <- inputs, input do %>
<div class="form-group">
<%= label %>
<%= input %>
<%= error %>
</div>
<% end %>
<div class="form-group">
<%%= submit <%= inspect button_label %>, class: "btn btn-primary" %>
</div>
<%% end %>
""")
@doc """
Renders a form.
"""
@spec render_form(list(), binary()) :: Macro.t()
def render_form(inputs, button_label) do
inputs = for {type, key} <- inputs, do: input(type, key)
unquote(@form_template)
end
defp input(:text, key) do
{label(key), ~s(<%= text_input f, #{inspect_key(key)}, class: "form-control" %>), error(key)}
end
defp input(:password, key) do
{label(key), ~s(<%= password_input f, #{inspect_key(key)}, class: "form-control" %>), error(key)}
end
defp label(key) do
~s(<%= label f, #{inspect_key(key)}, class: "control-label" %>)
end
defp error(key) do
~s(<%= error_tag f, #{inspect_key(key)} %>)
end
end