Create partials for shared user/profile inputs

This commit is contained in:
Christopher C. Wells 2021-04-22 11:38:28 -07:00
parent 78c3095036
commit 77ed32ee4d
8 changed files with 59 additions and 102 deletions

View File

@ -15,7 +15,7 @@ class UpdateUserRequest extends FormRequest
{
$rules = [
'username' => ['required', 'string', Rule::unique('users')->ignore($this->user)],
'name' => ['nullable', 'string'],
'name' => ['required', 'string'],
'password' => ['nullable', 'string', 'confirmed'],
'password_confirmation' => ['nullable', 'string'],
'admin' => ['nullable', 'boolean'],

View File

@ -8,53 +8,12 @@
@csrf
<div class="flex flex-col space-y-4">
<div class="flex flex-col space-y-4 md:flex-row md:space-x-4 md:space-y-0">
<!-- Username -->
<div class="flex-auto">
<x-inputs.label for="username" value="Username"/>
<x-inputs.input name="username"
type="text"
class="block mt-1 w-full"
autocapitalize="none"
:value="old('username', $user->username)"
:hasError="$errors->has('username')"
required />
</div>
<!-- Name -->
<div class="flex-auto">
<x-inputs.label for="name" value="Display name"/>
<x-inputs.input name="name"
type="text"
class="block mt-1 w-full"
:value="old('name', $user->name)"/>
</div>
@include('users.partials.inputs.username')
@include('users.partials.inputs.name')
</div>
<div class="flex flex-col space-y-4 md:flex-row md:space-x-4 md:space-y-0">
<!-- Password -->
<div class="flex-auto">
<x-inputs.label for="password" value="Password"/>
<x-inputs.input name="password"
type="password"
class="block mt-1 w-full"
:hasError="$errors->has('password')"
:required="!$user->exists"/>
</div>
<!-- Password confirm -->
<div class="flex-auto">
<x-inputs.label for="password_confirmation" value="Confirm Password"/>
<x-inputs.input name="password_confirmation"
type="password"
class="block mt-1 w-full"
:hasError="$errors->has('password')"
:required="!$user->exists"/>
</div>
@include('users.partials.inputs.password')
</div>
<!-- Image -->

View File

@ -17,8 +17,8 @@
{{ $user->getFirstMedia()('icon') }}
</a>
</div>
<div class="mt-2 text-gray-500">
{{ $user->name }}
</div>
@endif
<div class="mt-2 text-gray-500">
{{ $user->name }}
</div>
</x-app-layout>

View File

@ -9,65 +9,15 @@
@csrf
<div class="flex flex-col space-y-4">
<div class="flex flex-col space-y-4 md:flex-row md:space-x-4 md:space-y-0">
<!-- Username -->
<div class="flex-auto space-y-1">
<x-inputs.label for="username" value="Username"/>
<x-inputs.input name="username"
type="text"
class="block w-full"
autocapitalize="none"
:value="old('username', $user->username)"
:hasError="$errors->has('username')"
required />
</div>
<!-- Name -->
<div class="flex-auto space-y-1">
<x-inputs.label for="name" value="Display name"/>
<x-inputs.input name="name"
type="text"
class="block w-full"
:value="old('name', $user->name)"/>
</div>
@include('users.partials.inputs.username')
@include('users.partials.inputs.name')
</div>
<div class="flex flex-col space-y-4 md:flex-row md:space-x-4 md:space-y-0">
<!-- Password -->
<div class="flex-auto space-y-1">
<x-inputs.label for="password" value="Password"/>
<x-inputs.input name="password"
type="password"
class="block w-full"
:hasError="$errors->has('password')"
:required="!$user->exists"/>
</div>
<!-- Password confirm -->
<div class="flex-auto space-y-1">
<x-inputs.label for="password_confirmation" value="Confirm Password"/>
<x-inputs.input name="password_confirmation"
type="password"
class="block w-full"
:hasError="$errors->has('password')"
:required="!$user->exists"/>
</div>
@include('users.partials.inputs.password')
</div>
<!-- Admin -->
<div class="space-y-1">
<x-inputs.label for="admin" value="Site Admin" class="inline-block"/>
<x-inputs.select name="admin"
class="block"
:options="[['value' => 0, 'label' => 'No'], ['value' => 1, 'label' => 'Yes']]"
:selectedValue="old('admin', $user->admin)">
</x-inputs.select>
</div>
@include('users.partials.inputs.admin')
<!-- Image -->
<div class="flex flex-col space-y-4 md:flex-row md:space-x-4 md:space-y-0">

View File

@ -0,0 +1,9 @@
<div class="space-y-1">
<x-inputs.label for="admin" value="Site Admin" class="inline-block"/>
<x-inputs.select name="admin"
class="block"
:options="[['value' => 0, 'label' => 'No'], ['value' => 1, 'label' => 'Yes']]"
:selectedValue="old('admin', $user->admin)">
</x-inputs.select>
</div>

View File

@ -0,0 +1,10 @@
<div class="flex-auto space-y-1">
<x-inputs.label for="name" value="Display name"/>
<x-inputs.input name="name"
type="text"
class="block w-full"
:value="old('name', $user->name)"
:hasError="$errors->has('name')"
required />
</div>

View File

@ -0,0 +1,18 @@
<div class="flex-auto space-y-1">
<x-inputs.label for="password" value="Password"/>
<x-inputs.input name="password"
type="password"
class="block w-full"
:hasError="$errors->has('password')"
:required="!$user->exists"/>
</div>
<div class="flex-auto space-y-1">
<x-inputs.label for="password_confirmation" value="Confirm Password"/>
<x-inputs.input name="password_confirmation"
type="password"
class="block w-full"
:hasError="$errors->has('password')"
:required="!$user->exists"/>
</div>

View File

@ -0,0 +1,11 @@
<div class="flex-auto space-y-1">
<x-inputs.label for="username" value="Username"/>
<x-inputs.input name="username"
type="text"
class="block w-full"
autocapitalize="none"
:value="old('username', $user->username)"
:hasError="$errors->has('username')"
required />
</div>