5.1 KiB
5.1 KiB
Changelog
[sync2 vibe] — 2026-03-23
Новое: «Служебный статус в интре» — двусторонняя синхронизация
Колонка в таблице заявок
- Добавлена новая колонка «Служ. статус в интре» (
servstatus) — отображает значение дополнительного поляaddfield_2f6eaa2vnutrennij_statusSingleSelectиз IntraDesk - Колонка интерактивная: при наведении открывается выпадающий пикер с полным списком внутренних статусов (аналогично колонке «Статус»)
- Текущее значение подсвечивается цветом соответствующего внутреннего статуса (если совпадает по label)
- Есть пункт «— очистить» для сброса значения в IntraDesk
Синхронизация IntraDesk → наш статус (входящая)
- При каждом обновлении задачи в ходе инкрементального или полного сканирования проверяется значение доп. поля
- Если значение доп. поля совпадает с label одного из активных внутренних статусов — этот статус автоматически выставляется через
setExclusiveMark(без участия пользователя) - Управляется настройкой
sync_addfield_status(по умолчанию выключена)
Синхронизация наш статус → IntraDesk (исходящая)
- При смене внутреннего статуса через
POST /api/marksзначение нового статуса (егоlabel) автоматически записывается в доп. поле IntraDesk черезPUT /changes/v3/tasks/ - Если статус снимается без замены — доп. поле очищается (
null) - Работает только при включённом
sync_addfield_status
Прямое редактирование из UI
- Новый эндпоинт
POST /api/tasks/:taskId/intra-addfield— позволяет записать произвольное значение в доп. поле IntraDesk напрямую, независимо от внутреннего статуса - После успешной записи локальный кеш задачи обновляется немедленно (без ожидания следующего сканирования)
- SSE-событие
intra_addfieldрассылается всем подключённым клиентам — обновление отображается в реальном времени на других вкладках/у других пользователей - Тост-уведомление показывается другим пользователям при изменении
Настройки
- Новая настройка «Синхронизировать служебный статус с доп. полем IntraDesk (двусторонняя)» в панели администратора → Status Automation
- Ключ:
sync_addfield_status, булева строка'0'/'1'
Запуск локально
- Добавлен
docker-compose.local.yml— compose-файл для локальной сборки из исходников (вместо пулла готового образа из registry), данные хранятся в./data - Добавлен
start-local.bat— батник для запуска локального Docker одним двойным кликом
Затронутые файлы
| Файл | Изменения |
|---|---|
refresh-service.js |
Константа алиаса доп. поля; извлечение _addfield_status при fetch; updateIntraAdditionalField(); inbound-синхронизация в applyStatusAutomationForChangedTasks; sync_addfield_status в normalizeSettings |
server.js |
Outbound-вызов после POST /api/marks; новый эндпоинт POST /api/tasks/:taskId/intra-addfield; настройка sync_addfield_status в ALLOWED_SETTINGS и GET/POST /api/settings |
public/js/ui.js |
Колонка servstatus в ALL_COLS; функции _addfieldBadgeHtml, intraAddfieldPickerHtml, setIntraAddfield |
public/js/sse.js |
Обработчик события intra_addfield |
public/js/auth.js |
Загрузка/сохранение чекбокса sync_addfield_status |
public/index.html |
Чекбокс настройки в панели Status Automation |
docker-compose.local.yml |
Новый файл — compose для локальной разработки |
start-local.bat |
Новый файл — скрипт запуска локального Docker |