profil
This commit is contained in:
37
resources/views/admin/users/create.blade.php
Normal file
37
resources/views/admin/users/create.blade.php
Normal 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
|
||||
42
resources/views/admin/users/edit.blade.php
Normal file
42
resources/views/admin/users/edit.blade.php
Normal 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
|
||||
37
resources/views/admin/users/index.blade.php
Normal file
37
resources/views/admin/users/index.blade.php
Normal 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
|
||||
@@ -59,6 +59,9 @@
|
||||
<a href="{{ route('admin.prizes.index') }}" class="{{ request()->routeIs('admin.prizes.*') ? 'active' : '' }}">
|
||||
<span class="ico"><i class="bi bi-gift"></i></span> Hadiah
|
||||
</a>
|
||||
<a href="{{ route('admin.users.index') }}" class="{{ request()->routeIs('admin.users.*') ? 'active' : '' }}">
|
||||
<span class="ico"><i class="bi bi-person-gear"></i></span> Pengguna
|
||||
</a>
|
||||
<a href="{{ route('admin.audit.index') }}" class="{{ request()->routeIs('admin.audit.*') ? 'active' : '' }}">
|
||||
<span class="ico"><i class="bi bi-shield-check"></i></span> Audit Trail
|
||||
</a>
|
||||
@@ -68,10 +71,10 @@
|
||||
@endif
|
||||
</nav>
|
||||
<div class="sb-foot">
|
||||
<div class="text-white-50 small">{{ $u?->name }}</div>
|
||||
<div class="small mb-2" style="color:var(--koipb-teal-light)">
|
||||
@foreach($u?->getRoleNames() ?? [] as $r){{ \Illuminate\Support\Str::headline($r) }}@endforeach
|
||||
</div>
|
||||
<a href="{{ route('profile.edit') }}" class="text-decoration-none d-block mb-2">
|
||||
<div class="text-white small"><i class="bi bi-person-circle"></i> {{ $u?->name }}</div>
|
||||
<div class="small" style="color:var(--koipb-teal-light)">{{ $u?->roleLabel() }}</div>
|
||||
</a>
|
||||
<form method="POST" action="{{ route('logout') }}">
|
||||
@csrf
|
||||
<button class="btn btn-sm btn-outline-light w-100"><i class="bi bi-box-arrow-right"></i> Log Keluar</button>
|
||||
|
||||
44
resources/views/profile/edit.blade.php
Normal file
44
resources/views/profile/edit.blade.php
Normal file
@@ -0,0 +1,44 @@
|
||||
@extends('layouts.app')
|
||||
@section('title', 'Profil Saya')
|
||||
|
||||
@section('content')
|
||||
<div class="row justify-content-center g-3"><div class="col-lg-7">
|
||||
|
||||
<div class="card mb-3"><div class="card-body">
|
||||
<h5 class="fw-bold"><i class="bi bi-person-circle text-teal"></i> Maklumat Profil</h5>
|
||||
<form method="POST" action="{{ route('profile.update') }}">
|
||||
@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>
|
||||
<input class="form-control" value="{{ $user->roleLabel() }}" disabled></div>
|
||||
</div>
|
||||
<div class="mt-4"><button class="btn btn-teal"><i class="bi bi-save"></i> Simpan Profil</button></div>
|
||||
</form>
|
||||
</div></div>
|
||||
|
||||
<div class="card"><div class="card-body">
|
||||
<h5 class="fw-bold"><i class="bi bi-key text-teal"></i> Tukar Kata Laluan</h5>
|
||||
<form method="POST" action="{{ route('profile.password') }}">
|
||||
@csrf @method('PUT')
|
||||
<div class="row g-3">
|
||||
<div class="col-12"><label class="form-label">Kata Laluan Semasa *</label>
|
||||
<input type="password" name="current_password" class="form-control @error('current_password') is-invalid @enderror" required>
|
||||
@error('current_password')<div class="invalid-feedback">{{ $message }}</div>@enderror</div>
|
||||
<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" required>
|
||||
@error('password')<div class="invalid-feedback">{{ $message }}</div>@enderror</div>
|
||||
<div class="col-md-6"><label class="form-label">Sahkan Kata Laluan Baru *</label>
|
||||
<input type="password" name="password_confirmation" class="form-control" required></div>
|
||||
</div>
|
||||
<div class="mt-4"><button class="btn btn-teal"><i class="bi bi-shield-lock"></i> Tukar Kata Laluan</button></div>
|
||||
</form>
|
||||
</div></div>
|
||||
|
||||
</div></div>
|
||||
@endsection
|
||||
Reference in New Issue
Block a user