Project

General

Profile

Actions

Idea #23099

open

Custom Data Table generation

Added by Lisa Knox 7 months ago. Updated 7 months ago.

Status:
New
Priority:
Normal
Assigned To:
-
Category:
-
Target version:
-
Start date:
Due date:
Story points:
-

Description

Various tickets, such #20080, #22128, #22959, etc would benefit greatly by having the ability to create custom data tables on the fly.

In practice, a user would have a list of schemas in the dashboard, along with a "new schema" button. This would open a form to specify various parameters, such as owner, workflow, status, content address, property tag, etc (basically any params that should be translated into the query). When a schema is instanciated (either by clicking a schema from the list or using and submitting the form), a fully-functional data table is generated, with column sorting, multiselect operations, etc. These custom data tables will be displayed in a new "Custom Tables" section of Workbench.

A few basic suggestions to accomplish this:
  • A system for generating and storing schemas:
    • A schema is a resource that can be used to generate a data table.
    • An exhaustive form built with defaults so that if a user inputs nothing, the default generated table will simply be a list of all items that have that user as the owner
    • A schema can extend the GroupResource type with the GroupClass "SCHEMA".
    • Schema params (used to generate query params) can be stored in properties, which currently have an "any" type. This would not interfere with the display of k/v tag pairs because the renderers for those filter out objects.
  • Build a generic api service
    • Service would need to translate a schema params into query params and make the necessary calls, then store the results in redux.
  • Build a parent table of schemas for the dashboard
    • A simple list of available schemas, perhaps scrollable to limit how much vertical space is used.
    • When a schema is instanciated, a new data table will display in a new tab in the "Custom Tables" Data Explorer.
  • Add a separate top-level "Custom Tables" nav item to house instances of schemas.
    • A user clicks the schema and a new tab opens in their Custom Tables section containing the results of the associated request. The user is immediately navigated to this new tab.
    • A conceivably infinite number of tabs could be displayed, with the tabs scrolling as MUI suggests here: https://mui.com/material-ui/react-tabs/#scrollable-tabs
    • Because the number of tabs is unlimited, it is important that each table is not generated until the tab is first navigated to. Currently, the content for all tabs a resource can generate is generated when the resource is navigated to. Loading them one at a time will make the initial tab a bit slow, but there is no practical way to do it otherwise.
    • Some link would have to be made to the Available Schemas table and the "new schema" form. Perhaps the first tab can display these using the same component present in the dashboard.
Discussions to be had:
  • API considerations
    • A new value in GoupClass
    • Objects can already be stored in the properties column, so storing query params there shouldn't be an issue (I think?)
  • A better name than "Custom Tables"?

This is a not meant to be an exhaustive list of ideas or considerations, just a starting point.

Actions #1

Updated by Lisa Knox 7 months ago

  • Tracker changed from Bug to Idea
Actions

Also available in: Atom PDF