first
This commit is contained in:
128
resources/views/admin/setup/import/create.blade.php
Normal file
128
resources/views/admin/setup/import/create.blade.php
Normal file
@@ -0,0 +1,128 @@
|
||||
@extends('layouts.app')
|
||||
|
||||
@section('title', 'Import Pusat Mengundi')
|
||||
|
||||
@section('content')
|
||||
<div class="page-heading">
|
||||
<div class="eyebrow">Admin · Setup</div>
|
||||
<h1 class="h3 mb-1">Import Pusat Mengundi</h1>
|
||||
<p class="text-secondary mb-0">Upload fail XLSX untuk mencipta DUN, Pusat Mengundi, Saluran, dan Kuota secara automatik.</p>
|
||||
</div>
|
||||
|
||||
@include('admin.setup._nav')
|
||||
|
||||
@if (session('import_errors'))
|
||||
<div class="alert alert-warning" role="alert">
|
||||
<div class="fw-semibold mb-1">Beberapa baris tidak dapat diimport:</div>
|
||||
<ul class="mb-0 small">
|
||||
@foreach (session('import_errors') as $err)
|
||||
<li>{{ $err }}</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
<div class="row g-3">
|
||||
<div class="col-12 col-xl-7">
|
||||
<div class="content-panel p-3 p-md-4">
|
||||
<h2 class="h5 mb-3">Borang Import</h2>
|
||||
|
||||
<form method="POST" action="{{ route('admin.setup.import.store') }}" enctype="multipart/form-data">
|
||||
@csrf
|
||||
|
||||
<div class="mb-3">
|
||||
<label for="election_id" class="form-label fw-semibold">Pilihan Raya</label>
|
||||
<select id="election_id" name="election_id" class="form-select @error('election_id') is-invalid @enderror" required>
|
||||
<option value="">Pilih pilihan raya</option>
|
||||
@foreach ($elections as $election)
|
||||
<option value="{{ $election->id }}" @selected(old('election_id') == $election->id)>
|
||||
{{ $election->name }}
|
||||
</option>
|
||||
@endforeach
|
||||
</select>
|
||||
@error('election_id')
|
||||
<div class="invalid-feedback">{{ $message }}</div>
|
||||
@enderror
|
||||
</div>
|
||||
|
||||
<div class="row g-3 mb-3">
|
||||
<div class="col-md-4">
|
||||
<label for="dun_code" class="form-label fw-semibold">Kod DUN</label>
|
||||
<input id="dun_code" type="text" name="dun_code" value="{{ old('dun_code', 'N49') }}"
|
||||
class="form-control @error('dun_code') is-invalid @enderror" maxlength="20"
|
||||
placeholder="cth: N49" required>
|
||||
@error('dun_code')
|
||||
<div class="invalid-feedback">{{ $message }}</div>
|
||||
@enderror
|
||||
</div>
|
||||
<div class="col-md-8">
|
||||
<label for="dun_name" class="form-label fw-semibold">Nama DUN</label>
|
||||
<input id="dun_name" type="text" name="dun_name" value="{{ old('dun_name', 'Kota Iskandar') }}"
|
||||
class="form-control @error('dun_name') is-invalid @enderror" maxlength="255"
|
||||
placeholder="cth: Kota Iskandar" required>
|
||||
@error('dun_name')
|
||||
<div class="invalid-feedback">{{ $message }}</div>
|
||||
@enderror
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mb-4">
|
||||
<label for="file" class="form-label fw-semibold">Fail XLSX Senarai Pusat Mengundi</label>
|
||||
<input id="file" type="file" name="file" accept=".xlsx"
|
||||
class="form-control @error('file') is-invalid @enderror" required>
|
||||
<div class="form-text">Format: .xlsx sahaja, saiz maksimum 10MB.</div>
|
||||
@error('file')
|
||||
<div class="invalid-feedback">{{ $message }}</div>
|
||||
@enderror
|
||||
</div>
|
||||
|
||||
<div class="alert alert-warning py-2 small" role="alert">
|
||||
<i class="bi bi-exclamation-triangle me-1"></i>
|
||||
<strong>Amaran:</strong> Import akan <strong>menggantikan</strong> semua data Pusat Mengundi, Saluran, dan Kuota sedia ada untuk DUN yang sama. Pastikan fail betul sebelum teruskan.
|
||||
</div>
|
||||
|
||||
<div class="d-flex justify-content-end gap-2 mt-3">
|
||||
<a href="{{ route('admin.setup.index') }}" class="btn btn-outline-secondary">Batal</a>
|
||||
<button type="submit" class="btn btn-success">
|
||||
<i class="bi bi-upload me-1"></i>Import Data
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-12 col-xl-5">
|
||||
<div class="content-panel p-3 p-md-4 h-100">
|
||||
<h2 class="h5 mb-3">Format Fail XLSX</h2>
|
||||
<p class="text-secondary small mb-2">Fail mesti mempunyai lajur mengikut susunan berikut (baris pertama = tajuk):</p>
|
||||
<div class="table-responsive">
|
||||
<table class="table table-sm table-bordered small">
|
||||
<thead class="table-light">
|
||||
<tr>
|
||||
<th>Lajur</th>
|
||||
<th>Nama</th>
|
||||
<th>Keterangan</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr><td>A</td><td>SEKOLAH</td><td>Nama Pusat Mengundi</td></tr>
|
||||
<tr><td>B</td><td>NAMA PPM</td><td>Nama PPM (simpan sebagai metadata)</td></tr>
|
||||
<tr><td>C</td><td>SALURAN</td><td>Bilangan saluran (nombor)</td></tr>
|
||||
<tr><td>D–F</td><td>KTM, POLIS, KP</td><td>Dikira automatik dari bilangan saluran</td></tr>
|
||||
<tr><td>G</td><td>PPM</td><td>Kuota PPM per pusat (0 atau 1)</td></tr>
|
||||
<tr><td>H</td><td>KPDP</td><td>Dikira automatik</td></tr>
|
||||
<tr><td>I</td><td>PAPM</td><td>Kuota PAPM per pusat (nombor)</td></tr>
|
||||
<tr><td>J</td><td>JKM</td><td>Kuota JKM per pusat</td></tr>
|
||||
<tr><td>K</td><td>KKM</td><td>Kuota KKM per pusat</td></tr>
|
||||
<tr><td>L</td><td>TAMBAHAN</td><td>Dikira automatik</td></tr>
|
||||
<tr><td>M</td><td>NO TELEFON</td><td>Telefon PPM (simpan sebagai metadata)</td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<p class="text-secondary small mt-2 mb-0">
|
||||
Lajur dengan formula Excel (KTM, POLIS, KP, KPDP, TAMBAHAN) dikira semula secara automatik berdasarkan bilangan saluran — nilai asal dalam fail diabaikan.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
Reference in New Issue
Block a user