diff --git a/frontend/assets/js/app.js b/frontend/assets/js/app.js index 77845f5..1b50c81 100644 --- a/frontend/assets/js/app.js +++ b/frontend/assets/js/app.js @@ -136,6 +136,11 @@ function initApp() { document.getElementById('teamFilter').addEventListener('change', renderTimeline); document.getElementById('searchEvents').addEventListener('input', renderTimeline); document.getElementById('saveDocument').addEventListener('click', saveDocument); + document.getElementById('documentModal').addEventListener('hidden.bs.modal', () => { + editingDocId = null; + window._editDocData = null; + document.getElementById('documentForm').reset(); + }); document.getElementById('docTeamFilter').addEventListener('change', renderDocuments); document.getElementById('docTypeFilter').addEventListener('change', renderDocuments); document.getElementById('searchDocs').addEventListener('input', renderDocuments); @@ -192,7 +197,7 @@ function initApp() { document.querySelectorAll('[data-bs-toggle="tab"]').forEach(tab => { tab.addEventListener('shown.bs.tab', () => { if (tab.id === 'network-tab') { resizeCanvas(); renderNetwork(); } - if (tab.id === 'documents-tab') { renderDocuments(); } + if (tab.id === 'documents-tab') { loadDocuments(); } }); }); @@ -977,7 +982,11 @@ const DOC_TYPE_LABELS = { }; async function loadDocuments() { - documents = await apiFetch('documents'); + try { + documents = await apiFetch('documents'); + } catch (e) { + documents = []; + } populateDocTeamFilter(); renderDocuments(); } @@ -995,6 +1004,7 @@ function populateDocTeamFilter() { function renderDocuments() { const container = document.getElementById('documentContainer'); + if (!container) return; const teamFilter = document.getElementById('docTeamFilter').value; const typeFilter = document.getElementById('docTypeFilter').value; const search = document.getElementById('searchDocs').value.toLowerCase();