This commit is contained in:
parent
33d4fa66c8
commit
06574a932d
6 changed files with 201 additions and 145 deletions
|
|
@ -12,8 +12,8 @@ defmodule MvWeb.UserLive.Form do
|
|||
|
||||
<.form for={@form} id="user-form" phx-change="validate" phx-submit="save">
|
||||
<.input field={@form[:email]} label={gettext("Email")} required type="email" />
|
||||
|
||||
<!-- Password Section -->
|
||||
|
||||
<!-- Password Section -->
|
||||
<div class="mt-6">
|
||||
<label class="flex items-center space-x-2">
|
||||
<input
|
||||
|
|
@ -27,28 +27,28 @@ defmodule MvWeb.UserLive.Form do
|
|||
{if @user, do: gettext("Change Password"), else: gettext("Set Password")}
|
||||
</span>
|
||||
</label>
|
||||
|
||||
|
||||
<%= if @show_password_fields do %>
|
||||
<div class="mt-4 space-y-4 p-4 bg-gray-50 rounded-lg">
|
||||
<.input
|
||||
field={@form[:password]}
|
||||
label={gettext("Password")}
|
||||
type="password"
|
||||
<.input
|
||||
field={@form[:password]}
|
||||
label={gettext("Password")}
|
||||
type="password"
|
||||
required
|
||||
autocomplete="new-password"
|
||||
/>
|
||||
|
||||
<!-- Only show password confirmation for new users (register_with_password) -->
|
||||
<!-- Only show password confirmation for new users (register_with_password) -->
|
||||
<%= if !@user do %>
|
||||
<.input
|
||||
field={@form[:password_confirmation]}
|
||||
label={gettext("Confirm Password")}
|
||||
type="password"
|
||||
<.input
|
||||
field={@form[:password_confirmation]}
|
||||
label={gettext("Confirm Password")}
|
||||
type="password"
|
||||
required
|
||||
autocomplete="new-password"
|
||||
/>
|
||||
<% end %>
|
||||
|
||||
|
||||
<div class="text-sm text-gray-600">
|
||||
<p><strong>{gettext("Password requirements")}:</strong></p>
|
||||
<ul class="list-disc list-inside text-xs mt-1 space-y-1">
|
||||
|
|
@ -57,7 +57,7 @@ defmodule MvWeb.UserLive.Form do
|
|||
<li>{gettext("Consider using special characters")}</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
|
||||
<%= if @user do %>
|
||||
<div class="mt-3 p-3 bg-orange-50 border border-orange-200 rounded">
|
||||
<p class="text-sm text-orange-800">
|
||||
|
|
@ -124,17 +124,15 @@ defmodule MvWeb.UserLive.Form do
|
|||
@impl true
|
||||
def handle_event("toggle_password_section", _params, socket) do
|
||||
show_password_fields = !socket.assigns.show_password_fields
|
||||
|
||||
socket =
|
||||
|
||||
socket =
|
||||
socket
|
||||
|> assign(:show_password_fields, show_password_fields)
|
||||
|> assign_form()
|
||||
|
||||
|
||||
{:noreply, socket}
|
||||
end
|
||||
|
||||
|
||||
|
||||
def handle_event("validate", %{"user" => user_params}, socket) do
|
||||
{:noreply, assign(socket, form: AshPhoenix.Form.validate(socket.assigns.form, user_params))}
|
||||
end
|
||||
|
|
@ -167,6 +165,7 @@ defmodule MvWeb.UserLive.Form do
|
|||
else
|
||||
# For new users, use password registration if password fields are shown
|
||||
action = if show_password_fields, do: :register_with_password, else: :create_user
|
||||
|
||||
AshPhoenix.Form.for_create(Mv.Accounts.User, action,
|
||||
domain: Mv.Accounts,
|
||||
as: "user"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue