Best practice for "enterprise" grade table functionality?


#1

Obviously everyone’s tables are unique and all that :wink:

However business apps usually have things in common including:

  • Ability to execute actions “in bulk” by first checkboxing rows
  • Ability to execute actions “in bulk” by first checkboxing all rows in result set (even those that are paginated and thus not loaded!
  • Search widgets separated from columns. (Try to search for dates in range, and You will quickly learn why :wink: )
  • Custom column layout (per user configs)
  • Table can be notified about changes to any row.

Is there any library in ember ecosystem that would allow me to create such tables? Anyone have experience in how should API look like to support such features?


#2

You might checkout ember-table. http://addepar.github.io/ember-table/#/overview . I haven’t used it, but it seems to come up a lot when others ask this question.


#3

Seen it, read docs too. It seam to be focused on informative rendering of tabular data. Good for executive reports.

Not much for working with “large sets of items”, where working means actually doing stuff by the user, and not me developing it.


#4

I guess I don’t know what you mean. Looking at the requirements you listed and some of the other examples for ember-table (editable and configurable-columns) it seems like it could be made to work. Checkbox selection could just be a custom column type. “Search widgets separated from columns” that sounds like a separate component(s) that you’ll build and bind to your controller/service.

I mean, clearly you don’t have to use it :smile:. It’s just not clear why it falls sort of your use case.


#5

So I just insert checkboxes and two-way-bind it to additional fields in my models? (added just for that purpose in controller?)

Executing actions on whole result set for given query would anyway require asking back end for IDs (just those, and without pagination).

Yeah. I agree on search widgets, but it would be really nice if somebody done those… and query params / payload syntax for passing those to back end… so I do not have to reinvent the wheel :wink:

Ok. Last thing to ask. Can I notify ember-table that one of its records just changed?


#6

Be aware that ember-table isn’t currently compatible with ember >= 1.13 except for a PR proposed that hasn’t been accepted and has some performance issues. Check this issue to read the whole story.