fix: pratonton guna koordinat form semasa, No. Sijil ikut toggle
- loadPreview() hantar semua nilai field (X, Y, font_size, color, align) ke endpoint - certificate_no disertakan hanya jika toggle showCertNo aktif - testGenerate() bina liveFields dari request, gabung dengan config tersimpan (supaya font_file & valign kekal dari config asal) - generatePreview() terima overrideFields optional — preview sentiasa refresh Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -102,8 +102,19 @@ class CertificateTemplateController extends Controller
|
||||
$sampleName = $request->input('sample_name', 'NAMA PESERTA CONTOH');
|
||||
$sampleNo = $request->input('sample_no', 'ECT/2025/0001');
|
||||
|
||||
// Bina override dari nilai form semasa (belum disimpan)
|
||||
// Gabung dengan config tersimpan supaya font_file & valign kekal
|
||||
$liveFields = null;
|
||||
if ($request->has('fields') && is_array($request->input('fields'))) {
|
||||
$saved = $template->config_json['fields'] ?? [];
|
||||
$liveFields = [];
|
||||
foreach ($request->input('fields') as $key => $cfg) {
|
||||
$liveFields[$key] = array_merge($saved[$key] ?? [], array_filter($cfg, fn($v) => $v !== null && $v !== ''));
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
$imageData = $service->generatePreview($template, $sampleName, $sampleNo);
|
||||
$imageData = $service->generatePreview($template, $sampleName, $sampleNo, $liveFields);
|
||||
} catch (\Throwable $e) {
|
||||
return response()->json(['error' => $e->getMessage()], 500);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user