Part of Epic #322
Описание задачи
Сейчас обозреватель таблиц для расширений ExtensionTableView (lib/features/extensions/extension_table_view.dart) имеет минималистичный интерфейс: отображает только название, пагинацию (Previous / Next) и Refresh.
Для соответствия Единому UI-стандарту (Universal UI Standard) необходимо обновить ExtensionTableView, выровняв его по функциональности с эталонным PostgresTableView.
Зачем
- Пользователи должны иметь возможность фильтровать данные (
WHERE status = 'active' ORDER BY created_at DESC) прямо во вьюере таблицы без ухода в ад-хок редактор SQL.
- На тяжёлых аналитических базах (ClickHouse, BigQuery через расширения) синхронный
SELECT count(*) при каждом открытии таблицы или переключении страницы вызывает зависания. Подсчёт количества должен быть асинхронным с таймаутом.
- Доступ к просмотру структуры (DDL) таблицы в один клик.
Предлагаемое UX
- Обернуть
ExtensionTableView в стандартизированный тулбар по аналогии с PostgresTableToolbar.
- Панель действий тулбара:
- Бейдж строк (
Rows 1–200 of 1,450 или Showing 1–200 (Count estimated/skipped)).
- Кнопка DDL / Structure (вызывает
ExtensionDriverSession.instance.getObjectDDL и открывает модальное окно/вкладку с кодом создания таблицы).
- Переключатель Custom SQL / Filter (позволяет задать условие
WHERE / ORDER BY над текущей таблицей без ухода с вкладки).
- Асинхронный подсчёт строк (
count()):
SELECT * LIMIT X OFFSET Y запускается немедленно и отображает данные сразу.
SELECT count() запускается параллельно в фоне с таймаутом в 2 секунды. Если count() не успел или завершился ошибкой, бейдж показывает Showing N rows (Count skipped).
Технические требования
Место в коде (ориентир)
lib/features/extensions/extension_table_view.dart
- Аналог эталона:
lib/features/postgresql/postgres_table_view.dart
- Тулбар эталона:
lib/features/postgresql/postgres_table_toolbar.dart
Acceptance Criteria
Scope
- Scope:
desktop
- Component:
Extensions / UI / Table Viewer
- Kind:
enhancement
Описание задачи
Сейчас обозреватель таблиц для расширений
ExtensionTableView(lib/features/extensions/extension_table_view.dart) имеет минималистичный интерфейс: отображает только название, пагинацию (Previous / Next) иRefresh.Для соответствия Единому UI-стандарту (Universal UI Standard) необходимо обновить
ExtensionTableView, выровняв его по функциональности с эталоннымPostgresTableView.Зачем
WHERE status = 'active' ORDER BY created_at DESC) прямо во вьюере таблицы без ухода в ад-хок редактор SQL.SELECT count(*)при каждом открытии таблицы или переключении страницы вызывает зависания. Подсчёт количества должен быть асинхронным с таймаутом.Предлагаемое UX
ExtensionTableViewв стандартизированный тулбар по аналогии сPostgresTableToolbar.Rows 1–200 of 1,450илиShowing 1–200 (Count estimated/skipped)).ExtensionDriverSession.instance.getObjectDDLи открывает модальное окно/вкладку с кодом создания таблицы).WHERE / ORDER BYнад текущей таблицей без ухода с вкладки).count()):SELECT * LIMIT X OFFSET Yзапускается немедленно и отображает данные сразу.SELECT count()запускается параллельно в фоне с таймаутом в 2 секунды. Еслиcount()не успел или завершился ошибкой, бейдж показываетShowing N rows (Count skipped).Технические требования
ExtensionTableView(lib/features/extensions/extension_table_view.dart).ExtensionTableToolbar(или универсальногоTableBrowserToolbar)._loadPage()и_loadCount().count()по таймауту и применение фильтра.Место в коде (ориентир)
lib/features/extensions/extension_table_view.dartlib/features/postgresql/postgres_table_view.dartlib/features/postgresql/postgres_table_toolbar.dartAcceptance Criteria
ExtensionTableViewиспользует полноценный тулбар с быстрыми действиями и индикацией пагинации.SELECT count().Scope
desktopExtensions / UI / Table Viewerenhancement