// 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; // Фильтруем только секретарей filteredUsers = users.filter(user => user.role === 'secretary'); renderUsersChecklist(); renderEditUsersChecklist(); renderCopyUsersChecklist(); populateFilterDropdowns(); } catch (error) { console.error('Ошибка загрузки пользователей:', error); } } function populateFilterDropdowns() { const creatorFilter = document.getElementById('creator-filter'); const assigneeFilter = document.getElementById('assignee-filter'); 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); // Для исполнителей показываем только секретарей if (user.role === 'secretary') { const assigneeOption = document.createElement('option'); assigneeOption.value = user.id; assigneeOption.textContent = `${user.name} (${user.login}) - ldap_api`; assigneeFilter.appendChild(assigneeOption); } }); } function filterUsers() { const search = document.getElementById('user-search').value.toLowerCase(); // Фильтруем только секретарей filteredUsers = users.filter(user => user.role === 'secretary' && ( user.name.toLowerCase().includes(search) || user.login.toLowerCase().includes(search) || user.email.toLowerCase().includes(search) ) ); renderUsersChecklist(); } function filterEditUsers() { const search = document.getElementById('edit-user-search').value.toLowerCase(); // Фильтруем только секретарей const filtered = users.filter(user => user.role === 'secretary' && ( user.name.toLowerCase().includes(search) || user.login.toLowerCase().includes(search) || user.email.toLowerCase().includes(search) ) ); renderEditUsersChecklist(filtered); } function filterCopyUsers() { const search = document.getElementById('copy-user-search').value.toLowerCase(); // Фильтруем только секретарей const filtered = users.filter(user => user.role === 'secretary' && ( user.name.toLowerCase().includes(search) || user.login.toLowerCase().includes(search) || user.email.toLowerCase().includes(search) ) ); renderCopyUsersChecklist(filtered); } function renderUsersChecklist() { const container = document.getElementById('users-checklist'); // Показываем только секретарей container.innerHTML = filteredUsers .filter(user => user.id !== currentUser.id && user.role === 'secretary') .map(user => `