72 lines
2.4 KiB
Text
72 lines
2.4 KiB
Text
<%= form_for @changeset, "#", [
|
|
phx_target: @myself,
|
|
phx_change: "validate",
|
|
phx_submit: "save"
|
|
], fn f -> %>
|
|
|
|
<div class="modal-body">
|
|
|
|
<div class="mb-3" phx-feedback-for="<%= input_id(f, :email)%>">
|
|
<%= label f, :email, class: "form-label" %>
|
|
<div class="input-group has-validation">
|
|
<span class="input-group-text">
|
|
<%= icon_div @socket, "bi-at", [class: "icon"] %>
|
|
</span>
|
|
<%= 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: "250",
|
|
aria_describedby: error_ids(f, :email)
|
|
%>
|
|
<%= error_tag f, :email %>
|
|
</div>
|
|
</div>
|
|
|
|
<%= if Roles.can?(@current_user, %User{}, :edit_role) do %>
|
|
<%= label f, :role, class: "form-label" %>
|
|
<div class="input-group mb-3">
|
|
<span class="input-group-text">
|
|
<%= icon_div @socket, "bi-shield-shaded", [class: "icon"] %>
|
|
</span>
|
|
<%= select f, :role, Enum.map(User.roles(), fn {k, _v} -> {String.capitalize(Atom.to_string(k)), k} end), class: "form-select" %>
|
|
<span class="valid-feedback text-primary" style="display: block;">
|
|
<%= role_description(input_value(f, :role)) %>
|
|
</span>
|
|
</div>
|
|
<% else %>
|
|
<%= hidden_input f, :role, value: input_value(f, :role) %>
|
|
<% end %>
|
|
|
|
<div phx-feedback-for="<%= input_id(f, :password) %>">
|
|
<%= label f, :password, class: "form-label" %>
|
|
<div class="input-group has-validation">
|
|
<span class="input-group-text">
|
|
<%= icon_div @socket, "bi-key", [class: "icon"] %>
|
|
</span>
|
|
<%= password_input f, :password,
|
|
value: input_value(f, :password),
|
|
class: input_class(f, :password, "form-control"),
|
|
maxlength: User.max_password,
|
|
aria_describedby: error_ids(f, :password)
|
|
%>
|
|
<%= error_tag f, :password %>
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
<div class="modal-footer">
|
|
|
|
<%= link "Cancel", to: "#", class: "btn", phx_click: "cancel", phx_target: @myself %>
|
|
<%= submit "Save",
|
|
class: "btn btn-primary ",
|
|
disabled: !@changeset.valid?,
|
|
aria_disabled: !@changeset.valid? && "true" || false,
|
|
phx_disable_with: "Saving..."
|
|
%>
|
|
|
|
</div>
|
|
|
|
<% end %>
|