Commit Graph

4 Commits

Author SHA1 Message Date
mikhail 975934373b Отсев баз через source.exclude_databases
list_databases() прячит базы по массиву строк: подстрока без регистра
или маска со * ? [. Фильтр — единственное место рождения списка, поэтому
одинаков для меню, пульта и list; явное имя в CLI не трогает.
2026-08-20 06:02:55 +03:00
mikhail 9404d1dd08 Навигация стрелками по полям диалогов
Оба диалога наследуются от FormScreen с action_walk: у Screen нет
готового action_focus_next, поэтому биндинг стрелок на него молча
ничего не делал. Вверх и вниз ходят по полям, влево и вправо остаются
за курсором внутри поля ввода — биндинги намеренно без priority.
2026-08-20 05:54:16 +03:00
mikhail e8fd19714a Компактный диалог операции и кнопки, которые не уезжают
Пары Switch + Label заменены на Checkbox с встроенной подписью: строка
вместо трёх. Поля стали однострочными, чекбоксы дампа встали в ряд,
заголовок и имя базы слились в одну строку — диалог ужался с почти
целого экрана до 17-18 строк на любом размере консоли.

Ряд кнопок пропадал потому, что .dialog с height: auto складывал высоту
детей и упирался в max-height, обрезая нижнюю строку. Теперь у диалога
операции своя высота, а форма забирает остаток через height: 1fr и
скроллится сама. Диалог restore приведён к тому же виду.
2026-08-20 05:36:01 +03:00
mikhail 9fdb02c72a TUI-пульт на Textual вместо текстового меню
Списки баз стенда и локальных дампов на одном экране, фильтр сужает их
на каждом набранном символе. Enter по базе открывает окно параметров
дампа с галочкой автоподнятия: снята — только dump, поднята — dump плюс
restore. Правки полей уезжают в копию конфига, config.json не трогается.

Ядро получило четыре хука для UI (лог, границы шагов, пароль, отмена),
run() читает вывод утилит построчно через Popen, поэтому журнал
наполняется во время работы pg_dump. Текстовый режим, CLI и --dry-run
ведут себя как раньше; без textual или вне tty пульт не запускается.

Журнал разворачивается на весь экран по F4 и сам на старте операции.
Раскладка адаптивная: narrow ниже 100 колонок, short ниже 32 строк.
Ctrl-хоткеи продублированы кириллицей — русская раскладка их не глушит.

Запуск через run.ps1 (venv, UTF-8-консоль, -Setup и -Tests).
Проверка — tests_tui.py: 46 тестов, TUI гоняется headless через Pilot.
2026-08-20 05:21:52 +03:00