add project file upload to student form, project_files table with backup/restore, download in journal, and crash-proof entries endpoint

This commit is contained in:
dev
2026-09-06 11:29:34 +03:00
parent d7a479c008
commit 034c92b160
5 changed files with 175 additions and 14 deletions
+9
View File
@@ -107,6 +107,13 @@ let totalEntries = 0;
let searchTimer = null;
let view = localStorage.getItem('journalView') === 'cards' ? 'cards' : 'list';
function filesHTML(files) {
if (!files || !files.length) return '';
return `<div class="entry-files">${files.map(f =>
`<a href="${API}/api/files/${f.id}" download>${esc(f.name)}</a>`
).join('')}</div>`;
}
function gridEntryHTML(e) {
return `
<div class="card">
@@ -115,6 +122,7 @@ function gridEntryHTML(e) {
<div class="name">${esc(e.student_name)}</div>
<div class="group">${esc(e.group_name)}</div>
<div class="desc">${esc(e.description)}</div>
${filesHTML(e.files)}
<div class="time">${new Date(e.created_at).toLocaleString('ru')}</div>
</div>
<button class="edit" onclick="openEdit(${e.id})" title="Редактировать">✎</button>
@@ -133,6 +141,7 @@ function cardEntryHTML(e) {
<div class="name">${esc(e.student_name)}</div>
<div class="group">${esc(e.group_name)}</div>
<div class="desc">${esc(e.description)}</div>
${filesHTML(e.files)}
</div>
<div class="foot">
<span>${new Date(e.created_at).toLocaleString('ru')}</span>