first commit

This commit is contained in:
Patrick
2026-05-01 20:02:13 +02:00
commit 75fb753fc0
77 changed files with 4793 additions and 0 deletions
+41
View File
@@ -0,0 +1,41 @@
// ═══════════════════════════════════════════════════════
// JSON ↔ CSV Converter
// ═══════════════════════════════════════════════════════
let lastJsoncsvType = 'csv'; // track last conversion type for download
async function jsonToCsv() {
const input = document.getElementById('jsoncsvJsonInput').value.trim();
if (!input) return setStatus('jsoncsvStatus', 'error', 'Paste some JSON first.');
const d = await apiPost('/api/convert/json-to-csv', { json: input });
if (d.success) {
document.getElementById('jsoncsvOutput').value = d.result;
lastJsoncsvType = 'csv';
setStatus('jsoncsvStatus', 'success', `Converted ✓ — ${d.rows} rows, ${d.columns} columns`);
} else setStatus('jsoncsvStatus', 'error', d.error);
}
async function csvToJson() {
const input = document.getElementById('jsoncsvCsvInput').value.trim();
if (!input) return setStatus('jsoncsvStatus', 'error', 'Paste some CSV first.');
const d = await apiPost('/api/convert/csv-to-json', { csv: input });
if (d.success) {
document.getElementById('jsoncsvOutput').value = JSON.stringify(d.result, null, 2);
lastJsoncsvType = 'json';
setStatus('jsoncsvStatus', 'success', `Converted ✓ — ${d.result.length} records`);
} else setStatus('jsoncsvStatus', 'error', d.error);
}
function downloadJsoncsvOutput() {
const output = document.getElementById('jsoncsvOutput').value;
if (!output) return setStatus('jsoncsvStatus', 'error', 'Nothing to download.');
const ext = lastJsoncsvType === 'csv' ? 'csv' : 'json';
const mime = lastJsoncsvType === 'csv' ? 'text/csv' : 'application/json';
const blob = new Blob([output], { type: mime });
const a = document.createElement('a');
a.href = URL.createObjectURL(blob);
a.download = `converted.${ext}`;
a.click();
URL.revokeObjectURL(a.href);
setStatus('jsoncsvStatus', 'success', 'Downloaded ✓');
}