60 lines
2.4 KiB
Text
60 lines
2.4 KiB
Text
<div class="row justify-content-center">
|
|
<div class="col-11 col-sm-8 col-md-6 col-lg-5 col-xl-4 col-xxl-3">
|
|
|
|
<h2><%= icon_div @socket, "bi-person-plus", [class: "icon baseline"] %>
|
|
Register</h2>
|
|
<p class="lead">Registration gains additional features, like remembering your song request history.</p>
|
|
|
|
<%= form_for @changeset, "#", [phx_change: :validate, phx_submit: :save, novalidate: true, id: "reg_form"], fn f -> %>
|
|
|
|
<%= label f, :email, class: "form-label" %>
|
|
<div class="inner-addon left-addon mb-3" phx-feedback-for="<%= input_id(f, :email) %>">
|
|
<%= icon_div @socket, "bi-at", [class: "icon is-left text-muted fs-5"] %>
|
|
<%= email_input f, :email,
|
|
value: input_value(f, :email),
|
|
class: input_class(f, :email, "form-control"),
|
|
placeholder: "e.g., babka@73k.us",
|
|
maxlength: User.max_email,
|
|
autofocus: true,
|
|
phx_debounce: "blur",
|
|
aria_describedby: error_ids(f, :email)
|
|
%>
|
|
<%= error_tag f, :email %>
|
|
</div>
|
|
|
|
<%= label f, :password, class: "form-label" %>
|
|
<div class="inner-addon left-addon mb-3" phx-feedback-for="<%= input_id(f, :password) %>">
|
|
<%= icon_div @socket, "bi-key", [class: "icon is-left text-muted fs-5"] %>
|
|
<%= password_input f, :password,
|
|
value: input_value(f, :password),
|
|
class: input_class(f, :password, "form-control"),
|
|
maxlength: User.max_password,
|
|
phx_debounce: "250",
|
|
aria_describedby: error_ids(f, :password)
|
|
%>
|
|
<%= error_tag f, :password %>
|
|
</div>
|
|
|
|
<div class="mb-3">
|
|
<%= submit (@trigger_submit && "Saving..." || "Register"),
|
|
class: "btn btn-primary",
|
|
disabled: @trigger_submit || !@changeset.valid?,
|
|
aria_disabled: (@trigger_submit || !@changeset.valid?) && "true" || false,
|
|
phx_disable_with: "Saving..."
|
|
%>
|
|
</div>
|
|
|
|
<% end %>
|
|
|
|
<p>
|
|
<%= link "Log in", to: Routes.user_session_path(@socket, :new) %> |
|
|
<%= link "Forgot your password?", to: Routes.user_reset_password_path(@socket, :new) %>
|
|
</p>
|
|
|
|
<%# hidden form for initial login after registration %>
|
|
<%= form_for :user, Routes.user_session_path(@socket, :create), [phx_trigger_action: @trigger_submit, id: "reg_trigger"], fn f -> %>
|
|
<%= hidden_input f, :params_token, value: Phoenix.Token.encrypt(Bones73kWeb.Endpoint, "login_params", @login_params) %>
|
|
<% end %>
|
|
|
|
</div>
|
|
</div>
|