diff --git a/public/nav-task-actions.js b/public/nav-task-actions.js index 2979ed1..921e0bb 100644 --- a/public/nav-task-actions.js +++ b/public/nav-task-actions.js @@ -1,18 +1,188 @@ // nav-task-actions.js – модальное окно с действиями задачи (сетка 3 колонки, центрированное) (function() { 'use strict'; - // Управление логированием: установите window.navTaskActionsLog = 1 для включения логов + const LOG_ENABLED = 0; function log(...args) { if (LOG_ENABLED) console.log(...args); } - log('currentUser:', currentUser); - //log('currentUser.role:', currentUser.role); + // ========== ВСПОМОГАТЕЛЬНЫЕ ФУНКЦИИ ДЛЯ РЕКВИЗИТОВ ========== + function escapeHtml(str) { + if (!str) return ''; + return String(str).replace(/[&<>]/g, function(m) { + if (m === '&') return '&'; + if (m === '<') return '<'; + if (m === '>') return '>'; + return m; + }); + } + function updateTaskCardDisplay(taskId, data) { + const taskCards = document.querySelectorAll(`[data-task-id="${taskId}"]`); + taskCards.forEach(card => { + let docContainer = card.querySelector('.document-fields-display'); + if (!docContainer) { + docContainer = document.createElement('div'); + docContainer.className = 'document-fields-display'; + const header = card.querySelector('.task-header'); + if (header) header.after(docContainer); + else card.prepend(docContainer); + } + let html = '