// help-users.js - Управление пользователями let users = []; let allUsers = []; let filteredUsers = []; let selectedUsers = []; let editSelectedUsers = []; let copySelectedUsers = []; async function loadUsers() { try { const response = await fetch('/api/users'); users = await response.json(); allUsers = users; // Получаем пользователей группы "help" const helpUsers = users.filter(user => user.groups && user.groups.includes('Секретарь')); filteredUsers = helpUsers; // Показываем пользователей группы help при создании заявки showHelpGroupUsers(); populateFilterDropdowns(); } catch (error) { console.error('Ошибка загрузки пользователей:', error); } } function populateFilterDropdowns() { const creatorFilter = document.getElementById('creator-filter'); const assigneeFilter = document.getElementById('assignee-filter'); // Проверяем существование элементов (они есть только на странице help.html) if (!creatorFilter || !assigneeFilter) { console.log('Фильтры не найдены (возможно, не на странице help.html)'); return; } creatorFilter.innerHTML = ''; assigneeFilter.innerHTML = ''; // Для заказчиков показываем всех пользователей users.forEach(user => { const creatorOption = document.createElement('option'); creatorOption.value = user.id; creatorOption.textContent = `${user.name} (${user.login})`; creatorFilter.appendChild(creatorOption); }); // Для исполнителей показываем только пользователей группы "help" const helpUsers = users.filter(user => user.groups && user.groups.includes('Секретарь')); helpUsers.forEach(user => { const assigneeOption = document.createElement('option'); assigneeOption.value = user.id; assigneeOption.textContent = `${user.name} (${user.login}) - группа "help"`; assigneeFilter.appendChild(assigneeOption); }); } // Функция для отображения пользователей группы help function showHelpGroupUsers() { const container = document.getElementById('help-group-users'); // Проверяем существование элемента (он есть только на странице help.html) if (!container) { console.log('Контейнер help-group-users не найден (возможно, не на странице help.html)'); return; } const helpUsers = users.filter(user => user.groups && user.groups.includes('Секретарь')); if (helpUsers.length === 0) { container.innerHTML = '
Нет пользователей в группе "help"
'; return; } container.innerHTML = `
Заявка будет автоматически назначена ${helpUsers.length} пользователям группы "help":
${helpUsers.map(user => `
${user.name} (${user.email})
`).join('')}
`; } // Старые функции фильтрации оставляем, но они теперь не используются для выбора исполнителей function filterUsers() { const searchInput = document.getElementById('user-search'); if (!searchInput) return; // Элемент есть только на странице help.html const search = searchInput.value.toLowerCase(); // Фильтруем пользователей группы "help" filteredUsers = users.filter(user => user.groups && user.groups.includes('Секретарь') && ( user.name.toLowerCase().includes(search) || user.login.toLowerCase().includes(search) || user.email.toLowerCase().includes(search) ) ); // Не рендерим чеклист, так как выбираем всех пользователей группы help } function filterEditUsers() { // Не используется, так как заявка автоматически назначается всем пользователям группы help } function filterCopyUsers() { // Не используется, так как заявка автоматически назначается всем пользователям группы help } // Старые функции рендеринга оставляем для совместимости, но они не будут использоваться function renderUsersChecklist() { // Не рендерим чеклист, так как выбираем всех пользователей группы help } function renderEditUsersChecklist(filtered = users) { // Не рендерим чеклист, так как заявка автоматически назначается всем пользователям группы help } function renderCopyUsersChecklist(filtered = users) { // Не рендерим чеклист, так как заявка автоматически назначается всем пользователям группы help } // Старые функции выбора пользователей оставляем для совместимости function toggleUserSelection(checkbox, userId) { if (checkbox.checked) { selectedUsers.push(userId); } else { selectedUsers = selectedUsers.filter(id => id !== userId); } } function toggleEditUserSelection(checkbox, userId) { if (checkbox.checked) { editSelectedUsers.push(userId); } else { editSelectedUsers = editSelectedUsers.filter(id => id !== userId); } } function toggleCopyUserSelection(checkbox, userId) { if (checkbox.checked) { copySelectedUsers.push(userId); } else { copySelectedUsers = copySelectedUsers.filter(id => id !== userId); } }