Skip to content

feat: redesign Console pages around their workflows - #270

Merged
overtrue merged 5 commits into
mainfrom
overtrue/console-page-redesign
Oct 17, 2026
Merged

overtrue merged 5 commits into
mainfrom
overtrue/console-page-redesign

Conversation

@overtrue

@overtrue overtrue commented Oct 17, 2026 •

Copy link
Copy Markdown
Collaborator

Pull Request

Description

Redesign Console pages around their workflows: resource lists, cluster operations, bucket rules, settings, account security, and sign-in.

  • Keep object Refresh beside Upload, separate page actions from search and table tools, group navigation by task, and show account-scoped bucket usage with distinct colors and labeled shares.
  • Put health beside capacity, keep pool controls with their pools, and show replication topology.
  • Add section navigation for long settings and a provider rail for OIDC. Simplify S3 Tables into a warehouse, namespace selector, and table/view workspace.
  • Rework dialogs with grouped fields, scrollable bodies, and consistent footers. Align page, table, dialog, and drawer controls, including completed-task actions.
  • Center file selection in the upload drop area, remove empty space, and keep long queues usable on short screens.
  • Preserve pending submissions, nested object dialogs, recovery codes, and drafts. Fix long catalog errors so Retry stays reachable.

Type of Change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)
  • Documentation update
  • Code refactoring
  • Performance improvement
  • Test improvements
  • Security fix

Testing

  • Unit tests added/updated
  • Manual testing completed
pnpm install --frozen-lockfile
pnpm type-check
pnpm lint
pnpm format:check
pnpm test:run
pnpm build

763 tests passed. Production-browser checks cover 55 interaction assertions, 88 responsive checks, and 36 Chinese/German/Arabic layout checks. Dialog checks include pending submissions, failed requests, nested retention, 100-file uploads, MFA recovery, long schemas, and long error messages. Upload checks also cover native file/folder pickers, drag and drop, exact object keys, keyboard focus, RTL paths, and a 320×568 viewport. Direct object refresh was checked with pointer and keyboard input, including empty results, pagination, and 16 language/theme/viewport combinations. Bucket shares were checked across six data states and 16 language/theme/viewport combinations, including tiny shares, the combined remainder, unknown statistics, and keyboard navigation.

Two independent reviewers checked correctness and usability. The control-size audit covered 34 pages and 21 dialog states at 390, 1024, and 1440 pixels. The production export was checked under /rustfs/console, including redirects and assets.

A separate smoke test signed in to a real local RustFS server. The broader scenarios use controlled responses; they do not establish full backend integration coverage.

Checklist

  • Code follows the project's style guidelines
  • Self-review completed
  • TypeScript types are properly defined
  • All commit messages are in English (Conventional Commits)
  • All existing tests pass
  • No new dependencies added, or they are justified

Related Issues

Follow-up to #269, requested as a separate page redesign.

Screenshots (if applicable)

100 scenarios, 200 before/after pairs. All captures are desktop light/dark at 1440×1000 with full-page content. Both versions use production exports and the same controlled responses. No mobile screenshots are included.

The full gallery includes every page and state; selected comparisons are shown below.

Full before/after gallery · Manifest and checksums

Login — /auth/login/
View Before After
Light Before After
Dark Before After
Browser — /browser/
View Before After
Light Before After
Dark Before After
Objects — /browser/?bucket=datasets
View Before After
Light Before After
Dark Before After
Account — /account/
View Before After
Light Before After
Dark Before After
Site Configured — /site-replication/
View Before After
Light Before After
Dark Before After
SSE Running — /sse/
View Before After
Light Before After
Dark Before After
OIDC Configured — /oidc/
View Before After
Light Before After
Dark Before After
Table Catalog Loaded — /table-catalog/
View Before After
Light Before After
Dark Before After
Lifecycle Multiple Actions — /lifecycle/?bucket=datasets
View Before After
Light Before After
Dark Before After
Status Healthy — /status/
View Before After
Light Before After
Dark Before After
Dialog Bucket Create — /browser/
View Before After
Light Before After
Dark Before After
Dialog User — /users/
View Before After
Light Before After
Dark Before After
Dialog Replication Rule — /replication/?bucket=datasets
View Before After
Light Before After
Dark Before After
Dialog Lifecycle Rule — /lifecycle/?bucket=datasets
View Before After
Light Before After
Dark Before After
Dialog Site — /site-replication/
View Before After
Light Before After
Dark Before After
Dialog Catalog Table — /table-catalog/
View Before After
Light Before After
Dark Before After
Dialog Kms Key — /sse/
View Before After
Light Before After
Dark Before After
Tasks Completed — /browser/?bucket=datasets
View Before After
Light Before After
Dark Before After
Tasks Toolbar — /browser/?bucket=datasets
View Before After
Light Before After
Dark Before After
Upload Destination — /browser/?bucket=datasets&key=activity-monitor%2Fpreviews%2F&lang=zh
View Before After
Light Before After
Dark Before After
Upload Selected — /browser/?bucket=datasets&key=activity-monitor%2Fpreviews%2F&lang=zh
View Before After
Light Before After
Dark Before After
Upload Queue End — /browser/?bucket=datasets&key=activity-monitor%2Fpreviews%2F&lang=zh
View Before After
Light Before After
Dark Before After
Bucket Distribution Many — /browser/
View Before After
Light Before After
Dark Before After
Bucket Distribution Skewed — /browser/
View Before After
Light Before After
Dark Before After

Additional Notes

The existing RustFS palette and typography are retained. No dependencies or upstream components/ui/ primitives were changed. Screenshots and their manifest are kept outside the application diff.

Give resources, operations, settings, and identity pages distinct layouts while preserving their existing controls and safeguards. Keep section navigation usable with unsaved drafts and keyboard input.
Give forms bounded bodies and consistent actions, simplify S3 Tables, and keep composed controls aligned. Preserve drafts and pending-state protections across nested dialogs.
Bring file selection into the drop area and size the queue to its contents. Keep short screens, keyboard focus, and RTL object paths usable.
Show Refresh beside Upload instead of hiding it in an overflow menu. Pagination remains available through the list controls.
Match distinct storage segments to labeled bucket shares so small buckets and the combined remainder remain understandable.
@overtrue
overtrue merged commit d627565 into main Oct 17, 2026
10 checks passed
@overtrue
overtrue deleted the overtrue/console-page-redesign branch October 17, 2026 22:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant