fix: toggle No. Sijil kekal off selepas simpan konfigurasi

This commit is contained in:
Saufi
2026-05-19 18:17:10 +08:00
parent 6923f7b7eb
commit 10d0ae5671
2 changed files with 11 additions and 2 deletions

View File

@@ -60,9 +60,15 @@ class CertificateTemplateController extends Controller
'fields.*.align' => 'required|in:left,center,right', 'fields.*.align' => 'required|in:left,center,right',
]); ]);
$config = $template->config_json ?? []; $config = $template->config_json ?? [];
$config['fields'] = array_merge($config['fields'] ?? [], $request->fields); $merged = array_merge($config['fields'] ?? [], $request->fields);
// Kalau toggle No. Sijil dimatikan, buang dari config
if (! $request->boolean('show_cert_no')) {
unset($merged['certificate_no']);
}
$config['fields'] = $merged;
$template->update(['config_json' => $config]); $template->update(['config_json' => $config]);
return redirect()->route('admin.programs.template.show', $program) return redirect()->route('admin.programs.template.show', $program)

View File

@@ -198,6 +198,8 @@
<div class="card-header py-2 bg-light d-flex justify-content-between align-items-center"> <div class="card-header py-2 bg-light d-flex justify-content-between align-items-center">
<span class="fw-medium small">No. Sijil <span class="text-muted">(Pilihan)</span></span> <span class="fw-medium small">No. Sijil <span class="text-muted">(Pilihan)</span></span>
<div class="form-check form-switch mb-0"> <div class="form-check form-switch mb-0">
<input type="hidden" name="show_cert_no" id="showCertNoHidden"
value="{{ isset($fields['certificate_no']) ? '1' : '0' }}">
<input class="form-check-input" type="checkbox" id="showCertNo" <input class="form-check-input" type="checkbox" id="showCertNo"
onchange="toggleCertNo(this)" onchange="toggleCertNo(this)"
{{ isset($fields['certificate_no']) ? 'checked' : '' }}> {{ isset($fields['certificate_no']) ? 'checked' : '' }}>
@@ -354,6 +356,7 @@ function previewImage(input) {
// ── Toggle No. Sijil ────────────────────────────────────────────────────────── // ── Toggle No. Sijil ──────────────────────────────────────────────────────────
function toggleCertNo(cb) { function toggleCertNo(cb) {
document.getElementById('certNoFields').style.display = cb.checked ? '' : 'none'; document.getElementById('certNoFields').style.display = cb.checked ? '' : 'none';
document.getElementById('showCertNoHidden').value = cb.checked ? '1' : '0';
} }
// ── Toggle panduan (ikon chevron) ───────────────────────────────────────────── // ── Toggle panduan (ikon chevron) ─────────────────────────────────────────────