diff --git a/app.css b/app.css index 20fd0c6..0f8f5be 100644 --- a/app.css +++ b/app.css @@ -116,6 +116,12 @@ body { color: #f0f0f0; } .btn-large { padding: 22px; font-size: 18px; } +.btn-danger { + background: #d9534f; + color: #fff; + margin-top: 24px; +} +.btn-danger:active { background: #c9302c; } .hidden-input { display: none; } diff --git a/app.js b/app.js index 8b49265..7bd8b55 100644 --- a/app.js +++ b/app.js @@ -744,6 +744,7 @@ router.on('/reports/:id', async (args) => { ${hasPages ? '' : ''} + `; loadThumbs(); @@ -783,6 +784,38 @@ router.on('/reports/:id', async (args) => { document.getElementById('btn-open-editor').onclick = () => { window.open(window.location.origin + '/custom/bericht/bericht_card.php?berichtid=' + args.id, '_blank'); }; + + document.getElementById('btn-delete-report').onclick = () => { + const modal = document.createElement('div'); + modal.className = 'fullscreen-modal'; + modal.innerHTML = ` + + + `; + document.body.appendChild(modal); + modal.querySelector('#dr-cancel').onclick = () => modal.remove(); + modal.querySelector('#dr-no').onclick = () => modal.remove(); + modal.querySelector('#dr-yes').onclick = async () => { + try { + await api.deleteReport(args.id); + modal.remove(); + showToast('Bericht gelöscht'); + router.go('#/reports'); + } catch (e) { + showToast('Fehler: ' + e.message, 'error'); + } + }; + }; } catch (e) { main().innerHTML = '
⚠️
' + e.message + '
'; } diff --git a/lib/api.js b/lib/api.js index 6097391..660f474 100644 --- a/lib/api.js +++ b/lib/api.js @@ -118,6 +118,10 @@ return request('/reports.php?id=' + id + '&action=finalize', { method: 'POST' }); } + async function deleteReport(id) { + return request('/reports.php?id=' + id, { method: 'DELETE' }); + } + async function deletePhoto(relpath) { return request('/delete_photo.php', { method: 'POST', @@ -243,7 +247,7 @@ login, logout, listOrders, getOrder, listOrderPhotos, uploadOrderPhoto, listCustomers, getCustomer, - getReport, listReports, createReport, listTemplates, listOdtTemplates, finalizeReport, + getReport, listReports, createReport, listTemplates, listOdtTemplates, finalizeReport, deleteReport, deletePhoto, uploadVoiceNote, transcribeAudio, uploadAnnotatedPhoto, listMaterials, addMaterial, deleteMaterial, getPhotoBlobUrl, clearPhotoCache,