diff --git a/public/reports.js b/public/reports.js index a0221e5..85c532b 100644 --- a/public/reports.js +++ b/public/reports.js @@ -89,12 +89,18 @@ function populateUserFilter(data) { const select = document.getElementById('report-user-filter'); const usersMap = new Map(); data.forEach(item => { - usersMap.set(item.user_id, item.user_name); + // Убедимся, что имя не null + const name = item.user_name || 'Без имени'; + usersMap.set(item.user_id, name); }); let options = ''; - // Сортируем по имени - const sorted = Array.from(usersMap.entries()).sort((a, b) => a[1].localeCompare(b[1])); + // Сортируем по имени, защищая от null/undefined + const sorted = Array.from(usersMap.entries()).sort((a, b) => { + const nameA = a[1] || ''; + const nameB = b[1] || ''; + return nameA.localeCompare(nameB); + }); for (let [id, name] of sorted) { options += ``; } @@ -161,8 +167,8 @@ function renderReport(data) { ${escapeHtml(item.task_title)} ${escapeHtml(truncateText(item.task_description, 50))} ${formatDateTime(item.due_date) || '—'} - ${escapeHtml(item.user_name)} - ${escapeHtml(item.creator_name)} + ${escapeHtml(item.user_name || 'Неизвестно')} + ${escapeHtml(item.creator_name || 'Неизвестно')} ${statusLabels[item.status] || item.status} ${formatDateTime(item.status_updated_at) || '—'}