отчет null
This commit is contained in:
@@ -89,12 +89,18 @@ function populateUserFilter(data) {
|
|||||||
const select = document.getElementById('report-user-filter');
|
const select = document.getElementById('report-user-filter');
|
||||||
const usersMap = new Map();
|
const usersMap = new Map();
|
||||||
data.forEach(item => {
|
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 = '<option value="">Все пользователи</option>';
|
let options = '<option value="">Все пользователи</option>';
|
||||||
// Сортируем по имени
|
// Сортируем по имени, защищая от null/undefined
|
||||||
const sorted = Array.from(usersMap.entries()).sort((a, b) => a[1].localeCompare(b[1]));
|
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) {
|
for (let [id, name] of sorted) {
|
||||||
options += `<option value="${id}">${escapeHtml(name)}</option>`;
|
options += `<option value="${id}">${escapeHtml(name)}</option>`;
|
||||||
}
|
}
|
||||||
@@ -161,8 +167,8 @@ function renderReport(data) {
|
|||||||
<td>${escapeHtml(item.task_title)}</td>
|
<td>${escapeHtml(item.task_title)}</td>
|
||||||
<td class="task-description" title="${escapeHtml(item.task_description)}">${escapeHtml(truncateText(item.task_description, 50))}</td>
|
<td class="task-description" title="${escapeHtml(item.task_description)}">${escapeHtml(truncateText(item.task_description, 50))}</td>
|
||||||
<td>${formatDateTime(item.due_date) || '—'}</td>
|
<td>${formatDateTime(item.due_date) || '—'}</td>
|
||||||
<td>${escapeHtml(item.user_name)}</td>
|
<td>${escapeHtml(item.user_name || 'Неизвестно')}</td>
|
||||||
<td>${escapeHtml(item.creator_name)}</td>
|
<td>${escapeHtml(item.creator_name || 'Неизвестно')}</td>
|
||||||
<td><span class="status-badge status-${item.status}">${statusLabels[item.status] || item.status}</span></td>
|
<td><span class="status-badge status-${item.status}">${statusLabels[item.status] || item.status}</span></td>
|
||||||
<td>${formatDateTime(item.status_updated_at) || '—'}</td>
|
<td>${formatDateTime(item.status_updated_at) || '—'}</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|||||||
Reference in New Issue
Block a user