Skip to content

New WebUI: Let users show/hide and resize table columns (persisted in localStorage) #361

Description

@ngosang

Summary

The virtual data table component (used in Downloads, Shared, Search, Servers and Peers) currently shows a fixed set of columns at fixed widths. Users should be able to choose which columns are visible and resize columns to their preference, and those choices should persist across page reloads and visits.

Motivation

Different users care about different data, and screens vary in size. Some columns are hidden today even though users may want them. For example, the Peers/clients table exposes fields like the peer IP and OS that are not currently shown — a user might well want to see them, while others may prefer to hide columns they don't use to reduce clutter.

Requested behaviour

  • Show/hide columns: the user can toggle the visibility of individual columns. A column picker (e.g. a small pop-up/menu opened from a button in the table header/toolbar) would be a good fit, but the exact UI is left to the implementer's judgement.
  • Resize columns: the user can adjust column widths manually (e.g. by dragging the column edges).
  • Persistence: both the set of visible columns and their widths are saved to the browser's localStorage, per table, so the layout is restored on reload and on future visits.
  • Sensible defaults: when no saved preference exists, fall back to the current default columns and widths.
  • Reset to defaults: the user can restore the original columns and widths, clearing the saved preference for that table.

Notes

  • Applies to all tables using the shared virtual table component.
  • Should remain responsive (the tables already scroll horizontally on narrow screens).

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions