diff --git a/site/app.py b/site/app.py
index fbdde64..0973b7d 100644
--- a/site/app.py
+++ b/site/app.py
@@ -151,6 +151,10 @@ class ContractsApp:
paragraphs = sum(1 for e in elements if e.get("type") == "paragraph")
tables = sum(1 for e in elements if e.get("type") == "table")
table_rows = sum(len(e.get("rows", [])) for e in elements if e.get("type") == "table")
+ table_headers = [
+ e["rows"][0] if e.get("rows") else []
+ for e in elements if e.get("type") == "table"
+ ]
return {
"type": "file_done",
"name": name,
@@ -159,6 +163,7 @@ class ContractsApp:
"paragraphs": paragraphs,
"tables": tables,
"table_rows": table_rows,
+ "table_headers": table_headers,
"errors": errors,
"text_len": len(text) if text else 0,
"text_preview": text[:200] if text else "",
diff --git a/site/templates/upload.html b/site/templates/upload.html
index 2c38d96..c3c88cf 100644
--- a/site/templates/upload.html
+++ b/site/templates/upload.html
@@ -60,7 +60,7 @@
@@ -425,6 +425,14 @@
html += '
' + d.text_preview + '
';
}
+ if (d.table_headers && d.table_headers.length > 0) {
+ html += '
Первые строки таблиц:
';
+ d.table_headers.forEach(function(hdr, ti) {
+ html += '
Таблица ' + (ti+1) + ':
';
+ html += '
' + hdr.map(function(c) { return c || '(пусто)'; }).join(' | ') + '';
+ });
+ }
+
document.getElementById('modalBody').innerHTML = html;
document.getElementById('modalOverlay').classList.add('open');
}