// 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]; 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.cloneNode(true)); const assigneeOption = creatorOption.cloneNode(true); assigneeFilter.appendChild(assigneeOption); }); } function filterUsers() { const search = document.getElementById('user-search').value.toLowerCase(); filteredUsers = users.filter(user => 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.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.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) .map(user => `
`).join(''); } function renderEditUsersChecklist(filtered = users) { const container = document.getElementById('edit-users-checklist'); container.innerHTML = filtered .filter(user => user.id !== currentUser.id) .map(user => `
`).join(''); } function renderCopyUsersChecklist(filtered = users) { const container = document.getElementById('copy-users-checklist'); container.innerHTML = filtered .filter(user => user.id !== currentUser.id) .map(user => `
`).join(''); } 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); } }