индикатор загрузки в чеклист пользователей

This commit is contained in:
2026-02-13 21:27:07 +05:00
parent 40c454a786
commit db2ae5a654
3 changed files with 181 additions and 36 deletions

View File

@@ -856,7 +856,7 @@ async function loadTaskFiles(taskId) {
}
// Функция для выбора типа задачи
async function selectTaskType(type) {
async function selectTaskType_old(type) {
// Убираем активный класс со всех кнопок
document.querySelectorAll('.task-type-btn').forEach(btn => {
btn.classList.remove('active');
@@ -895,6 +895,60 @@ async function selectTaskType(type) {
await loadUsers();
}
}
// ui.js - обновить функцию selectTaskType
async function selectTaskType(type) {
// Убираем активный класс со всех кнопок
document.querySelectorAll('.task-type-btn').forEach(btn => {
btn.classList.remove('active');
});
// Добавляем активный класс выбранной кнопке
const selectedBtn = document.querySelector(`.task-type-btn[data-type="${type}"]`);
if (selectedBtn) {
selectedBtn.classList.add('active');
}
// Устанавливаем значение в скрытое поле
document.getElementById('task-type').value = type;
// Обновляем форму
updateTaskFormBasedOnType(type);
suggestDefaultTitle(type);
// Очищаем выбранных пользователей при смене типа
selectedUsers = [];
// Показываем загрузку
const checklist = document.getElementById('users-checklist');
if (checklist) {
checklist.innerHTML = '<div class="loading-spinner">⏳ Загрузка доступных пользователей...</div>';
}
// Загружаем пользователей для выбранного типа
try {
if (type === 'document') {
await reloadUsersForDocumentType();
} else if (['it', 'ahch', 'psychologist', 'speech_therapist', 'hr', 'certificate', 'e_journal'].includes(type)) {
const groupNames = {
'it': 'ИТ специалист',
'ahch': 'АХЧ',
'psychologist': 'психолог',
'speech_therapist': 'логопед',
'hr': 'Диспетчер',
'certificate': 'Администрация',
'e_journal': 'Админ ЭЖ'
};
await reloadUsersForType(groupNames[type]);
} else {
await loadUsers();
}
} catch (error) {
console.error('Ошибка загрузки пользователей:', error);
if (checklist) {
checklist.innerHTML = '<div class="error">Ошибка загрузки пользователей</div>';
}
}
}
// функция для перезагрузки пользователей для типа "document"
async function reloadUsersForDocumentType() {
try {