183 lines
9.1 KiB
PHP
183 lines
9.1 KiB
PHP
@extends('layout.layout')
|
|
|
|
@php
|
|
$title = 'Edit Pengguna';
|
|
$subTitle = 'Manajemen Pengguna';
|
|
@endphp
|
|
|
|
@section('content')
|
|
<div class="card basic-data-table">
|
|
<div class="card-body">
|
|
<!-- Header Section -->
|
|
<div class="d-flex flex-column flex-md-row justify-content-between align-items-start align-items-md-center mb-4 gap-3">
|
|
<div>
|
|
<h5 class="mb-0">Edit Pengguna</h5>
|
|
</div>
|
|
<div>
|
|
<a href="{{ route('admin.users.index') }}" class="btn btn-secondary btn-sm d-flex align-items-center gap-2">
|
|
<iconify-icon icon="iconoir:arrow-left"></iconify-icon>
|
|
<span>Kembali</span>
|
|
</a>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Error Messages -->
|
|
@if ($errors->any())
|
|
<div class="alert alert-danger alert-dismissible fade show" role="alert">
|
|
<div class="d-flex align-items-center mb-2">
|
|
<iconify-icon icon="material-symbols:error" class="me-2"></iconify-icon>
|
|
<strong>Terjadi kesalahan:</strong>
|
|
</div>
|
|
<ul class="mb-0 ps-3">
|
|
@foreach ($errors->all() as $error)
|
|
<li>{{ $error }}</li>
|
|
@endforeach
|
|
</ul>
|
|
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
|
|
</div>
|
|
@endif
|
|
|
|
<!-- Form -->
|
|
<form method="POST" action="{{ route('admin.users.update', $user) }}" class="needs-validation" novalidate>
|
|
@csrf
|
|
@method('PUT')
|
|
|
|
<!-- Personal Information Section -->
|
|
<div class="mb-4">
|
|
<h6 class="mb-3 text-primary d-flex align-items-center">
|
|
<iconify-icon icon="mdi:account-circle" class="me-2"></iconify-icon>
|
|
Informasi Personal
|
|
</h6>
|
|
<div class="row g-3">
|
|
<div class="col-12 col-md-6">
|
|
<label class="form-label fw-medium">
|
|
Nama Lengkap <span class="text-danger">*</span>
|
|
</label>
|
|
<input type="text"
|
|
name="name"
|
|
class="form-control @error('name') is-invalid @enderror"
|
|
required
|
|
value="{{ old('name', $user->name) }}"
|
|
placeholder="Masukkan nama lengkap">
|
|
@error('name')
|
|
<div class="invalid-feedback">{{ $message }}</div>
|
|
@enderror
|
|
</div>
|
|
|
|
<div class="col-12 col-md-6">
|
|
<label class="form-label fw-medium">
|
|
Email <span class="text-danger">*</span>
|
|
</label>
|
|
<input type="email"
|
|
name="email"
|
|
class="form-control @error('email') is-invalid @enderror"
|
|
required
|
|
value="{{ old('email', $user->email) }}"
|
|
placeholder="Masukkan email">
|
|
@error('email')
|
|
<div class="invalid-feedback">{{ $message }}</div>
|
|
@enderror
|
|
</div>
|
|
|
|
<div class="col-12 col-md-6">
|
|
<label class="form-label fw-medium">
|
|
Username <span class="text-danger">*</span>
|
|
</label>
|
|
<input type="text"
|
|
name="username"
|
|
class="form-control @error('username') is-invalid @enderror"
|
|
required
|
|
value="{{ old('username', $user->username) }}"
|
|
placeholder="Masukkan username">
|
|
@error('username')
|
|
<div class="invalid-feedback">{{ $message }}</div>
|
|
@enderror
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Divider -->
|
|
<hr class="my-4">
|
|
|
|
<!-- Password Section -->
|
|
<div class="mb-4">
|
|
<h6 class="mb-3 text-primary d-flex align-items-center">
|
|
<iconify-icon icon="mdi:lock" class="me-2"></iconify-icon>
|
|
Keamanan
|
|
</h6>
|
|
<div class="row g-3">
|
|
<div class="col-12 col-md-6">
|
|
<label class="form-label fw-medium">Password Baru</label>
|
|
<input type="password"
|
|
name="password"
|
|
class="form-control @error('password') is-invalid @enderror"
|
|
placeholder="Kosongkan jika tidak ingin mengubah">
|
|
<div class="form-text d-flex align-items-center">
|
|
<iconify-icon icon="mdi:information" class="me-1"></iconify-icon>
|
|
Kosongkan jika tidak ingin mengubah password. Password minimal 8 karakter dengan huruf besar, kecil, angka, dan simbol.
|
|
</div>
|
|
@error('password')
|
|
<div class="invalid-feedback">{{ $message }}</div>
|
|
@enderror
|
|
</div>
|
|
|
|
<div class="col-12 col-md-6">
|
|
<label class="form-label fw-medium">Konfirmasi Password Baru</label>
|
|
<input type="password"
|
|
name="password_confirmation"
|
|
class="form-control"
|
|
placeholder="Konfirmasi password baru">
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Roles Section -->
|
|
<div class="mb-4">
|
|
<h6 class="mb-3 text-primary d-flex align-items-center">
|
|
<iconify-icon icon="mdi:shield-account" class="me-2"></iconify-icon>
|
|
Roles & Permissions
|
|
</h6>
|
|
<div class="p-3 bg-light rounded-3">
|
|
@if ($roles->count() > 0)
|
|
<div class="row g-2">
|
|
@foreach ($roles as $role)
|
|
<div class="col-12 col-sm-6 col-md-4">
|
|
<div class="form-check style-check d-flex align-items-center gap-2">
|
|
<input class="form-check-input border border-neutral-300"
|
|
type="checkbox"
|
|
name="roles[]"
|
|
value="{{ $role->name }}"
|
|
id="role_{{ $role->id }}"
|
|
{{ in_array($role->name, old('roles', $userRoles)) ? 'checked' : '' }}>
|
|
<label class="form-check-label fw-medium" for="role_{{ $role->id }}">
|
|
{{ ucfirst($role->name) }}
|
|
</label>
|
|
</div>
|
|
</div>
|
|
@endforeach
|
|
</div>
|
|
@else
|
|
<div class="text-center text-muted py-3">
|
|
<iconify-icon icon="mdi:shield-off" class="fs-2 mb-2"></iconify-icon>
|
|
<p class="mb-0">Tidak ada roles yang tersedia</p>
|
|
</div>
|
|
@endif
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Action Buttons -->
|
|
<div class="d-flex align-items-center gap-2 pt-3 border-top">
|
|
<button type="submit" class="btn btn-primary d-flex align-items-center gap-2">
|
|
<iconify-icon icon="material-symbols:save"></iconify-icon>
|
|
<span>Perbarui Pengguna</span>
|
|
</button>
|
|
<a href="{{ route('admin.users.index') }}" class="btn btn-light d-flex align-items-center gap-2">
|
|
<iconify-icon icon="material-symbols:cancel"></iconify-icon>
|
|
<span>Batal</span>
|
|
</a>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
@endsection
|