diff --git a/public/info.js b/public/info.js index bd8ed82..923aea3 100644 --- a/public/info.js +++ b/public/info.js @@ -152,7 +152,7 @@ function exportToCSV() { URL.revokeObjectURL(url); } -// Функция выгрузки уникальных родителей для охраны с автоматической шириной столбца +// Функция выгрузки уникальных родителей для охраны с автоматической шириной столбца и сортировкой по алфавиту async function exportForGuard() { try { const res = await fetch('/api/info/registrations'); @@ -167,7 +167,9 @@ async function exportForGuard() { uniqueMap.set(reg.parent_name, { 'ФИО родителя': reg.parent_name }); } }); - const uniqueArray = Array.from(uniqueMap.values()); + let uniqueArray = Array.from(uniqueMap.values()); + // Сортировка по ФИО родителя (русский алфавит, case-insensitive) + uniqueArray.sort((a, b) => a['ФИО родителя'].localeCompare(b['ФИО родителя'], 'ru')); // Вычисляем максимальную длину ФИО let maxLen = 0; @@ -191,7 +193,7 @@ async function exportForGuard() { } } -// Функция выгрузки уникальных учителей (без дублирования) +// Функция выгрузки уникальных учителей (без дублирования) с сортировкой по алфавиту async function exportTeachersForGuard() { try { const res = await fetch('/api/info/registrations'); @@ -206,7 +208,9 @@ async function exportTeachersForGuard() { uniqueTeachers.set(reg.teacher, { 'Учитель': reg.teacher }); } }); - const uniqueArray = Array.from(uniqueTeachers.values()); + let uniqueArray = Array.from(uniqueTeachers.values()); + // Сортировка по имени учителя (русский алфавит, case-insensitive) + uniqueArray.sort((a, b) => a['Учитель'].localeCompare(b['Учитель'], 'ru')); if (uniqueArray.length === 0) { alert('Нет данных об учителях');