From b26016fcb15f20105ce3aaf9041e57d2fb1e2c1b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9CNaeel=E2=80=9D?= Date: Sun, 21 Jun 2026 09:50:16 +0400 Subject: [PATCH] =?UTF-8?q?v1.0.86:=20=D0=BE=D0=B4=D0=B8=D0=BD=20fetch=20e?= =?UTF-8?q?lements=5Fjson,=20=D0=BE=D0=B1=D0=B5=20=D0=BF=D0=B0=D0=BD=D0=B5?= =?UTF-8?q?=D0=BB=D0=B8=20=E2=80=94=20=D0=B2=D1=81=D0=B5=20=D1=8D=D0=BB?= =?UTF-8?q?=D0=B5=D0=BC=D0=B5=D0=BD=D1=82=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- index.cfm | 131 ++++++++++++++++++++++++++---------------------------- 1 file changed, 62 insertions(+), 69 deletions(-) diff --git a/index.cfm b/index.cfm index 83d70b2..dacef5a 100644 --- a/index.cfm +++ b/index.cfm @@ -71,7 +71,7 @@
Nubes - Сверка договоров — LLM v1.0.85 — Lucee + Сверка договоров — LLM v1.0.86 — Lucee
@@ -562,14 +562,70 @@ async function showText(i) { modal.classList.add('wide'); document.getElementById('modalOverlay').classList.add('open'); - // Левая панель: сырой текст var leftHtml = 'Загрузка...'; + var rightHtml = ''; + if (docId) { try { - var vResp = await fetch('/view.cfm?doc_id=' + docId); - var rawText = await vResp.text(); - rawText = rawText.replace(/^\s+/, ''); - leftHtml = '
' + rawText.replace(//g,'>') + '
'; + var qResp = await fetch('/api.cfm?action=query&sql=SELECT%20elements_json%20FROM%20documents%20WHERE%20id%3D\'' + docId + '\''); + var qData = await qResp.json(); + var elements = []; + if (qData.OK && qData.ROWS && qData.ROWS.length > 0) { + var ej = qData.ROWS[0].ELEMENTS_JSON; + if (typeof ej === 'object' && ej.Value) ej = ej.Value; + elements = JSON.parse(ej); + } + + // Общий textify для обеих панелей + var textLines = []; + elements.forEach(function(el) { + var etype = el.type || el.TYPE || '?'; + if (etype === 'paragraph') { + textLines.push(el.text || el.TEXT || ''); + } else if (etype === 'table') { + var rows = el.rows || el.ROWS || []; + if (rows.length > 0) { + var ncols = (rows[0]||[]).length; + textLines.push('--- Таблица ' + rows.length + '×' + ncols + ' ---'); + rows.forEach(function(row) { + var cells = (row||[]).map(function(c){ return String(c||'').replace(/\n/g,' ').replace(/\|/g,'\\|'); }); + textLines.push('| ' + cells.join(' | ') + ' |'); + }); + textLines.push(''); + } + } + }); + var textify = textLines.join('\n').replace(//g,'>'); + + // Левая: сырой текст (textify) + leftHtml = '
' + textify + '
'; + + // Правая: статистика + textify + rightHtml += '
Размер' + formatSize(f.size) + '
'; + rightHtml += '
Изменён' + formatDate(f.lastModified) + '
'; + if (f.parseInfo) { + var d = f.parseInfo; + rightHtml += '
Элементов' + (d.ELEMENT_COUNT||0) + '
'; + rightHtml += '
Параграфов' + (d.PARAGRAPHS||0) + '
'; + rightHtml += '
Таблиц' + (d.TABLES||0) + '
'; + rightHtml += '
Строк таблиц' + (d.TABLE_ROWS||0) + '
'; + if (d.PAGES) rightHtml += '
Страниц' + d.PAGES + '
'; + if (d.PARSE_TIME_MS) { + rightHtml += '
Время парсинга' + (d.PARSE_TIME_MS > 1000 ? (d.PARSE_TIME_MS/1000).toFixed(1) + ' с' : d.PARSE_TIME_MS + ' мс') + '
'; + } + if (d.TEXT_LENGTH) rightHtml += '
Символов' + d.TEXT_LENGTH.toLocaleString() + '
'; + if (d.ERRORS && d.ERRORS.length > 0) { + rightHtml += '
Ошибки:
'; + rightHtml += '
' + d.ERRORS.join('\n') + '
'; + } + } + rightHtml += '
Все элементы:
'; + rightHtml += '
' + textify + '
'; + rightHtml += '
doc_id' + (f.doc_id || '—') + '
'; + if (f.supp_id) { + rightHtml += '
supp_id' + f.supp_id + '
'; + rightHtml += '
Тип ДС' + (f.supp_type || '—') + '
'; + } } catch(e) { leftHtml = 'Ошибка'; } @@ -577,69 +633,6 @@ async function showText(i) { leftHtml = '(ещё не загружен)'; } - // Правая панель: распарсено — все элементы полностью - var rightHtml = ''; - // Базовая инфа сверху - rightHtml += '
Размер' + formatSize(f.size) + '
'; - rightHtml += '
Изменён' + formatDate(f.lastModified) + '
'; - if (f.parseInfo) { - var d = f.parseInfo; - rightHtml += '
Элементов' + (d.ELEMENT_COUNT||0) + '
'; - rightHtml += '
Параграфов' + (d.PARAGRAPHS||0) + '
'; - rightHtml += '
Таблиц' + (d.TABLES||0) + '
'; - rightHtml += '
Строк таблиц' + (d.TABLE_ROWS||0) + '
'; - if (d.PAGES) rightHtml += '
Страниц' + d.PAGES + '
'; - if (d.PARSE_TIME_MS) { - rightHtml += '
Время парсинга' + (d.PARSE_TIME_MS > 1000 ? (d.PARSE_TIME_MS/1000).toFixed(1) + ' с' : d.PARSE_TIME_MS + ' мс') + '
'; - } - if (d.TEXT_LENGTH) rightHtml += '
Символов' + d.TEXT_LENGTH.toLocaleString() + '
'; - if (d.ERRORS && d.ERRORS.length > 0) { - rightHtml += '
Ошибки:
'; - rightHtml += '
' + d.ERRORS.join('\n') + '
'; - } - } - - // Все элементы из БД - if (docId) { - try { - var qResp = await fetch('/api.cfm?action=query&sql=SELECT%20elements_json%20FROM%20documents%20WHERE%20id%3D\'' + docId + '\''); - var qData = await qResp.json(); - if (qData.OK && qData.ROWS && qData.ROWS.length > 0) { - var ej = qData.ROWS[0].ELEMENTS_JSON; - if (typeof ej === 'object' && ej.Value) ej = ej.Value; - var elements = JSON.parse(ej); - rightHtml += '
Все элементы:
'; - var lines = []; - elements.forEach(function(el) { - var etype = el.type || el.TYPE || '?'; - if (etype === 'paragraph') { - lines.push((el.text || el.TEXT || '')); - } else if (etype === 'table') { - var rows = el.rows || el.ROWS || []; - if (rows.length > 0) { - var ncols = (rows[0]||[]).length; - lines.push('--- Таблица ' + rows.length + '×' + ncols + ' ---'); - rows.forEach(function(row) { - var cells = (row||[]).map(function(c){ return String(c||'').replace(/\n/g,' ').replace(/\|/g,'\\|'); }); - lines.push('| ' + cells.join(' | ') + ' |'); - }); - lines.push(''); - } - } - }); - rightHtml += '
' + lines.join('\n').replace(//g,'>') + '
'; - } - } catch(e) { - rightHtml += '
Ошибка загрузки элементов
'; - } - } - - rightHtml += '
doc_id' + (f.doc_id || '—') + '
'; - if (f.supp_id) { - rightHtml += '
supp_id' + f.supp_id + '
'; - rightHtml += '
Тип ДС' + (f.supp_type || '—') + '
'; - } - var html = '
' + '
Сырой текст
' + leftHtml + '
' + '
Распарсено
' + rightHtml + '
' +