From 07344482cd579d3449d502de94a72eee81c0f632 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9CNaeel=E2=80=9D?= Date: Mon, 15 Jun 2026 07:51:14 +0400 Subject: [PATCH] =?UTF-8?q?fix(ui):=20=D0=BE=D0=B1=D1=8B=D1=87=D0=BD=D1=8B?= =?UTF-8?q?=D0=B9=20form=20submit=20=D0=B1=D0=B5=D0=B7=20JS=20submit()?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Форма теперь в DOM, кнопка type=submit. JS только переносит файлы в скрытый input перед отправкой. Браузер сам делает POST и следует редиректу. --- site/app.py | 2 +- site/templates/upload.html | 34 ++++++++++++++-------------------- 2 files changed, 15 insertions(+), 21 deletions(-) diff --git a/site/app.py b/site/app.py index 222a663..3a90a89 100644 --- a/site/app.py +++ b/site/app.py @@ -1,7 +1,7 @@ """app.py — Точка входа и сборка слоёв.""" from dotenv import load_dotenv -from flask import Flask, render_template, request, redirect +from flask import Flask, render_template, request, redirect, url_for import json import schema diff --git a/site/templates/upload.html b/site/templates/upload.html index 6b48f71..b947f80 100644 --- a/site/templates/upload.html +++ b/site/templates/upload.html @@ -84,21 +84,17 @@ Загрузка договоров / допников
- - - - - -
-
Нет файлов — выберите file.docx / file.pdf / file.zip
+
+ +
+
Нет файлов — выберите file.docx / file.pdf / file.zip
- + +
{% if error %}
❌ {{ error }}
@@ -292,16 +288,14 @@ } } - processBtn.addEventListener('click', () => { - if (fileQueue.length === 0) return; + processBtn.addEventListener('click', (e) => { + if (fileQueue.length === 0) { + e.preventDefault(); + return; + } const dt = new DataTransfer(); - fileQueue.forEach(item => { - if (item.file) dt.items.add(item.file); - }); + fileQueue.forEach(item => { if (item.file) dt.items.add(item.file); }); hiddenInput.files = dt.files; - processBtn.disabled = true; - processBtn.innerHTML = ' Обработка...'; - document.getElementById('uploadForm').submit(); }); const style = document.createElement('style');