// 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('help'));
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('help'));
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('help'));
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('help') && (
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);
}
}