* feat(objects): add checkbox column toggle for object browser - Add objectBrowserShowCheckbox setting (default: false) to EditorSettings - Checkbox column hidden by default; auto-shows when any tables are selected - Toolbar button toggles multi-select mode (active state highlighted in primary color) - Clearing the toggle also clears all selections - Add i18n key objects.toggleCheckbox in en/zh-CN Closes #2748 (part 2) * feat(objects): add grid view mode for object browser - Add objectBrowserViewMode setting (list | grid, default: list) to EditorSettings - Toolbar segmented control toggles between list and grid views, persisted across sessions - Grid view renders cards (icon + name + type + row count) in a responsive auto-fill layout - Reuses existing sort, search, filter, multi-select and context menu - Partition children not expandable in grid mode (minimal version) - Add i18n keys objects.viewList/objects.viewGrid across all locales - Backfill objects.toggleCheckbox in es/it/ja/pt-BR/zh-TW (missed in prior commit) Refs #2748 * fix(objects): redesign grid view cards for visual polish - Center-align content (icon + name + metadata) for a proper tile look - Enlarge type icons (h-7) so color coding is visible at a glance - Merge type label and row count on one line with separator - Reduce internal spacing (gap-1.5) and tighten padding - Replace background hover with border glow + shadow for cleaner feedback - Narrow min card width (150px) for denser grid, add align-content:start - Softer rounded-lg corners Refs #2748 * fix(objects): polish grid view card visual details - Add colored circle background behind icons (type-matched opacity-10) - Increase name font from text-xs to text-sm for better legibility - Separate row count into a primary-tinted badge (only shown when > 0) - Keep type label clean without mixing row count inline Refs #2748 * fix(objects): refine grid card min-width, icon shadow, and type label size * @ feat(object-browser): align tile/grid card metadata with list view columns Add the metadata categories present in the list view but missing from the tile/grid card view (objectBrowserViewMode === "grid"): - Size pill (totalBytes) next to the existing rows pill in the stats row - Timestamps row showing created_at · updated_at (per-row conditional) - Comment row (truncated, per-row conditional, with hover tooltip) Each card now shows: icon, name, type label, rows pill, size pill, timestamps (when present), and comment (when present) — matching the same metadata categories the list view displays across its 8 columns. Also fix a pre-existing bug in the list view where the totalBytes column tooltip (:title) used formatObjectBrowserCount instead of formatObjectBrowserBytes, showing a count-formatted number instead of a byte-formatted size string. @ * @ feat(object-browser): add sort selector in toolbar for grid/list views The list view has column header click-to-sort but the grid/tile view had no way to change sort order. Add a compact sort selector in the toolbar that works identically in both views: - Native <select> dropdown with all 7 sort keys (name, type, rows, size, created, updated, comment) using existing column i18n labels - ArrowUp/ArrowDown direction toggle button with localized tooltip - Positioned between schema selector and view toggle in the toolbar - Shares the existing sortKey/sortDirection/toggleSort logic — list view column headers continue to work as before - Accessible: aria-label on select, title on direction button i18n: added sortAsc/sortDesc/sortBy to en.ts and zh-CN.ts @ * @ fix(object-browser): make sort key options reactive to available data sortKeyOptions was a static array that always included created_at and updated_at even when no row had data for those fields. Sorting by an empty field is a no-op that silently confuses users. Convert to a computed that mirrors the list view column visibility logic (hasCreatedAt / hasUpdatedAt): the two time-based sort options only appear when at least one loaded row has that field populated. Follows design decision: sort selector remains visible in both list and grid views (plan B), acting as a shared sort state indicator. @ * @ fix(object-browser): reset sortKey when selected option disappears from options When sortKeyOptions loses created_at or updated_at (e.g. after a schema switch clears all rows), sortKey could remain set to a key no longer in the dropdown, causing the <select> to show a blank selection. Add a watch on sortKeyOptions that resets sortKey to "name" and sortDirection to "asc" whenever the current key is no longer present. @ * chore(i18n): autofill new translations * perf(object-browser): virtualize tile/grid view with RecycleScroller Replaces the flat v-for over filteredRows with a row-chunked RecycleScroller, matching the list view. Previously, switching to tile mode on a schema with thousands of tables mounted every card and its CustomContextMenu at once, stalling the UI for several seconds. Changes: - gridRows computed: chunks filteredRows into rows of gridColumns cards - ResizeObserver on the grid container drives gridColumns; initial read uses getComputedStyle to match contentRect.width and avoid a 1-frame column jump on mount - objectGridRowHeight computed: item-size adapts to whether the dataset has timestamp/comment rows, minimising wasted row space - watch(gridContainerRef) re-attaches the observer across list<->grid toggles; onBeforeUnmount cleans up - scrollObjectsToTop() resets scroll position on sort, search, object-type filter and view-mode changes - CSS: new .object-browser-grid-wrapper / -scroller / -row classes with will-change / contain parity with the list scroller --------- Co-authored-by: dbx-i18n-bot <github-actions[bot]@users.noreply.github.com> |
||
|---|---|---|
| .. | ||
| desktop | ||
| README.md | ||
README.md
Apps
Runnable DBX applications live here.
Directories
desktop/- the Vue frontend used by the Tauri desktop app and the Docker/web build.
The Tauri native shell remains in src-tauri/ because that is the conventional Tauri project location used by the existing build and release tooling.