first
This commit is contained in:
35
resources/views/admin/setup/quotas/_form.blade.php
Normal file
35
resources/views/admin/setup/quotas/_form.blade.php
Normal 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>
|
||||
41
resources/views/admin/setup/quotas/_pusat-form.blade.php
Normal file
41
resources/views/admin/setup/quotas/_pusat-form.blade.php
Normal 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>
|
||||
23
resources/views/admin/setup/quotas/create.blade.php
Normal file
23
resources/views/admin/setup/quotas/create.blade.php
Normal 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
|
||||
24
resources/views/admin/setup/quotas/edit.blade.php
Normal file
24
resources/views/admin/setup/quotas/edit.blade.php
Normal 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
|
||||
70
resources/views/admin/setup/quotas/index.blade.php
Normal file
70
resources/views/admin/setup/quotas/index.blade.php
Normal 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
|
||||
23
resources/views/admin/setup/quotas/pusat-create.blade.php
Normal file
23
resources/views/admin/setup/quotas/pusat-create.blade.php
Normal 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
|
||||
24
resources/views/admin/setup/quotas/pusat-edit.blade.php
Normal file
24
resources/views/admin/setup/quotas/pusat-edit.blade.php
Normal 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
|
||||
70
resources/views/admin/setup/quotas/pusat-index.blade.php
Normal file
70
resources/views/admin/setup/quotas/pusat-index.blade.php
Normal 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
|
||||
Reference in New Issue
Block a user