172 lines
7.4 KiB
PHP
172 lines
7.4 KiB
PHP
<div class="row">
|
|
{{-- FIRSTNAME --}}
|
|
<div class="col-12 col-md-6 mb-3">
|
|
<fieldset class="h-100 border p-3">
|
|
<legend>{{ __('Prénom') }}</legend>
|
|
<div class="row">
|
|
<div class="col-12">
|
|
@include('bo.partials.inputs.varchar', [
|
|
'id' => 'userFirstname',
|
|
'label' => __('Prénom de l\':model', ['model' => __('models.classes.user')]),
|
|
'hasWordCounter' => true,
|
|
'name' => 'first_name',
|
|
'required' => true,
|
|
'model' => $userModel ?? null,
|
|
'helper' => __('validation.between.string', [
|
|
'attribute' => __('prénom de l\':model', ['model' => __('models.classes.user')]),
|
|
'min' => 3,
|
|
'max' => 255,
|
|
]),
|
|
'placeholder' => __('Un beau prénom'),
|
|
])
|
|
</div>
|
|
</div>
|
|
</fieldset>
|
|
</div>
|
|
{{-- LASTNAME --}}
|
|
<div class="col-12 col-md-6 mb-3">
|
|
<fieldset class="h-100 border p-3">
|
|
<legend>{{ __('Nom') }}</legend>
|
|
<div class="row">
|
|
<div class="col-12">
|
|
@include('bo.partials.inputs.varchar', [
|
|
'id' => 'userLastname',
|
|
'label' => __('Nom de l\':model', ['model' => __('models.classes.user')]),
|
|
'hasWordCounter' => true,
|
|
'name' => 'last_name',
|
|
'required' => true,
|
|
'model' => $userModel ?? null,
|
|
'helper' => __('validation.between.string', [
|
|
'attribute' => __('nom de l\':model', ['model' => __('models.classes.user')]),
|
|
'min' => 3,
|
|
'max' => 255,
|
|
]),
|
|
'placeholder' => __('Un beau nom'),
|
|
])
|
|
</div>
|
|
</div>
|
|
</fieldset>
|
|
</div>
|
|
{{-- EMAIL --}}
|
|
<div class="col-12 col-md-6 mb-3">
|
|
<fieldset class="h-100 border p-3">
|
|
<legend>{{ __('E-mail') }}</legend>
|
|
<div class="row">
|
|
<div class="col-12">
|
|
@include('bo.partials.inputs.varchar-email', [
|
|
'id' => 'userEmail',
|
|
'label' => __('E-mail de l\':model', ['model' => __('models.classes.user')]),
|
|
'name' => 'email',
|
|
'required' => true,
|
|
'model' => $userModel ?? null,
|
|
'helper' => __('validation.email', [
|
|
'attribute' => __('E-mail de l\':model', ['model' => __('models.classes.user')]),
|
|
]),
|
|
'placeholder' => __('aaaa.bbb@gmail.com'),
|
|
])
|
|
</div>
|
|
</div>
|
|
</fieldset>
|
|
</div>
|
|
{{-- ROLE --}}
|
|
<div class="col-12 col-md-6 mb-3">
|
|
<fieldset class="h-100 border p-3">
|
|
<legend>{{ __('Rôle') }}</legend>
|
|
<div class="row">
|
|
<div class="col-12">
|
|
@include('bo.partials.inputs.tinyint-enum', [
|
|
'id' => 'userRole',
|
|
'label' => __('Associer un rôle'),
|
|
'name' => 'role',
|
|
'model' => $userModel ?? null,
|
|
'required' => true,
|
|
'associatedModels' => Arr::where(
|
|
\App\Enums\Users\RoleEnum::toArray(),
|
|
fn(object $role) => $role->value >= auth('backend')->user()->role->value()),
|
|
'helper' => __('Sélectionnez un rôle dans la liste déroulante.'),
|
|
])
|
|
</div>
|
|
</div>
|
|
</fieldset>
|
|
</div>
|
|
{{-- PASSWORD --}}
|
|
<div class="col-12 mb-3">
|
|
<fieldset class="h-100 border p-3">
|
|
<legend>{{ __('Mot de passe') }}</legend>
|
|
<div class="row">
|
|
<div class="col-12 col-md-6 mb-3">
|
|
@include('bo.partials.inputs.varchar-password', [
|
|
'id' => 'userPassword',
|
|
'label' => __('Mot de passe de l\':model', ['model' => __('models.classes.user')]),
|
|
'name' => 'password',
|
|
'hasWordCounter' => true,
|
|
'required' => !$userModel->exists,
|
|
'model' => null,
|
|
'helper' => __(
|
|
'Doît respecter certaines contraintes (8 caractères minimum, lettres, chiffres, caractères spéciaux).'),
|
|
])
|
|
</div>
|
|
<div class="col-12 col-md-6 mb-3">
|
|
@include('bo.partials.inputs.varchar-password', [
|
|
'id' => 'userPassword_confirmation',
|
|
'label' => __('Confirmation du mot de passe de l\':model', [
|
|
'model' => __('models.classes.user'),
|
|
]),
|
|
'name' => 'password_confirmation',
|
|
'hasWordCounter' => true,
|
|
'required' => !$userModel->exists,
|
|
'model' => null,
|
|
'helper' => __('Doît correspondre au mot de passe saisi précédemment.'),
|
|
])
|
|
</div>
|
|
</div>
|
|
</fieldset>
|
|
</div>
|
|
{{-- STATUS --}}
|
|
<div class="col-12 col-md-6 mb-3">
|
|
<fieldset class="h-100 border p-3">
|
|
<legend>{{ __('Visibilité') }}</legend>
|
|
<div class="row">
|
|
<div class="col-12">
|
|
@include('bo.partials.inputs.tinyint-boolean', [
|
|
'id' => 'userPublished',
|
|
'name' => 'published',
|
|
'label' => __('État de publication de l\':model', ['model' => __('models.classes.user')]),
|
|
'helper' => __('Deux réponses possibles : oui ou non.'),
|
|
'model' => $userModel ?? null,
|
|
])
|
|
</div>
|
|
</div>
|
|
</fieldset>
|
|
</div>
|
|
<div class="row">
|
|
<div class="col text-center">
|
|
<p><b>{{ __('* Champs obligatoires') }}</b></p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
@push('scripts')
|
|
<script nonce="{{ $nonce }}">
|
|
document.addEventListener("DOMContentLoaded", () => {
|
|
// Submit button clone.
|
|
const submit = document.getElementById('formSubmit')
|
|
submitClone = document.getElementById('formSubmitClone');
|
|
submitClone.addEventListener('click', (event) => {
|
|
event.preventDefault();
|
|
submit.click('');
|
|
})
|
|
|
|
// If we edit the password, the confirmation is required.
|
|
const passwordInput = document.getElementById('userPassword');
|
|
const confirmPasswordInput = document.getElementById('userPassword_confirmation');
|
|
passwordInput.addEventListener('input', () => {
|
|
if (passwordInput.value !== '') {
|
|
confirmPasswordInput.required = true;
|
|
} else {
|
|
confirmPasswordInput.required = false;
|
|
}
|
|
})
|
|
});
|
|
</script>
|
|
@endpush
|