Custom column/header selection and width
- Dominant language
- Python
- Stars
- 9
- Forks
- 31
- Avg merge
- 3d 19h
- Merged PRs (30d)
- 16
Description
On many tables, we have to execute a complicated compromise between row width, information availability and parsing ease. I propose giving more control to the user over this compromise:
- Columns can be toggled on/off
- Columns can be reordered
- Columns can be resized
- Resized columns have a fixed size
- Resized headers have a marker. Clicking the marker resets column size.
- Unset columns share the space dynamically
- If space remaining without scrolling > sum(`fixed_width`s + `max_dynamic_width`s), use `max_dynamic_width` (no horizontal scrolling)
- If space remaining without scrolling < sum(`fixed_width`s + `min_dynamic_width`s), use `preferred_dynamic_width` and (horizontal scrolling)
- If space is between two previous cases, distribute it according to column weights (no horizontal scrolling)
- Columns required to identify a row are always on and always the leftmost columns
- Column selection and ordering are not added to the URL by default
- Tables have an "export" button that creates an URL with all view options specified.
- We would have to understand how to do this for pages with multiple tables
- A "settings-only export/import" might be useful to allow repeating the display settings with different queries
Contributor guide
Research direction
No files, tests, or entry points are named; begin by locating the dashboard's table implementation and how view options are represented in URLs. Done means users can toggle, reorder, resize, and reset columns, required columns remain fixed, and export/import preserves view settings, including pages with multiple tables.
Written by the indexing model from the issue text.
Assessment
- Domain
- frontend
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100