kernelci / kernelci/dashboard

Custom column/header selection and width

Open
#2,008 3 comments 0 reactions 0 assignees View on GitHub
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.