New table component missing features from legacy table

@Kabirdas let me add my use cases while exploring retool, for both color & dynamic tags.

  1. column background color is useful to distinguish columns from others (e.g. grouping) i.e. highlighting the different sources or to help focus depending on the task. Conditional cell setting is even better to highlight outliers, exceptions,... Having an add'l column with tags for the same clutters the table even more, requiring more horizontal scrolling.

  2. dynamic tag values (dropdowns) is a must when valid options depend on the row context. There is no good alternative: opening a modal where options are pulled (from query) based on other columns would be ideal because, for our use case we would want to show an iframe (with dynamic url) too.
    Unfortunately it's not possible because there is no triggeredRow concept and the table doesn't allow to update a given cell value from other components or by JS. You can only replace the whole dataset (setData()) which btw will also reset the state (previous pending changes are reverted).

One comment on not exposing currentSourceRow for performance reasons. This would not be the case if the mapped query is run on-demand i.e. only if user edits the cell/tags. Why would the engine run the query for each row beforehand ?? They never will be used all-at-once. Just my 2 cents.

Is there a beta program for the new table ? If not, pls consider as this would save time and headaches on both sides, and is a good way to manage expectations and scope.

Dear @Kabirdas

Thanks for opening up this "discussion".

I think @yiga2 has the gist of it. I restrict the dropdowns to valid options depending on the value of another column for that same row.

E.g. first you choose the product in the first column, and then the colour, shape or size in the second column, depending on what was chosen on the first column.

For a new row, a modal would work, might even be better as there was some undesirable behaviours with the old one, but it did save a lot of work: not having to create a "subform".

Looking forward to further developments.

Jeremy

Would it also be possible to have a modal, e.g. to implement filtering? Or is this to be reintroduced?

Jeremy

@Kabirdas

A suggestion on how to have our performance cake and eat it too.

In JS queries you have the option to Keep variable references in sync. It is disabled by default to improve performance, but sometime the need outweighs the performance hit (never notice the performance hit however.)

Is the same thing for the table possible? And I am sure there are other features that have been sacrificed for the same reason.

There doesn't appear to be any way to reference currentRow (or similar) in a table action event handler either. Each row in my table contains a uuid which I want to pass to the action event handler that opens an app with the respective uuid as the hash parameter. This was easily accomplished in the legacy table.

Thanks for sharing those use cases here @yiga2!

It sounds like, for 1, people using your app need to be able to identify specific groups of rows, or outliers, quickly while staying within the context of the larger dataset - is that right? Is that so they can quickly switch between different groupings, or for comparison, or something else?

For 2, is it possible to use one of the selected row properties to identify the currently active row? There are actually quite a few that offer different portions of the data: selectedRow, selectedSourceRow, selectedRowKey, or selectedRowDataIndex but I know that people have requested click handlers to be separated from row selection in the past.

Thanks for adding your perspective here as well @jclutterbuck!

These are very valid use cases and they're definitely things for the dev team to consider. More support for filtering is also something coming soon. In the meantime, there's a post here from Alexi on a potential workaround you can use with the new table.

@bradlymathews that's certainly an interesting idea! I personally don't know how feasible it is but can see it being useful :thinking:

As for the currentRow issue @ryanm - the currentRow and currentSourceRow variables currently don't autocomplete in the "Go to app" handler of action buttons and might throw a linting error but they should still work. Can you let me know if that's not the case? This is something currently being tracked and will get looked into!

Again that you all for your feedback here, the folks working on the new table are also reading these posts. It's great to see so many people chiming in on this thread :grinning:

As a last note, I just want to clarify that the legacy table will be around for a while! The new table has been in various stages of beta before this release, and while it might not be a complete replacement yet, it functions really well as its own component. I know I'm personally very excited to have people start to use the new table because it offers a lot of options and improvements in certain cases. The dev team understands that it's really important to bring the new table into more feature parity with the legacy table before doing something like deprecating it, and in the meantime, hopefully folks will benefit a lot from being able to use both.

5 Likes

Thanks for keeping us posted @Kabirdas, I look forward to these fixes/improvements!

Thx @Kabirdas for the answer.
For 1, I am not so much concerned about row-coloring (nice to have, I use that for alternate-coloring like a ledger-style, gray, blank, gray, blank,... Very useful if table takes up most of the canvas). My comment was specifically for column-coloring, and cells (conditional).

For 2, selected-whatever only works for single select, not multiple. But Cell click event should tell the underlying value (self?). My comment was more about the inability to change another field on the same edited row, or "bring back" the value to set from a modal, without having to set (reset actually) the whole table source.
This is not unique to New table as legacy lacks that too so is out of scope of this discussion (while a big deal for us as setData for every change is very inefficient for large tables).

Eager to see future improvements though !

Adding allowing single-clicking to edit cells.
Legacy allows both single- and double-clicking to edit. New requires double-clicking with no other option. Quite annoying if lots to edit.

1 Like

Hi @Kabirdas,

Just chiming in on the discussion regarding column and cell colouring. I'm agreeing with @yiga2 that this is a great way to highlight any important information such as outliers in a table with a lot of data.

I understand that the Retool team is working towards feature parity with the old table, but can you give some insight if you're considering adding column and cell colouring to the new table?

Thanks for your time!

Hey @avr!

Coloring is being considered, the dev team is particularly interested if there are any other features they could include that would fit the same use cases in an attempt to prioritize features that enable more accessible design patterns. So, the more information they can hear about your use case the better! Especially, if you've considered other patterns, which of those might not be available in Retool, and why you're choosing color-coding in particular.

Also, thanks for surfacing the issue of having edits made through a separate component persist without being saved @yiga2. It's something that has come up a number of times before (one recent example) and the workarounds can be a bit tricky. Admittedly, though I've seen people ask for it, I'm not super familiar with all of the reasons why they are :sweat_smile: would you mind sharing a bit more about how it's useful for you?

For the issue with multi-select, the new table has unique properties for the collection of rows that have been selected as well as the most recently selected row. They are, respectively, selectedRows/selectedSourceRows (purple) and selectedRow/selectedSourceRow (orange):

Also, single-click to edit cells should be possible as long as single-cell selection is turned off.

2 Likes

@Kabirdas as explained before, conditional cell color-coding is useful to convey additional info. In our case, we show a tax amount and the color code tells if it's the original tax amount (no color) or if was adjusted/added through a later process (the color tells which one). Without color-coding, we would need add'l columns to convey that info.
Now, while the dev team is at it, in addition to picking what color, it could even go a step further by supporting data bars (preferred) or color scale - see in Excel.
Lastly, a cell-specific tooltip (when you hover over a cell, cell-specific context tooltip pops-up) is very useful to convey details that can't fit in a cell.

For cell edits pushed from other components, along with making edits "programmatically", I think I have found a workaround that works for me: see here My "solution" does refresh the table but from memory so supposedly fast. Net changes are still pushed down to db but with delay.
Will report back (in the other thread) if satisfactory.

Note, the latter solution does require single-cell solution to be on as it relies on selectedCell to get the row index and columnId. Hence it's catch-22: single-click possible but to a greater loss of functionality. So on this one too, it would be good if the option to explicitly choose single vs. double-click editing is brought to New table.

Hi, as a power retool user for 2 years now, I was really excited to now that the table component was redesigned from scratch.

The problem now is, the new table component really lacks some flexibility the old one had and I'll list them:

  • The ability to set the background color conditionally, this is something we use a lot to get the attention of the user when a value is out of our standards for example. This also allows us to have a easy visual queue of everything.
  • Disable sorting for columns when double clicked.
  • Set the text when empty.
    image

Also, it is very buggy, some cells wont print values, I have to refresh the site and it works.


and its emtpy:
image

I will like to take the opportunity to mention some features tables are missing for a long time:

  • Reordering row!! please!! I have a work around using a modal with a reorderable list but that component is simply... bad.
  • Colapsable details. Sometimes when a row is clicked it would be great to expand down some more information in order to avoid using a modal.

Thanks! keep us posted on the background thing!

5 Likes

Want to jump on this. I was excited to try out the new table, but 2 main things keep me from using it.

As others have said, coloring cells dynamically is essential for our use case. Highlighting when profit is positive vs negative is really really important with lots of data.
Other thing is dynamically setting the column order and visibility with an array. This is also essential as every user wants different columns to show up in different orders. The legacy table has this in Advanced Settings and Column Settings. Along this note, I also don't see where to sort column by a dynamic column. With the legacy table I could do this with a js query, which is useful.

I'm really excited to be able to use this as it seems faster and has more options, but until these features are added I just can't.

2 Likes

Want add a +1 to bring back conditional background coloring. My use case is I am summing groups of rows and having the summed row be a different color really helps the UX.

Use case I am attempting to duplicate:

2 Likes

the new table component was announced today again but still no luck with the conditional background color!

1 Like

+1 on the background color for cells

1 Like

I recently noticed that there is a "group" rows facility in the new table. Which feels like it has potential, but it would be awesome (?) if we could add summary info to the group header rows? Like the sum, or max/min or some other JS? Not sure if what I'm asking/suggesting is possible/easy/hard or of interest to anyone else.

Yeah, I have been playing with that!

And yes, this summary section is needed, has been requested and has been acknowledged as on its way. Yay!

1 Like

Yes, sorry I've juse seen the "announcement thread" for the new table component which covers this - I'm a few days behind, as always.