first
This commit is contained in:
146
resources/views/admin/management/penempatan/show.blade.php
Normal file
146
resources/views/admin/management/penempatan/show.blade.php
Normal file
@@ -0,0 +1,146 @@
|
||||
@extends('layouts.app')
|
||||
|
||||
@section('title', 'Penempatan — ' . $pusat->name)
|
||||
|
||||
@section('content')
|
||||
<div class="page-heading">
|
||||
<div class="eyebrow">Admin · <a href="{{ route('admin.dashboard') }}">Dashboard</a></div>
|
||||
<div class="d-flex justify-content-between flex-column flex-lg-row gap-3">
|
||||
<div>
|
||||
<h1 class="h3 mb-1">Penempatan Petugas</h1>
|
||||
<p class="text-secondary mb-0">
|
||||
{{ $pusat->code }} — {{ $pusat->name }}
|
||||
@if ($pusat->dun) · DUN {{ $pusat->dun->code }} @endif
|
||||
@if ($ppm) · PPM: {{ $ppm->application?->name }} @endif
|
||||
</p>
|
||||
</div>
|
||||
<div class="d-flex gap-2 align-items-start">
|
||||
<a href="{{ route('admin.dashboard') }}" class="btn btn-outline-secondary">Kembali</a>
|
||||
<a href="{{ route('admin.management.applications.index', ['pusat_mengundi_id' => $pusat->id]) }}"
|
||||
class="btn btn-outline-primary">
|
||||
<i class="bi bi-file-earmark-person me-1"></i>Permohonan Pusat Ini
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@include('admin.management._nav')
|
||||
|
||||
@forelse ($sections as $section)
|
||||
<div class="content-panel p-0 overflow-hidden mb-4">
|
||||
{{-- Section header --}}
|
||||
<div class="p-3 border-bottom d-flex justify-content-between align-items-center">
|
||||
<h2 class="h6 mb-0 fw-semibold">
|
||||
@if ($section['saluran'])
|
||||
<i class="bi bi-signpost me-2 text-primary"></i>{{ $section['label'] }}
|
||||
<span class="text-secondary fw-normal small ms-2">{{ $section['saluran']->voter_count ?? 0 }} pengundi</span>
|
||||
@else
|
||||
<i class="bi bi-building me-2 text-secondary"></i>{{ $section['label'] }}
|
||||
@endif
|
||||
</h2>
|
||||
@php
|
||||
$sectionFilled = $section['entries']->sum(fn($e) => $e['assignments']->count());
|
||||
$sectionQuota = $section['entries']->sum(fn($e) => $e['quota']->quota);
|
||||
$sectionVacant = $section['entries']->sum(fn($e) => $e['vacant']);
|
||||
@endphp
|
||||
<span class="badge {{ $sectionVacant > 0 ? 'text-bg-warning' : 'text-bg-success' }}">
|
||||
{{ $sectionFilled }} / {{ $sectionQuota }} diisi
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<div class="table-responsive">
|
||||
<table class="table table-hover align-middle mb-0">
|
||||
<thead class="table-light">
|
||||
<tr>
|
||||
<th>Jawatan</th>
|
||||
<th>Nama Petugas</th>
|
||||
<th>No. KP</th>
|
||||
<th>Telefon</th>
|
||||
<th>Bank</th>
|
||||
<th>No. Akaun</th>
|
||||
<th class="text-end">Tindakan</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@forelse ($section['entries'] as $entry)
|
||||
{{-- Filled slots --}}
|
||||
@foreach ($entry['assignments'] as $assignment)
|
||||
<tr>
|
||||
@if ($loop->first)
|
||||
<td rowspan="{{ $entry['assignments']->count() + $entry['vacant'] }}"
|
||||
class="fw-semibold align-top pt-3">
|
||||
{{ $entry['position']?->code }}
|
||||
<div class="small text-secondary fw-normal">{{ $entry['position']?->name }}</div>
|
||||
<div class="small text-secondary">Kuota: {{ $entry['quota']->quota }}</div>
|
||||
</td>
|
||||
@endif
|
||||
@php $app = $assignment->application; @endphp
|
||||
<td>
|
||||
<div class="fw-semibold">{{ $app?->name ?? $assignment->user?->name ?? 'Tanpa nama' }}</div>
|
||||
<span class="badge text-bg-success small">Aktif</span>
|
||||
</td>
|
||||
<td class="small text-secondary">{{ $app?->ic_number ?? '-' }}</td>
|
||||
<td class="small text-secondary">{{ $app?->phone_number ?? '-' }}</td>
|
||||
<td class="small">{{ $app?->bank_name ?? '-' }}</td>
|
||||
<td class="small text-secondary">
|
||||
{{ $app?->bank_account_number ? \App\Support\SensitiveData::maskAccount($app->bank_account_number) : '-' }}
|
||||
</td>
|
||||
<td class="text-end">
|
||||
<a href="{{ route('admin.management.penempatan.pindah.form', [$pusat, $assignment]) }}"
|
||||
class="btn btn-sm btn-outline-secondary">
|
||||
<i class="bi bi-arrow-left-right"></i> Pindah
|
||||
</a>
|
||||
<form method="POST"
|
||||
action="{{ route('admin.management.penempatan.lepas', [$pusat, $assignment]) }}"
|
||||
class="d-inline"
|
||||
onsubmit="return confirm('Lepaskan {{ addslashes($app?->name ?? 'petugas') }} dari tugasan ini?')">
|
||||
@csrf
|
||||
<button class="btn btn-sm btn-outline-danger">
|
||||
<i class="bi bi-person-dash"></i> Lepas
|
||||
</button>
|
||||
</form>
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
|
||||
{{-- Vacant slots --}}
|
||||
@for ($i = 0; $i < $entry['vacant']; $i++)
|
||||
<tr class="table-warning">
|
||||
@if ($entry['assignments']->isEmpty() && $i === 0)
|
||||
<td rowspan="{{ $entry['vacant'] }}"
|
||||
class="fw-semibold align-top pt-3">
|
||||
{{ $entry['position']?->code }}
|
||||
<div class="small text-secondary fw-normal">{{ $entry['position']?->name }}</div>
|
||||
<div class="small text-secondary">Kuota: {{ $entry['quota']->quota }}</div>
|
||||
</td>
|
||||
@endif
|
||||
<td colspan="5" class="text-secondary fst-italic small">— Slot kosong —</td>
|
||||
<td class="text-end">
|
||||
<a href="{{ route('admin.management.applications.index', [
|
||||
'pusat_mengundi_id' => $pusat->id,
|
||||
'position_id' => $entry['position']?->id,
|
||||
'status' => 'approved',
|
||||
]) }}"
|
||||
class="btn btn-sm btn-success">
|
||||
<i class="bi bi-person-plus me-1"></i>Assign
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
@endfor
|
||||
|
||||
@empty
|
||||
<tr>
|
||||
<td colspan="7" class="text-center text-secondary py-3">Tiada kuota ditetapkan untuk bahagian ini.</td>
|
||||
</tr>
|
||||
@endforelse
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
@empty
|
||||
<div class="content-panel p-4 text-center text-secondary">
|
||||
<i class="bi bi-info-circle fs-3 d-block mb-2"></i>
|
||||
Tiada kuota ditetapkan untuk pusat ini. <a href="{{ route('admin.setup.pusat.saluran.index', $pusat) }}">Tetapkan kuota</a>.
|
||||
</div>
|
||||
@endforelse
|
||||
@endsection
|
||||
Reference in New Issue
Block a user