From fc2b7f762a9d28de853cc76518278282c6a2d8f2 Mon Sep 17 00:00:00 2001 From: dv Date: Mon, 23 Mar 2026 22:25:01 +0300 Subject: [PATCH] 123 --- docker-compose.local.yml | 22 ++++++++++++++++++ intradesk-monitor.zip | Bin 101564 -> 0 bytes public/index.html | 6 +++++ public/js/auth.js | 2 ++ public/js/ui.js | 31 ++++++++++++++++++------- refresh-service.js | 42 +++++++++++++++++++++++++++++++++- server.js | 24 +++++++++++++++++++- start-local.bat | 48 +++++++++++++++++++++++++++++++++++++++ 8 files changed, 165 insertions(+), 10 deletions(-) create mode 100644 docker-compose.local.yml delete mode 100644 intradesk-monitor.zip create mode 100644 start-local.bat diff --git a/docker-compose.local.yml b/docker-compose.local.yml new file mode 100644 index 0000000..611a241 --- /dev/null +++ b/docker-compose.local.yml @@ -0,0 +1,22 @@ +services: + intradesk-monitor: + build: + context: . + dockerfile: Dockerfile + container_name: intradesk-monitor-local + restart: unless-stopped + env_file: .env + ports: + - "${APP_PORT:-3000}:3000" + volumes: + - ./data:/data + environment: + NODE_ENV: production + PORT: 3000 + DB_PATH: /data/intradesk.db + healthcheck: + test: ["CMD", "node", "-e", "const http=require('http');const req=http.get('http://127.0.0.1:3000/healthz',res=>process.exit(res.statusCode===200?0:1));req.on('error',()=>process.exit(1));"] + interval: 30s + timeout: 5s + retries: 3 + start_period: 15s diff --git a/intradesk-monitor.zip b/intradesk-monitor.zip deleted file mode 100644 index eca1bde92752a9a625f462319724c15293f17cd3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 101564 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 diff --git a/public/index.html b/public/index.html index 0765aba..5593214 100644 --- a/public/index.html +++ b/public/index.html @@ -76,6 +76,12 @@ Sync Done with Intra by status_id +
+ +
diff --git a/public/js/auth.js b/public/js/auth.js index 37c271f..5d75cec 100644 --- a/public/js/auth.js +++ b/public/js/auth.js @@ -282,6 +282,7 @@ function applySettings(s) { if (f('setting-auto-reset-on-update')) f('setting-auto-reset-on-update').checked = String(s.auto_reset_on_update || '0') === '1'; if (f('setting-sync-reply-wait')) f('setting-sync-reply-wait').checked = String(s.sync_reply_wait || '0') === '1'; if (f('setting-sync-done-intra')) f('setting-sync-done-intra').checked = String(s.sync_done_with_intra || '0') === '1'; + if (f('setting-sync-addfield-status')) f('setting-sync-addfield-status').checked = String(s.sync_addfield_status || '0') === '1'; if (f('setting-intra-done-status-ids')) f('setting-intra-done-status-ids').value = s.intra_done_status_ids || ''; if (f('apikey-status')) f('apikey-status').textContent = s.api_key_set ? '(ключ задан ✓)' : '(не задан!)'; syncDoneSelectFromInput(); @@ -341,6 +342,7 @@ async function saveSettings() { auto_reset_on_update: document.getElementById('setting-auto-reset-on-update')?.checked ? '1' : '0', sync_reply_wait: document.getElementById('setting-sync-reply-wait')?.checked ? '1' : '0', sync_done_with_intra: document.getElementById('setting-sync-done-intra')?.checked ? '1' : '0', + sync_addfield_status: document.getElementById('setting-sync-addfield-status')?.checked ? '1' : '0', intra_done_status_ids: document.getElementById('setting-intra-done-status-ids')?.value.trim() || '', }; const apiKey = document.getElementById('api-key').value.trim(); diff --git a/public/js/ui.js b/public/js/ui.js index 37b9735..2ce4c4b 100644 --- a/public/js/ui.js +++ b/public/js/ui.js @@ -1,13 +1,14 @@ // ── Column visibility ───────────────────────────────────────────── const ALL_COLS = [ - { key:'num', label:'# Заявка', def:true }, - { key:'title', label:'Тема', def:true }, - { key:'intrastatus', label:'Статус в интре', def:true }, - { key:'client', label:'Клиент', def:true }, - { key:'date', label:'Время ответа', def:true }, - { key:'created', label:'Создана', def:true }, - { key:'preview', label:'Превью/Заметка', def:true }, - { key:'status', label:'Статус', def:true }, + { key:'num', label:'# Заявка', def:true }, + { key:'title', label:'Тема', def:true }, + { key:'intrastatus', label:'Статус в интре', def:true }, + { key:'servstatus', label:'Служ. статус в интре', def:true }, + { key:'client', label:'Клиент', def:true }, + { key:'date', label:'Время ответа', def:true }, + { key:'created', label:'Создана', def:true }, + { key:'preview', label:'Превью/Заметка', def:true }, + { key:'status', label:'Статус', def:true }, ]; let visibleCols = new Set(ALL_COLS.filter(c=>c.def).map(c=>c.key)); let colMenuOpen = false; @@ -454,6 +455,18 @@ function intraStatusBadge(task) { else if (lc.includes('ожидан') || lc.includes('hold')) cls = 'sb-intra-hold'; return `${esc(name)}`; } +// ── IntraDesk additional field status badge ─────────────────────── +function intraAddfieldBadge(task) { + const val = task._addfield_status; + if (!val) return ''; + const match = (typeof MARKS_CONFIG !== 'undefined' ? MARKS_CONFIG : []) + .find((m) => m.label && m.label.toLowerCase() === val.toLowerCase()); + if (match) { + return `` + + `${esc(val)}`; + } + return `${esc(val)}`; +} // Who answered — ring class for avatar function whoAnsweredRing(lc){ if(!lc) return 'ring-none'; @@ -704,6 +717,7 @@ function renderTable(keepPage){ ${sc('num') ?'#' :''} ${sc('title') ?'Тема' :''} ${sc('intrastatus')?'Статус в интре':''} + ${sc('servstatus') ?'Служ. статус в интре':''} ${sc('status') ?'Статус' :''} ${sc('client') ?'Кто ответил' :''} ${sc('date') ?`Время ответа${sortArrow('date')}` :''} @@ -742,6 +756,7 @@ function renderTable(keepPage){ ${sc('num') ?`#${num}${unreadDot}`:''} ${sc('title') ?`
${esc(task.name)}
${orgName?`
${esc(orgName)}
`:''}`:''} ${sc('intrastatus')?`${intraStatusBadge(task)}`:''} + ${sc('servstatus') ?`${intraAddfieldBadge(task)}`:''} ${sc('status') ?`${statusPickerHtml(tid)}`:''} ${sc('client') ?`
${avatarInitials(authorName)}
diff --git a/refresh-service.js b/refresh-service.js index 25e2bb2..4ac9c4d 100644 --- a/refresh-service.js +++ b/refresh-service.js @@ -22,6 +22,8 @@ const REMOVE_EVENT_TYPES = new Set([ const COMMENT_EVENT_TYPES = new Set([50, 55]); +const INTRA_ADDFIELD_ALIAS = 'addfield_2f6eaa2vnutrennij_statusSingleSelect'; + function toBoolFlag(value) { return String(value || '0') === '1' || value === true; } @@ -164,6 +166,9 @@ function createRefreshService({ db, fetch, getSettings, sseBroadcast, logger = c INSERT INTO marks(task_id,mark_type,is_active,set_by,set_at) VALUES(?,?,?,?,?) ON CONFLICT(task_id,mark_type) DO UPDATE SET is_active=excluded.is_active,set_by=excluded.set_by,set_at=excluded.set_at `), + getStatusKeyByLabel: db.prepare( + "SELECT key FROM internal_statuses WHERE is_active=1 AND lower(label)=lower(?) LIMIT 1" + ), }; function getSyncState() { @@ -205,6 +210,7 @@ function createRefreshService({ db, fetch, getSettings, sseBroadcast, logger = c auto_reset_on_update: toBoolFlag(s.auto_reset_on_update), sync_reply_wait: toBoolFlag(s.sync_reply_wait), sync_done_with_intra: toBoolFlag(s.sync_done_with_intra), + sync_addfield_status: toBoolFlag(s.sync_addfield_status), intra_done_status_ids: doneIds, }; } @@ -277,10 +283,29 @@ function createRefreshService({ db, fetch, getSettings, sseBroadcast, logger = c } } + async function updateIntraAdditionalField(taskNumber, statusLabel, apiKey) { + if (!apiKey) throw new Error('API ключ не задан'); + const url = `https://apigw.intradesk.ru/changes/v3/tasks/?ApiKey=${apiKey}`; + const response = await fetch(url, { + method: 'PUT', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ + number: Number(taskNumber), + blocks: { [INTRA_ADDFIELD_ALIAS]: JSON.stringify({ value: statusLabel || null }) }, + Channel: 'api', + }), + timeout: 15000, + }); + if (!response.ok) { + const text = await response.text().catch(() => ''); + throw new Error(`IntraDesk вернул ${response.status}: ${text.slice(0, 200)}`); + } + } + async function applyStatusAutomationForChangedTasks(changedTaskIds, tasksById, settings, reason = '') { const changedIds = [...(changedTaskIds || [])].map((v) => String(v)); if (!changedIds.length) return; - if (!settings.sync_done_with_intra && !settings.sync_reply_wait && !settings.auto_reset_on_update) return; + if (!settings.sync_done_with_intra && !settings.sync_reply_wait && !settings.auto_reset_on_update && !settings.sync_addfield_status) return; const systemStatuses = getSystemStatusKeys(); const doneKey = systemStatuses.done || null; @@ -326,6 +351,18 @@ function createRefreshService({ db, fetch, getSettings, sseBroadcast, logger = c if (!applied && settings.auto_reset_on_update && currentMark) { clearTaskMarks(taskId, 'system'); + applied = true; + } + + if (settings.sync_addfield_status) { + const addfieldVal = task._addfield_status; + if (addfieldVal) { + const row = stmts.getStatusKeyByLabel.get(addfieldVal); + if (row && currentMark !== row.key) { + setExclusiveMark(taskId, row.key, 'system'); + logger.log(`[Refresh] Inbound addfield sync: task ${taskId} → mark "${row.key}" (${reason})`); + } + } } } } @@ -421,6 +458,8 @@ function createRefreshService({ db, fetch, getSettings, sseBroadcast, logger = c if (task.executorgroup && dictMap[task.executorgroup]) task._executorgroupname = dictMap[task.executorgroup]; const statusKey = task.statusid || task.status; if (statusKey && dictMap[statusKey]) task._statusname = dictMap[statusKey]; + const af = (task.additionalfields?.data || []).find((d) => d.alias === INTRA_ADDFIELD_ALIAS); + task._addfield_status = af?.value?.stringvalue || null; }); upsertIntraStatusesFromTasks(tasks); @@ -741,6 +780,7 @@ function createRefreshService({ db, fetch, getSettings, sseBroadcast, logger = c requestRemoveTask, parseWebhookAction, extractWebhookTaskId, + updateIntraAdditionalField, }; } diff --git a/server.js b/server.js index 45f900c..37cc83c 100644 --- a/server.js +++ b/server.js @@ -767,6 +767,26 @@ app.post('/api/marks', auth, (req, res) => { task_id, mark_type: markType, value: !!value, by: req.user.username, at: now, cleared_marks: clearedMarks, }); + + // Outbound sync: push mark label to IntraDesk additional field + const settings = getSettings(); + if (settings.sync_addfield_status === '1' && settings.api_key) { + try { + const cacheRow = db.prepare('SELECT data FROM tasks_cache WHERE id=1').get(); + const tasks = JSON.parse(cacheRow?.data || '[]'); + const task = tasks.find((t) => String(t.id) === String(task_id)); + if (task) { + const statusLabel = value + ? db.prepare('SELECT label FROM internal_statuses WHERE key=?').get(markType)?.label || null + : null; + refreshService.updateIntraAdditionalField(task.tasknumber, statusLabel, settings.api_key) + .catch((e) => console.error('[Marks] IntraDesk addfield update error:', e.message)); + } + } catch (e) { + console.error('[Marks] Outbound sync error:', e.message); + } + } + res.json({ ok: true }); }); @@ -904,6 +924,7 @@ const ALLOWED_SETTINGS = new Set([ 'sync_reply_wait', 'sync_done_with_intra', 'intra_done_status_ids', + 'sync_addfield_status', ]); app.get('/api/settings', auth, adminOnly, (req, res) => { @@ -922,6 +943,7 @@ app.get('/api/settings', auth, adminOnly, (req, res) => { sync_reply_wait: s.sync_reply_wait || '0', sync_done_with_intra: s.sync_done_with_intra || '0', intra_done_status_ids: s.intra_done_status_ids || '', + sync_addfield_status: s.sync_addfield_status || '0', api_key_set: !!s.api_key, webhook_secret_set: !!s.webhook_secret, }); @@ -935,7 +957,7 @@ app.post('/api/settings', auth, adminOnly, (req, res) => { setSetting(k, normalizeCsvIds(v)); return; } - if (k === 'auto_reset_on_update' || k === 'sync_reply_wait' || k === 'sync_done_with_intra') { + if (k === 'auto_reset_on_update' || k === 'sync_reply_wait' || k === 'sync_done_with_intra' || k === 'sync_addfield_status') { setSetting(k, String(v) === '1' || v === true ? '1' : '0'); return; } diff --git a/start-local.bat b/start-local.bat new file mode 100644 index 0000000..b938cc6 --- /dev/null +++ b/start-local.bat @@ -0,0 +1,48 @@ +@echo off +setlocal enabledelayedexpansion + +cd /d "%~dp0" + +if not exist ".env" ( + echo [ERROR] Файл .env не найден. + echo Скопируйте .env.example в .env и заполните переменные. + pause + exit /b 1 +) + +if not exist "data" mkdir data + +where docker >nul 2>&1 +if errorlevel 1 ( + echo [ERROR] Docker не найден. Установите Docker Desktop: https://www.docker.com/products/docker-desktop + pause + exit /b 1 +) + +:: Читаем PORT из .env для вывода в консоль +set PORT=3000 +for /f "usebackq tokens=1,* delims==" %%A in (".env") do ( + set "ln=%%A" + if /i "!ln!" == "APP_PORT" set PORT=%%B +) + +echo. +echo ================================================ +echo Intra Monitor — локальный запуск в Docker +echo Сборка образа из исходников... +echo ================================================ +echo. + +docker compose -f docker-compose.local.yml up -d --build +if errorlevel 1 ( + echo [ERROR] docker compose завершился с ошибкой. + pause + exit /b 1 +) + +echo. +echo [OK] Контейнер запущен: http://localhost:%PORT% +echo Логи: docker compose -f docker-compose.local.yml logs -f +echo Стоп: docker compose -f docker-compose.local.yml down +echo. +pause