From f45ecb603de2c520ba767ac4abbd331eaf7aab4d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9CNaeel=E2=80=9D?= Date: Mon, 24 Aug 2026 16:47:48 +0300 Subject: [PATCH] =?UTF-8?q?v0.0.68:=20=D0=BA=D0=BD=D0=BE=D0=BF=D0=BA=D0=B0?= =?UTF-8?q?=20=C2=AB=D0=92=D1=8B=D0=B1=D1=80=D0=B0=D1=82=D1=8C=20=D0=BF?= =?UTF-8?q?=D0=B0=D0=BF=D0=BA=D1=83=C2=BB=20=E2=80=94=20=D1=80=D0=B5=D0=BA?= =?UTF-8?q?=D1=83=D1=80=D1=81=D0=B8=D0=B2=D0=BD=D1=8B=D0=B9=20=D0=B2=D1=8B?= =?UTF-8?q?=D0=B1=D0=BE=D1=80=20=D0=BF=D0=B0=D0=BF=D0=BA=D0=B8=20=D1=81=20?= =?UTF-8?q?=D0=BF=D0=BE=D0=B4=D0=BF=D0=B0=D0=BF=D0=BA=D0=B0=D0=BC=D0=B8=20?= =?UTF-8?q?(webkitdirectory),=20=D0=BE=D1=82=D0=BD=D0=BE=D1=81=D0=B8=D1=82?= =?UTF-8?q?=D0=B5=D0=BB=D1=8C=D0=BD=D1=8B=D0=B9=20=D0=BF=D1=83=D1=82=D1=8C?= =?UTF-8?q?=20=D1=81=D0=BE=D1=85=D1=80=D0=B0=D0=BD=D1=8F=D0=B5=D1=82=D1=81?= =?UTF-8?q?=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- History/README.md | 1 + .../2026-08-24-folder-select-implemented.md | 18 +++++++ site/app.py | 2 +- site/templates/index.html | 47 +++++++++++++++++++ 4 files changed, 67 insertions(+), 1 deletion(-) create mode 100644 History/ux-frontend/2026-08-24-folder-select-implemented.md diff --git a/History/README.md b/History/README.md index 112b81f..418b597 100644 --- a/History/README.md +++ b/History/README.md @@ -104,6 +104,7 @@ - **2026-08-24-interrupt-eta-design.md** — дизайн: TTL-фикс + прерывание с сохранением + оценка времени + UI. - **2026-08-24-interrupt-eta-implemented.md** — v0.0.63: реализовано прерывание с сохранением + ETA + UI-таблица. - **2026-08-24-time-tickers-estimates.md** — v0.0.64–0.0.65: тикер текущего файла на всех этапах, мгновенные оценки времени по файлам и суммарно. +- **2026-08-24-folder-select-implemented.md** — v0.0.68: кнопка «Выбрать папку» (webkitdirectory, рекурсивно, относительный путь). - **2026-08-24-ui-locks-session-freeze.md** — v0.0.66: блокировки UI (выбор/удаление) на время работы, заморозка сессии + кнопка «Новая сессия». ## upload/ — загрузка файлов diff --git a/History/ux-frontend/2026-08-24-folder-select-implemented.md b/History/ux-frontend/2026-08-24-folder-select-implemented.md new file mode 100644 index 0000000..a502406 --- /dev/null +++ b/History/ux-frontend/2026-08-24-folder-select-implemented.md @@ -0,0 +1,18 @@ +# v0.0.68 — Кнопка «Выбрать папку» (webkitdirectory, рекурсивно) (2026-08-24) + +_ux-frontend. По плану `plans/2026-08-24-folder-select-plan.md`. Код: `site/templates/index.html`._ + +## Что сделано +- Кнопка «📁 Выбрать папку» (`#folderBtn`) + скрытый ``. +- Обработчик `change` `#folderInput`: + - `if (busy) return` — во время загрузки/обработки выбор папки заблокирован. + - Берёт `webkitRelativePath` (`TopFolder/Подпапка/file.pdf`), **отбрасывает верхнюю папку** → `rel`. + - `.zip` → раскрывает `listZipFiles`, префикс пути папки к именам; при ошибке — zip как есть. + - Документы (`.pdf .doc .docx .txt .md`) → `addFileWithDedup(new File([...], rel))`. + - Прочее — пропускается. Индикатор «Разбираю папку…», после — «✅ Добавлено N файлов». +- Дедуп/лимиты работают штатно (имя = относительный путь → подпапки не сливаются). +- Поддержка: Chrome/Edge — полно, Firefox — частично, Safari — нет (best-effort). + +## Проверка +- `node --check` — OK; `py_compile` — OK. +- Версия 0.0.67 → 0.0.68. diff --git a/site/app.py b/site/app.py index 8bc5576..4b20c5c 100644 --- a/site/app.py +++ b/site/app.py @@ -21,7 +21,7 @@ if _sys_path_root not in sys.path: sys.path.insert(0, _sys_path_root) # Версия приложения (меняется при изменениях) -VERSION = "0.0.67" +VERSION = "0.0.68" def setup_logging(): diff --git a/site/templates/index.html b/site/templates/index.html index 2a77d17..97222b2 100644 --- a/site/templates/index.html +++ b/site/templates/index.html @@ -144,6 +144,8 @@

+ +
@@ -200,6 +202,8 @@