Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[data grid] Improved "Manage columns" panel #5700

Open
1 of 6 tasks
joserodolfofreitas opened this issue Aug 4, 2022 · 12 comments
Open
1 of 6 tasks

[data grid] Improved "Manage columns" panel #5700

joserodolfofreitas opened this issue Aug 4, 2022 · 12 comments
Assignees
Labels
component: data grid This is the name of the generic UI component, not the React module! design This is about UI or UX design, please involve a designer feature: Column groups Related to the data grid Column groups feature umbrella For grouping multiple issues to provide a holistic view v7.x

Comments

@joserodolfofreitas
Copy link
Member

joserodolfofreitas commented Aug 4, 2022

Summary 💡

The current columns menu manages the visibility of individual columns.
image

Besides an opportunity to improve the overall look and feel of the panel, and a refactory to enable more customizations,
As a central panel listing all the columns, we could empower users to handle many features like column ordering, grouping, or pinning.

This menu might also be the perfect place to establish the interface for pivoting.

This is an umbrella issue for the initial concept.

Design

Early proposal

Screenshots Screen Shot 2022-10-07 at 10 45 38

Next iteration

We had another iteration on the columns management panel during Pivoting UI exploration:
https://www.figma.com/file/tOAZwAT1ebcTH4tb4zv3Lo/Pivoting?type=design&node-id=1018-30840&mode=design&t=Q6uSdXTeJDFr77g5-0

While it focuses on column management in the sidebar (the sidebar will be a new type of panel on the right of the data grid), the same UI can be implemented in the current columns management panel (positioned top-left over the data grid).

Other features to consider

  • Add a "Reset state" button.
    From customer feedback: "The ability to reset the table columns view to its initial state would be very useful. This would allow users to revert the columns to their default state after users have made changes using the column selector."

Feature development roadmap

Motivation 🔦

Examples 🌈

Datatables has an interesting approach to manage column visibility without any extra elements.

image

Ag grid hierarchical column management

image

Ag grid pivoting menu

image

Gmail shows draggability indicator on hover

Screen Shot 2022-08-10 at 4 29 1

Notion — draggability (& other actions) indicator and tooltop appears on hover

Screen Shot 2022-08-10 at 5 46 1

Essential Studio for React

Screen Shot 2022-08-24 at 3 30 1 (1)

@joserodolfofreitas joserodolfofreitas added status: waiting for maintainer These issues haven't been looked at yet by a maintainer component: data grid This is the name of the generic UI component, not the React module! design: ux and removed status: waiting for maintainer These issues haven't been looked at yet by a maintainer labels Aug 4, 2022
@gerdadesign gerdadesign self-assigned this Aug 24, 2022
@gerdadesign
Copy link
Member

Added a few more examples above!

And here's an exploration of ways to show this that allow for current features + upcoming ones:

All columns visible Mixed visibility All columns hidden Extra spacing around groups
V1 - on V1 - mixed V1 - off V1 - extra space

@gerdadesign
Copy link
Member

Thank you for reviewing this during our check in @joserodolfofreitas !
Here is the update with adjusted sizes for minimum touch target size (44px). The eye icon was previously 36px; now 48px.

Light Dark
all visible light dark
mixed visibility light-mixed dark-mixed

NOTES

  • turning off visibility for a group turns off visibilty for children
  • when all items are visible, button at the bottom shows “HIDE ALL” option
  • when all items are hidden, button at the bottom shows “SHOW ALL” option
  • when mixed visibilty, both bottom buttons are shown

Figma link for reference

@joserodolfofreitas
Copy link
Member Author

joserodolfofreitas commented Sep 9, 2022

Thanks, @gerdadesign! Those are looking great!

One more question, would it make sense to enable users to pin columns here too?
It's potentially an interesting use case that enables users to customize further their view of the data.
However, the panel might get too cluttered.
cc @m4theushw

@joserodolfofreitas joserodolfofreitas added v6.x feature: Column groups Related to the data grid Column groups feature labels Sep 9, 2022
@gerdadesign
Copy link
Member

@joserodolfofreitas that's an interesting point!

I think there's a larger question around the Columns menu vs the individual column menu when you click the More icon.

Theoretically, it seems this Columns menu allows you to manipulate many columns at one time vs the individual menu allowing you to manipulate multiple options of a single column at a time.
I would assume that most people wouldn't pin many columns at a time — maybe 1-3 max, but definitely open to exploring adding pinning if we find it's important to have in this overview!

@joserodolfofreitas
Copy link
Member Author

joserodolfofreitas commented Oct 7, 2022

I've been pondering about this topic and since this panel intends to mirror the columns layout (with columns order, groups, visibility and etc) displayed on the grid, I believe it will feel natural that we support at least displaying the pinned columns on their respective positions on this panel as well. For implementation, it deserves its own issue, but I think we can use this as an umbrella for the concept.

@joserodolfofreitas joserodolfofreitas changed the title [data grid] Column re-ordering in column visibility panel [data grid] Improved column visibility panel Oct 7, 2022
@joserodolfofreitas joserodolfofreitas changed the title [data grid] Improved column visibility panel [data grid] Improved "Manage columns" panel Oct 26, 2022
@heyfirst
Copy link
Contributor

heyfirst commented Nov 23, 2022

Hey! Really great-great improvement here! 🔥

Looking forward to migrate to use this when v6 is out! 🥳 because I are also working on our own CustomToolbar which is a bit similarly. hope once this come out, we can reduce the complexity by migrate to your and just adjusting the style.

@noamfeldman
Copy link

Hi,
Regarding the addition of a "Reset state" button and the new column selector panel in general, do you have an estimated release date?

@joserodolfofreitas joserodolfofreitas moved this from Future to Next in queue in MUI X public roadmap Jun 28, 2023
@cherniavskii
Copy link
Member

Hey @noamfeldman
I've created this demo with a "Reset columns" button: https://codesandbox.io/s/bold-spence-48nzc8?file=/demo.tsx
Is this what you are looking for?

@noamfeldman
Copy link

noamfeldman commented Jul 2, 2023 via email

@cherniavskii
Copy link
Member

@noamfeldman Interesting, I think you can do this using state export to save the initial columns state, here's a demo:
https://codesandbox.io/s/determined-snowflake-k3z7rq?file=/demo.tsx

@oliviertassinari oliviertassinari added design This is about UI or UX design, please involve a designer and removed design: ux labels Aug 18, 2023
@cherniavskii cherniavskii added the umbrella For grouping multiple issues to provide a holistic view label Dec 4, 2023
@joserodolfofreitas joserodolfofreitas moved this from Next in queue to In progress now in MUI X public roadmap Feb 9, 2024
@armandabric
Copy link

armandabric commented Mar 14, 2024

I really like the proposed look & feel 👍

One proposal: Did you think some column visibility preset selector could be added in this panel? Like this use case in the documentation but in the panel

@uixrob
Copy link

uixrob commented Apr 15, 2024

Hey, love the updated designs and continued innovation. In all but one of the product examples provided, the interfaces are using checkboxes for the toggling on and off of columns or selecting data points. From a UX perspective does it makes more sense to stay with a recognised pattern?

Using a checkbox for toggling/selecting columns is a common and familiar pattern in UI design, particularly for managing visibility in tables or grids. If most products in your industry or domain use checkboxes for similar functionality, sticking with this convention can enhance usability. Users will already be familiar with how checkboxes work and will likely find it intuitive.

To confirm, I do think the eye icon is a clear enough indicator of visibility, just thought I'd share some thoughts.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
component: data grid This is the name of the generic UI component, not the React module! design This is about UI or UX design, please involve a designer feature: Column groups Related to the data grid Column groups feature umbrella For grouping multiple issues to provide a holistic view v7.x
Projects
MUI X public roadmap
In progress now
Development

No branches or pull requests

8 participants