Skip to content

Commit a8eedf2

Browse files
orabeCopilot
andcommitted
Enhance certificate verification: add date formatting, improve result display with additional course details
Co-authored-by: Copilot <copilot@github.com>
1 parent fae46a7 commit a8eedf2

1 file changed

Lines changed: 23 additions & 3 deletions

File tree

verify/verify.js

Lines changed: 23 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -108,8 +108,23 @@
108108
}
109109
}
110110

111+
function formatDate(iso) {
112+
// expect ISO date (YYYY-MM-DD) or ISO datetime; return DD.MM.YYYY
113+
try {
114+
const d = new Date(iso);
115+
const dd = String(d.getUTCDate()).padStart(2, '0');
116+
const mm = String(d.getUTCMonth() + 1).padStart(2, '0');
117+
const yyyy = d.getUTCFullYear();
118+
return `${dd}.${mm}.${yyyy}`;
119+
} catch (e) {
120+
return iso;
121+
}
122+
}
123+
111124
if (data.status === 'valid') {
112-
const verifiedAt = data.verified_at ? formatDateTime(data.verified_at) : '';
125+
// prefer certificate creation date; fallback to verified_at when missing
126+
const creation = data.certificate_created_at || data.created_at || null;
127+
const createdAtStr = creation ? formatDate(creation) : (data.verified_at ? formatDateTime(data.verified_at) : '');
113128
return `
114129
<div class="verify-result-card verify-result-success">
115130
<div class="verify-result-header success">
@@ -118,15 +133,20 @@
118133
<p class="verify-result-description">Dieses Zertifikat wurde erfolgreich geprüft und als gültig bestätigt.</p>
119134
</div>
120135
<div class="verify-details-grid">
121-
${renderMeta('Student-ID', data.student_id || '-')}
122136
${renderMeta('Teilnehmer', data.student_name || '-')}
123137
${renderMeta('Kurs', data.course_title || '-')}
124138
${renderMeta('Abschlussdatum', data.completion_date || '-')}
125139
${renderMeta('Dauer', (data.duration_hours != null) ? `${data.duration_hours} Unterrichtsstunden` : '-')}
140+
${renderMeta('Anwesenheit', (data.attendance_percentage != null) ? `${data.attendance_percentage}%` : '-')}
141+
${renderMeta('Aufgabenabschluss', (data.assignment_completion_percentage != null) ? `${data.assignment_completion_percentage}%` : '-')}
142+
${renderMeta('Kurslevel', data.course_level || '-')}
143+
${renderMeta('Format', data.course_format || '-')}
144+
${renderMeta('Sprache', data.instruction_language || '-')}
145+
${data.course_link ? `<div class="verify-meta-item"><span class="verify-meta-label">Kurslink</span><span class="verify-meta-value"><a href="${escapeHtml(data.course_link)}" target="_blank" rel="noreferrer">${escapeHtml(data.course_link)}</a></span></div>` : ''}
126146
${renderMeta('Herausgeber', data.issuer || 'MathCodeLab')}
127147
${renderMeta('Dozent', data.instructor || 'Mohammad Orabe')}
128148
${renderMeta('Zertifikat-ID', data.certificate_id)}
129-
${verifiedAt ? renderMeta('Verifiziert am', verifiedAt) : ''}
149+
${createdAtStr ? renderMeta('Erstellt am', createdAtStr) : ''}
130150
</div>
131151
<div class="verify-note">Hinweis:\nDieses Zertifikat bestätigt die erfolgreiche Teilnahme bzw. den Abschluss eines von MathCodeLab durchgeführten Kurses. Es stellt keinen akademischen Abschluss dar und beinhaltet keine Vergabe von Leistungspunkten (ECTS). Eine mögliche Anerkennung durch Dritten erfolgt ausschließlich im Ermessen der jeweiligen Institution.<br>Weitere Informationen sind unter <a href="https://mathcodelab.de" target="_blank" rel="noreferrer">https://mathcodelab.de</a> verfügbar.</div>
132152
<div class="verify-result-footer">${renderContactLine()}</div>

0 commit comments

Comments
 (0)