This commit is contained in:
Saufi
2026-06-03 08:51:22 +08:00
commit a14d43fe34
347 changed files with 38197 additions and 0 deletions

View File

@@ -0,0 +1,35 @@
@csrf
<div class="row g-3">
<div class="col-12 col-lg-8">
<label class="form-label fw-semibold" for="position_id">Jawatan</label>
<select id="position_id" name="position_id" class="form-select @error('position_id') is-invalid @enderror" required data-tom-select>
<option value="">Pilih jawatan</option>
@foreach ($positions as $position)
<option value="{{ $position->id }}" @selected((int) old('position_id', $quota->position_id) === $position->id)>
{{ $position->code }} {{ $position->name }}
</option>
@endforeach
</select>
@error('position_id')
<div class="invalid-feedback">{{ $message }}</div>
@enderror
</div>
<div class="col-12 col-lg-4">
<label class="form-label fw-semibold" for="quota">Bilangan Kekosongan</label>
<input id="quota" name="quota" type="number" min="0" max="9999"
class="form-control @error('quota') is-invalid @enderror"
value="{{ old('quota', $quota->quota ?? 0) }}" required>
@error('quota')
<div class="invalid-feedback">{{ $message }}</div>
@enderror
</div>
</div>
<div class="d-flex justify-content-end gap-2 mt-4">
<a href="{{ route('admin.setup.pusat.saluran.kuota.index', [$pusat, $saluran]) }}" class="btn btn-outline-secondary">Batal</a>
<button class="btn btn-primary" type="submit">
<i class="bi bi-save me-1"></i>{{ $quota->exists ? 'Kemas Kini' : 'Simpan' }}
</button>
</div>

View File

@@ -0,0 +1,41 @@
@csrf
<div class="row g-3">
<div class="col-12 col-lg-8">
<label class="form-label fw-semibold" for="position_id">Jawatan</label>
@if ($quota->exists)
{{-- Edit: papar nama sahaja, tidak boleh tukar jawatan (guna updateOrCreate) --}}
<input type="hidden" name="position_id" value="{{ $quota->position_id }}">
<input type="text" class="form-control" value="{{ $quota->position?->code }} — {{ $quota->position?->name }}" disabled>
@else
<select id="position_id" name="position_id" class="form-select @error('position_id') is-invalid @enderror" required data-tom-select>
<option value="">Pilih jawatan</option>
@foreach ($positions as $position)
<option value="{{ $position->id }}" @selected((int) old('position_id', $quota->position_id) === $position->id)>
{{ $position->code }} {{ $position->name }}
</option>
@endforeach
</select>
@error('position_id')
<div class="invalid-feedback">{{ $message }}</div>
@enderror
@endif
</div>
<div class="col-12 col-lg-4">
<label class="form-label fw-semibold" for="quota">Bilangan Kekosongan</label>
<input id="quota" name="quota" type="number" min="0" max="9999"
class="form-control @error('quota') is-invalid @enderror"
value="{{ old('quota', $quota->quota ?? 0) }}" required>
@error('quota')
<div class="invalid-feedback">{{ $message }}</div>
@enderror
</div>
</div>
<div class="d-flex justify-content-end gap-2 mt-4">
<a href="{{ route('admin.setup.pusat.kuota.index', $pusat) }}" class="btn btn-outline-secondary">Batal</a>
<button class="btn btn-primary" type="submit">
<i class="bi bi-save me-1"></i>{{ $quota->exists ? 'Kemas Kini' : 'Simpan' }}
</button>
</div>

View File

@@ -0,0 +1,23 @@
@extends('layouts.app')
@section('title', 'Tambah Kuota — Saluran ' . $saluran->number)
@section('content')
<div class="page-heading">
<div class="eyebrow">
Setup ·
<a href="{{ route('admin.setup.pusat.index') }}">Pusat Mengundi</a> ·
<a href="{{ route('admin.setup.pusat.saluran.index', $pusat) }}">{{ $pusat->name }}</a> ·
<a href="{{ route('admin.setup.pusat.saluran.kuota.index', [$pusat, $saluran]) }}">Saluran {{ $saluran->number }}</a>
</div>
<h1 class="h3 mb-0">Tambah Kuota Jawatan</h1>
</div>
@include('admin.setup._nav')
<div class="content-panel p-3 p-md-4">
<form method="POST" action="{{ route('admin.setup.pusat.saluran.kuota.store', [$pusat, $saluran]) }}">
@include('admin.setup.quotas._form')
</form>
</div>
@endsection

View File

@@ -0,0 +1,24 @@
@extends('layouts.app')
@section('title', 'Edit Kuota — ' . $quota->position?->code)
@section('content')
<div class="page-heading">
<div class="eyebrow">
Setup ·
<a href="{{ route('admin.setup.pusat.index') }}">Pusat Mengundi</a> ·
<a href="{{ route('admin.setup.pusat.saluran.index', $pusat) }}">{{ $pusat->name }}</a> ·
<a href="{{ route('admin.setup.pusat.saluran.kuota.index', [$pusat, $saluran]) }}">Saluran {{ $saluran->number }}</a>
</div>
<h1 class="h3 mb-0">Edit Kuota Jawatan</h1>
</div>
@include('admin.setup._nav')
<div class="content-panel p-3 p-md-4">
<form method="POST" action="{{ route('admin.setup.pusat.saluran.kuota.update', [$pusat, $saluran, $quota]) }}">
@method('PUT')
@include('admin.setup.quotas._form')
</form>
</div>
@endsection

View File

@@ -0,0 +1,70 @@
@extends('layouts.app')
@section('title', 'Kuota — Saluran ' . $saluran->number)
@section('content')
<div class="page-heading">
<div class="eyebrow">
Setup ·
<a href="{{ route('admin.setup.pusat.index') }}">Pusat Mengundi</a> ·
<a href="{{ route('admin.setup.pusat.saluran.index', $pusat) }}">{{ $pusat->name }}</a>
</div>
<div class="d-flex justify-content-between flex-column flex-lg-row gap-3">
<div>
<h1 class="h3 mb-1">Kuota Jawatan</h1>
<p class="text-secondary mb-0">{{ $pusat->code }} {{ $pusat->name }} · Saluran {{ $saluran->number }}</p>
</div>
<a href="{{ route('admin.setup.pusat.saluran.kuota.create', [$pusat, $saluran]) }}" class="btn btn-primary">
<i class="bi bi-plus-circle me-1"></i>Tambah Kuota
</a>
</div>
</div>
@include('admin.setup._nav')
<div class="content-panel p-3 p-md-4">
<div class="table-responsive">
<table class="table table-hover align-middle">
<thead>
<tr>
<th>Jawatan</th>
<x-sort-th column="quota" label="Kuota" class="text-end" />
<th class="text-end no-sort">Tindakan</th>
</tr>
</thead>
<tbody>
@forelse ($quotas as $quota)
<tr>
<td>
<span class="fw-semibold">{{ $quota->position?->code }}</span>
<div class="small text-secondary">{{ $quota->position?->name }}</div>
</td>
<td class="text-end fw-semibold">{{ $quota->quota }}</td>
<td class="text-end">
<a href="{{ route('admin.setup.pusat.saluran.kuota.edit', [$pusat, $saluran, $quota]) }}" class="btn btn-sm btn-outline-secondary">Edit</a>
<form method="POST" action="{{ route('admin.setup.pusat.saluran.kuota.destroy', [$pusat, $saluran, $quota]) }}" class="d-inline"
onsubmit="return confirm('Padam kuota {{ addslashes($quota->position?->code) }}?')">
@csrf @method('DELETE')
<button class="btn btn-sm btn-outline-danger" type="submit">Padam</button>
</form>
</td>
</tr>
@empty
<tr>
<td colspan="3" class="text-center text-secondary py-4">
Tiada kuota. <a href="{{ route('admin.setup.pusat.saluran.kuota.create', [$pusat, $saluran]) }}">Tambah kuota</a>.
</td>
</tr>
@endforelse
</tbody>
</table>
</div>
{{ $quotas->links() }}
</div>
<div class="mt-3">
<a href="{{ route('admin.setup.pusat.saluran.index', $pusat) }}" class="btn btn-outline-secondary">
<i class="bi bi-arrow-left me-1"></i>Kembali ke Saluran
</a>
</div>
@endsection

View File

@@ -0,0 +1,23 @@
@extends('layouts.app')
@section('title', 'Tambah Kuota Pusat — ' . $pusat->name)
@section('content')
<div class="page-heading">
<div class="eyebrow">
Setup ·
<a href="{{ route('admin.setup.pusat.index') }}">Pusat Mengundi</a> ·
<a href="{{ route('admin.setup.pusat.saluran.index', $pusat) }}">{{ $pusat->name }}</a> ·
<a href="{{ route('admin.setup.pusat.kuota.index', $pusat) }}">Saluran 0 (Pusat)</a>
</div>
<h1 class="h3 mb-0">Tambah Kuota Peringkat Pusat</h1>
</div>
@include('admin.setup._nav')
<div class="content-panel p-3 p-md-4">
<form method="POST" action="{{ route('admin.setup.pusat.kuota.store', $pusat) }}">
@include('admin.setup.quotas._pusat-form')
</form>
</div>
@endsection

View File

@@ -0,0 +1,24 @@
@extends('layouts.app')
@section('title', 'Edit Kuota Pusat — ' . $quota->position?->code)
@section('content')
<div class="page-heading">
<div class="eyebrow">
Setup ·
<a href="{{ route('admin.setup.pusat.index') }}">Pusat Mengundi</a> ·
<a href="{{ route('admin.setup.pusat.saluran.index', $pusat) }}">{{ $pusat->name }}</a> ·
<a href="{{ route('admin.setup.pusat.kuota.index', $pusat) }}">Saluran 0 (Pusat)</a>
</div>
<h1 class="h3 mb-0">Edit Kuota Peringkat Pusat</h1>
</div>
@include('admin.setup._nav')
<div class="content-panel p-3 p-md-4">
<form method="POST" action="{{ route('admin.setup.pusat.kuota.update', [$pusat, $quota]) }}">
@method('PUT')
@include('admin.setup.quotas._pusat-form')
</form>
</div>
@endsection

View File

@@ -0,0 +1,70 @@
@extends('layouts.app')
@section('title', 'Kuota Pusat — ' . $pusat->name)
@section('content')
<div class="page-heading">
<div class="eyebrow">
Setup ·
<a href="{{ route('admin.setup.pusat.index') }}">Pusat Mengundi</a> ·
<a href="{{ route('admin.setup.pusat.saluran.index', $pusat) }}">{{ $pusat->name }}</a>
</div>
<div class="d-flex justify-content-between flex-column flex-lg-row gap-3">
<div>
<h1 class="h3 mb-1">Kuota Jawatan Peringkat Pusat</h1>
<p class="text-secondary mb-0">{{ $pusat->code }} {{ $pusat->name }} · Saluran 0 (Pusat)</p>
</div>
<a href="{{ route('admin.setup.pusat.kuota.create', $pusat) }}" class="btn btn-primary">
<i class="bi bi-plus-circle me-1"></i>Tambah Kuota
</a>
</div>
</div>
@include('admin.setup._nav')
<div class="content-panel p-3 p-md-4">
<div class="table-responsive">
<table class="table table-hover align-middle">
<thead>
<tr>
<th>Jawatan</th>
<x-sort-th column="quota" label="Kuota" class="text-end" />
<th class="text-end no-sort">Tindakan</th>
</tr>
</thead>
<tbody>
@forelse ($quotas as $quota)
<tr>
<td>
<span class="fw-semibold">{{ $quota->position?->code }}</span>
<div class="small text-secondary">{{ $quota->position?->name }}</div>
</td>
<td class="text-end fw-semibold">{{ $quota->quota }}</td>
<td class="text-end">
<a href="{{ route('admin.setup.pusat.kuota.edit', [$pusat, $quota]) }}" class="btn btn-sm btn-outline-secondary">Edit</a>
<form method="POST" action="{{ route('admin.setup.pusat.kuota.destroy', [$pusat, $quota]) }}" class="d-inline"
onsubmit="return confirm('Padam kuota {{ addslashes($quota->position?->code) }}?')">
@csrf @method('DELETE')
<button class="btn btn-sm btn-outline-danger" type="submit">Padam</button>
</form>
</td>
</tr>
@empty
<tr>
<td colspan="3" class="text-center text-secondary py-4">
Tiada kuota peringkat pusat. <a href="{{ route('admin.setup.pusat.kuota.create', $pusat) }}">Tambah kuota</a>.
</td>
</tr>
@endforelse
</tbody>
</table>
</div>
{{ $quotas->links() }}
</div>
<div class="mt-3">
<a href="{{ route('admin.setup.pusat.saluran.index', $pusat) }}" class="btn btn-outline-secondary">
<i class="bi bi-arrow-left me-1"></i>Kembali ke Saluran
</a>
</div>
@endsection