Table visualisation columns UX

Not sure if this is in scope for #10460 so opening a thread here. If anyone knows a more appropriate ticket or has other ideas / suggestions on this, please comment.

When there are many columns in a question builder result, such as for large tables or join results, the table visualisation configurator can be cumbersome to use.

In the below image I used high-tech screengrabs and powerpoint to mock up what I think would be useful to have there, in specifically:

  • A select all / select none button as a shortcut for clicking 10’s of columns in or out.
  • A button to sort columns, as a shortcut for organising selected columns, optionally:
    • sort by all included columns (default), or by table
    • sort by the display name (default), or the actual database column name
  • Retain the option to click and drag columns into position

For SQL questions it’s probably fair to assume the author has stated the columns in the desired order, in which case this row of new widgets could be greyed out.

image

Hi @lindsay-stevens

I’m fairly sure #10460 is specific to the column selector in Notebook-editor and not the visualization settings. But let’s ping @maz just to make sure.

But I totally agree, when there’s a lot of columns, then it can be difficult to overview the sidebar. I hope we can get a design for Notebook that would benefit the sidebar too.

  1. There’s a request for de-/select all column - #3266 - with only 4 upvotes :crying_cat_face:
  2. As for having a quick-sort, which actually doesn’t change the order. That would probably conflict with how it works now, since rearranging or hiding/showing columns actually changes the query (QB).
    And in case of Native, it’s works the same way, but instead of changing the query, it’s just rearranging or hiding/showing columns via JavaScript (so just visually).
    Alternative: Instead of a quick-sort, what if there was a quick-filter like the Summarize-sidebar > Group By-filter? Not sure if it should disable rearrange, when quick-filter is active, since that would mess up ordering.
  3. I don’t think you’re going to see real database column names in the QB, since it doesn’t fit into what Metabase is trying to do - that sort of thing is for the Data Reference and Data Model (#1611).
    Alternative: If this would ever be considered, then I would prefer a user preference, where specific users could choose either Display name or Real name, and that would effective throughout the interface.

Not sure if you want to open a request now, or wait for some more feedback, but I’ll support something that would make it easier to manage large amounts of columns.
I’ve had tables with 100+ columns and linked to 30+ other tables, so trying to find anything in that is difficult enough already.

PS - PowerPoint :face_with_hand_over_mouth:

EDIT: Or did I totally misunderstand your proposal? Are you looking for something that actually changes the order (not just a quick-order)? If yes, then perhaps it would be better if you could order the Data Model (aka metadata) - there’s a request for that in #3720

Thanks @flamber, on each point:

  1. Upvoted #3266. It is from 2016 so maybe that means it’s a regression? There was a select all/none button in v0.28.6.
  2. For this proposal I mean just sorting the visible column names, i.e. those in the current result set, i.e. the columns you’d get if you were to download the question’s data at that moment. This is just for the left-to-right ordering of columns in the results, not the order of rows in the results. As you mention, adding/removing a related dimension column changes the nature of query so those columns would not be sorted by these widgets (probably the UI should have a separate tab for adding related columns, such that there’s 3: visible columns, related columns, conditional formatting).
  3. The confusing thing here is that as recently as v0.33.2 the visible columns sort by their actual database name, not their display_name. In my case I have some columns whose database name includes a prefix, which I remove for the display name, so the alias will usually start with a different character, which means all the prefixed columns sit next to eachother in a very un-alphabetical way. Perhaps it is a bug that the columns are default sorted by name rather than display_name? If it is a bug then the database/display name sort option widget wouldn’t be relevant.
  4. It’s not what I meant for this proposal, but yeah being able to apply a data model order as well (per #3720) would be useful as well since often the column order is meaningful - such as for tables pre-pivoted by ETL. This would hopefully end up coming through as the “default” column order in the table viz.

@maz is this something that Metabase is currently working on? If not, it is something that you’d consider (in which case I’ll create a ticket)?

@lindsay-stevens

  1. I don’t even remember that, but it was right about the time I started playing with Metabase. But a de-/select all would be good.
    EDIT: There’s already an issue about this (kinda) https://github.com/metabase/metabase/issues/8523
  2. Okay, I think I understand. Hope that Maz will do some mockups.
  3. Actually that seems like a bug that columns are sorted by name alphabetically, with no way of re-ordering - a cool guy actually made the same comment a couple of years ago:
    https://github.com/metabase/metabase/issues/4329#issuecomment-282191771
    Maybe it’s time to either revive #3720 or make a new bug, which proposes ordering by display_name everywhere - would you create that?