ознакомление
This commit is contained in:
@@ -7,6 +7,8 @@ let filteredUsers = [];
|
||||
let selectedUsers = [];
|
||||
let editSelectedUsers = [];
|
||||
let copySelectedUsers = [];
|
||||
let acquaintanceSelectedUsers = []; // исполнители для ознакомления
|
||||
let acquaintanceSelectedAuthor = null; // выбранный автор для ознакомления
|
||||
|
||||
// Переменные для пользовательских списков
|
||||
let userLists = [];
|
||||
@@ -662,6 +664,76 @@ async function saveListFromModal() {
|
||||
closeListModal();
|
||||
}
|
||||
|
||||
// ==================== ФУНКЦИИ ДЛЯ ОЗНАКОМЛЕНИЯ (выбор исполнителей) ====================
|
||||
|
||||
function renderAcquaintanceUsersChecklist(filtered = users) {
|
||||
const container = document.getElementById('acquaintance-users-checklist');
|
||||
if (!container) return;
|
||||
container.innerHTML = filtered
|
||||
.filter(user => user.id !== currentUser?.id)
|
||||
.map(user => `
|
||||
<div class="checkbox-item">
|
||||
<label>
|
||||
<input type="checkbox" name="assignedUsers" value="${user.id}"
|
||||
onchange="toggleAcquaintanceUserSelection(this, ${user.id})"
|
||||
${acquaintanceSelectedUsers.includes(user.id) ? 'checked' : ''}>
|
||||
${escapeHtml(user.name)} (${user.login})
|
||||
</label>
|
||||
</div>
|
||||
`).join('');
|
||||
}
|
||||
|
||||
function toggleAcquaintanceUserSelection(checkbox, userId) {
|
||||
if (checkbox.checked) {
|
||||
if (!acquaintanceSelectedUsers.includes(userId)) acquaintanceSelectedUsers.push(userId);
|
||||
} else {
|
||||
acquaintanceSelectedUsers = acquaintanceSelectedUsers.filter(id => id !== userId);
|
||||
}
|
||||
}
|
||||
|
||||
async function filterAcquaintanceUsers() {
|
||||
const search = document.getElementById('acquaintance-user-search')?.value.toLowerCase() || '';
|
||||
let filtered = users.filter(user =>
|
||||
user.name.toLowerCase().includes(search) ||
|
||||
user.login.toLowerCase().includes(search) ||
|
||||
(user.email && user.email.toLowerCase().includes(search))
|
||||
);
|
||||
renderAcquaintanceUsersChecklist(filtered);
|
||||
}
|
||||
|
||||
// ==================== ФУНКЦИИ ДЛЯ ВЫБОРА АВТОРА В ЗАДАЧЕ ОЗНАКОМЛЕНИЯ ====================
|
||||
|
||||
function renderAcquaintanceAuthorsChecklist(filtered = users) {
|
||||
const container = document.getElementById('acquaintance-authors-checklist');
|
||||
if (!container) return;
|
||||
container.innerHTML = filtered
|
||||
.filter(user => user.id !== currentUser?.id) // можно разрешить выбирать себя, если нужно
|
||||
.map(user => `
|
||||
<div class="checkbox-item">
|
||||
<label>
|
||||
<input type="radio" name="acquaintance-author" value="${user.id}"
|
||||
onchange="toggleAcquaintanceAuthorSelection(this, ${user.id})"
|
||||
${acquaintanceSelectedAuthor === user.id ? 'checked' : ''}>
|
||||
${escapeHtml(user.name)} (${user.login})
|
||||
</label>
|
||||
</div>
|
||||
`).join('');
|
||||
}
|
||||
|
||||
function toggleAcquaintanceAuthorSelection(radio, userId) {
|
||||
acquaintanceSelectedAuthor = radio.checked ? userId : null;
|
||||
}
|
||||
|
||||
async function filterAcquaintanceAuthors() {
|
||||
const search = document.getElementById('acquaintance-author-search')?.value.toLowerCase() || '';
|
||||
let filtered = users.filter(user =>
|
||||
user.name.toLowerCase().includes(search) ||
|
||||
user.login.toLowerCase().includes(search) ||
|
||||
(user.email && user.email.toLowerCase().includes(search))
|
||||
);
|
||||
renderAcquaintanceAuthorsChecklist(filtered);
|
||||
}
|
||||
|
||||
// ==================== ВСПОМОГАТЕЛЬНЫЕ ФУНКЦИИ ====================
|
||||
|
||||
function escapeHtml(text) {
|
||||
@@ -705,6 +777,18 @@ window.closeListModal = closeListModal;
|
||||
window.saveListFromModal = saveListFromModal;
|
||||
window.filterListUsers = filterListUsers;
|
||||
|
||||
// Экспорт функций для ознакомления (исполнители)
|
||||
window.renderAcquaintanceUsersChecklist = renderAcquaintanceUsersChecklist;
|
||||
window.toggleAcquaintanceUserSelection = toggleAcquaintanceUserSelection;
|
||||
window.filterAcquaintanceUsers = filterAcquaintanceUsers;
|
||||
window.acquaintanceSelectedUsers = acquaintanceSelectedUsers;
|
||||
|
||||
// Экспорт функций для выбора автора
|
||||
window.renderAcquaintanceAuthorsChecklist = renderAcquaintanceAuthorsChecklist;
|
||||
window.toggleAcquaintanceAuthorSelection = toggleAcquaintanceAuthorSelection;
|
||||
window.filterAcquaintanceAuthors = filterAcquaintanceAuthors;
|
||||
window.acquaintanceSelectedAuthor = acquaintanceSelectedAuthor;
|
||||
|
||||
// Также экспортируем переменные, которые могут понадобиться в других скриптах
|
||||
window.selectedUsers = selectedUsers;
|
||||
window.editSelectedUsers = editSelectedUsers;
|
||||
|
||||
Reference in New Issue
Block a user