This commit is contained in:
Saufi
2026-06-26 19:10:31 +08:00
parent 1de6355e70
commit a4873b8e90
10 changed files with 478 additions and 4 deletions

View File

@@ -0,0 +1,37 @@
@extends('layouts.app')
@section('title', 'Pengguna Baru')
@section('content')
<div class="row justify-content-center"><div class="col-lg-7">
<div class="card"><div class="card-body">
<form method="POST" action="{{ route('admin.users.store') }}">
@csrf
<div class="row g-3">
<div class="col-md-6"><label class="form-label">Nama *</label>
<input name="name" class="form-control @error('name') is-invalid @enderror" value="{{ old('name') }}" required>
@error('name')<div class="invalid-feedback">{{ $message }}</div>@enderror</div>
<div class="col-md-6"><label class="form-label">Emel *</label>
<input type="email" name="email" class="form-control @error('email') is-invalid @enderror" value="{{ old('email') }}" required>
@error('email')<div class="invalid-feedback">{{ $message }}</div>@enderror</div>
<div class="col-md-6"><label class="form-label">Peranan *</label>
<select name="role" class="form-select @error('role') is-invalid @enderror" required>
<option value=""> Pilih peranan </option>
@foreach($roles as $value => $label)
<option value="{{ $value }}" @selected(old('role') === $value)>{{ $label }}</option>
@endforeach
</select>
@error('role')<div class="invalid-feedback">{{ $message }}</div>@enderror</div>
<div class="col-md-6"><label class="form-label">Kata Laluan *</label>
<input type="password" name="password" class="form-control @error('password') is-invalid @enderror" required>
@error('password')<div class="invalid-feedback">{{ $message }}</div>@enderror</div>
<div class="col-md-6"><label class="form-label">Sahkan Kata Laluan *</label>
<input type="password" name="password_confirmation" class="form-control" required></div>
</div>
<div class="mt-4 d-flex gap-2">
<button class="btn btn-teal"><i class="bi bi-save"></i> Simpan</button>
<a href="{{ route('admin.users.index') }}" class="btn btn-light">Kembali</a>
</div>
</form>
</div></div>
</div></div>
@endsection

View File

@@ -0,0 +1,42 @@
@extends('layouts.app')
@section('title', 'Kemaskini Pengguna')
@section('content')
<div class="row justify-content-center"><div class="col-lg-7">
<div class="card"><div class="card-body">
<form method="POST" action="{{ route('admin.users.update', $user) }}">
@csrf @method('PUT')
<div class="row g-3">
<div class="col-md-6"><label class="form-label">Nama *</label>
<input name="name" class="form-control @error('name') is-invalid @enderror" value="{{ old('name', $user->name) }}" required>
@error('name')<div class="invalid-feedback">{{ $message }}</div>@enderror</div>
<div class="col-md-6"><label class="form-label">Emel *</label>
<input type="email" name="email" class="form-control @error('email') is-invalid @enderror" value="{{ old('email', $user->email) }}" required>
@error('email')<div class="invalid-feedback">{{ $message }}</div>@enderror</div>
<div class="col-md-6"><label class="form-label">Peranan *</label>
<select name="role" class="form-select @error('role') is-invalid @enderror" required>
@foreach($roles as $value => $label)
<option value="{{ $value }}" @selected(old('role', $user->getRoleNames()->first()) === $value)>{{ $label }}</option>
@endforeach
</select>
@error('role')<div class="invalid-feedback">{{ $message }}</div>@enderror</div>
</div>
<hr class="my-4">
<p class="text-muted small mb-3"><i class="bi bi-key"></i> Biarkan kosong jika tidak mahu menukar kata laluan.</p>
<div class="row g-3">
<div class="col-md-6"><label class="form-label">Kata Laluan Baru</label>
<input type="password" name="password" class="form-control @error('password') is-invalid @enderror">
@error('password')<div class="invalid-feedback">{{ $message }}</div>@enderror</div>
<div class="col-md-6"><label class="form-label">Sahkan Kata Laluan</label>
<input type="password" name="password_confirmation" class="form-control"></div>
</div>
<div class="mt-4 d-flex gap-2">
<button class="btn btn-teal"><i class="bi bi-save"></i> Simpan</button>
<a href="{{ route('admin.users.index') }}" class="btn btn-light">Kembali</a>
</div>
</form>
</div></div>
</div></div>
@endsection

View File

@@ -0,0 +1,37 @@
@extends('layouts.app')
@section('title', 'Urus Pengguna')
@section('content')
<div class="d-flex justify-content-between align-items-center mb-3">
<div class="text-muted">Pengguna sistem mengikut peranan: Admin, Kaunter, Cabutan.</div>
<a href="{{ route('admin.users.create') }}" class="btn btn-teal"><i class="bi bi-person-plus"></i> Pengguna Baru</a>
</div>
<div class="card"><div class="card-body">
<div class="table-responsive">
<table class="table table-koipb table-hover align-middle">
<thead><tr><th>Nama</th><th>Emel</th><th>Peranan</th><th></th></tr></thead>
<tbody>
@forelse($users as $user)
<tr>
<td class="fw-semibold">{{ $user->name }}
@if($user->id === auth()->id())<span class="badge bg-teal ms-1">Anda</span>@endif</td>
<td>{{ $user->email }}</td>
<td><span class="badge bg-dark2">{{ $user->roleLabel() }}</span></td>
<td class="text-end">
<a href="{{ route('admin.users.edit', $user) }}" class="btn btn-sm btn-outline-secondary"><i class="bi bi-pencil"></i></a>
<form action="{{ route('admin.users.destroy', $user) }}" method="POST" class="d-inline" onsubmit="return confirm('Padam pengguna ini?')">
@csrf @method('DELETE')
<button class="btn btn-sm btn-outline-danger" @disabled($user->id === auth()->id())><i class="bi bi-trash"></i></button>
</form>
</td>
</tr>
@empty
<tr><td colspan="4" class="text-center text-muted py-4">Tiada pengguna.</td></tr>
@endforelse
</tbody>
</table>
</div>
{{ $users->links() }}
</div></div>
@endsection