Skip to content

Wishlist

Aref Shafaei edited this page Dec 3, 2024 · 36 revisions

Wishlist

This document summarizes features that came up but were never priotized.

Table of content

General

Log hover events for dynamic tooltips

(formerly https://github.com/informatics-isi-edu/chaise/issues/1876)

Data modelers can define comments on tables and columns within those tables to be displayed as tooltips in chaise. Given this, we want to be able to track how often we have users that hover over:

  • columns with comments (recordset, record, and recordedit)
  • Facets with comments
  • table name with comments (record and recordedit)

The cases detailed above are the dynamic tooltips that can be set by data modelers. Other static tooltips are less necessary to track (and would create double logging based on user click actions on the content with static tooltips).

Formal support for card views in visible-columns

(formerly https://github.com/informatics-isi-edu/chaise/issues/1489)

Collect usage events to support user analytics

(formerly https://github.com/informatics-isi-edu/chaise/issues/6)

Integrate a third party usage analytics service (e.g., Google Analytics). We should be collecting key user events, such as: faceting behavior, browsing behavior, what data is being viewed, what attributes are being used in searches, when the user has to "enable" more facets because the default list wasn't enough, how long they spend on certain views, etc. etc. etc.

  1. We should first come up with the initial list of events we want to capture;
  2. Come up with a plan for how we will integrate this;
  3. Review the plan before executing on it.

Some additional constraints:

  1. We should probably write our own wrapper API around the analytics provider (e.g., GA) so that we can integrate with different analytics vendors;
  2. Account details (e.g., the Google Analytics account where events are sent to) should come from a configuration, it should not be hardcoded to one operators GA account.
  3. Operators/Administrators should be able to disable user event collection entirely for their own deployments.

Interval check to verify session is still alive

(formerly https://github.com/informatics-isi-edu/chaise/issues/1444)

We discussed adding a polling function that will check the users session to see if it has changed. This can lead to a number of other feature improvements if we decide to add a session alive check in the background that talks with the server.

Add ermrestjs developer guide

(formerly https://github.com/informatics-isi-edu/ermrestjs/issues/31)

We discussed about adding a developer guide to ermrestjs that talks about how you can use the APIs to get the model information and data.

Megamenu navbar

(formerly https://github.com/informatics-isi-edu/chaise/issues/1907)

Override heuristics for head title

(formerly https://github.com/informatics-isi-edu/chaise/issues/2035)

We were thinking about allowing data modelers to change the title that browsers show for the tab/window. But we didn't finalize how this could work on recordset and recordedit apps.

Create Documentation for Relationships

(formerly https://github.com/informatics-isi-edu/ermrestjs/issues/713)

Better 404 error message

(formerly https://github.com/informatics-isi-edu/ermrestjs/issues/881)

Change title-casing feature slightly

(formerly https://github.com/informatics-isi-edu/ermrestjs/issues/669)

I think the title-case function, when enabled, should only mangle the case of strings that are all lower-case, but preserve case when the model name is already using capitalization. This would cover cases like RID and other acronyms as well as any funkier values. It won't handle a situation where a modeler has retained capitalization that they didn't want to show to users.

Investigate compression algorithm used in faceting

(formerly https://github.com/informatics-isi-edu/ermrestjs/issues/892)

Access table displayname in templating

(formerly https://github.com/informatics-isi-edu/ermrestjs/issues/894)

Allow pseudo-columns in templating of annotations other than visible-columns and visible-foreignkeys

(formerly https://github.com/informatics-isi-edu/ermrestjs/issues/617)

Other places that we might want to allow this:

  • filter context of visible-columns
  • table-display
  • column-display
  • key-display

Export feature improvements

  1. Default export: Use the defined annotation for related tables as part of (formerly https://github.com/informatics-isi-edu/ermrestjs/issues/788): In the logic of generating default export template, we are adding all the related entities and their assets using some heuristics. Instead of relying on heuristics, we might want to get the template from the defined template on that table.

  2. ACL matching and pattern support (formerly https://github.com/informatics-isi-edu/ermrestjs/issues/917#issuecomment-949003779)

  3. Improvements to CSV export (formerly https://github.com/informatics-isi-edu/ermrestjs/issues/904):

  • Allow quota/limit settings. Disable recordset export if current result set is larger than a specified limit.
  • Allow default CSV export to be disabled globally
  • Simpler way to project all the columns of table (or force entity API for it).

Allow more complicated formatting with pre_format (useful for byte count)

(formerly https://github.com/informatics-isi-edu/ermrestjs/issues/903)

Adding an annotation to force read (GET) to use entity API

(formerly https://github.com/informatics-isi-edu/ermrestjs/issues/935)

Recordset app

Show number of null values in facets

(formerly https://github.com/informatics-isi-edu/chaise/issues/1852)

It would be nice to see the count for the number of records where that facet value is null as well (I know there are other ways to get that count, but it would be nice to see it along with the individual value counts).

Copy button on table row actions

(formerly https://github.com/informatics-isi-edu/chaise/issues/1076)

To avoid many clicks and interstitial changes that disorient the user, it would be good to be able to launch the copy operation directly from the action bar on the related entity or recordset row. This is where the user is likely to be reviewing the overall set and realizing they need to add a variation of an existing record.

More/less ellipses needs configurable threshold

(formerly https://github.com/informatics-isi-edu/chaise/issues/821)

The threshold for when to truncate row content should be configurable since there is no sensible default for arbitrary content models which may include images and other content.

Better handling of mixture of facet filters

(formerly https://github.com/informatics-isi-edu/ermrestjs/issues/642 https://github.com/informatics-isi-edu/ermrestjs/issues/681)

Hide facets in annotation

(formerly https://github.com/informatics-isi-edu/ermrestjs/issues/751)

update display annotation to include show_empty

Similar to show_null support but for '' (empty string). Will remove the heuristics discussion for show_null from handling empty string too. Allows data modelers to customize both separately

Provide statistical feedback on facet #33

There are several kinds of statistic that could be rendered graphically in facet widgets to help users understand the data.

  • Distinct value distributions on sliders to help understand sparse ranges, e.g. dense areas where active values are clumped together vs. gaps where there is no further way to differentiate records with range filters.
  • Total value distributions which additionally show how popular certain values are. This could be used on sliders, pick-lists, or even date pickers.
  • For the above measures, there is a version that considers current filtering criteria and another that considers all records unfiltered. Some rendering methods might even display both statistics to highlight the difference between active and inactive records?
  • Some combination of curve plots, coloration, or heatmap rendering techniques could be used to present these statistics within the different presentation modes. E.g. a 2D curve or bar-graph behind a slider; a per-element bar-graph or color mapping for pick list entries; a different color mapping for day boxes in date pickers; or even some kind of 2D curve within each day box for datetime pickers...
  • We need to more carefully consider caching, precomputation, and aggregation of statistical results before attempting these sorts of features, since we are already seeing too many round-trips for chaise on typical databases.

negation in faceting

(formerly https://github.com/informatics-isi-edu/chaise/issues/1356)

Allow for more complicated facet queries to be made by allowing users to search for something like "not column1 = value1".

Facets should expand with more content

(formerly https://github.com/informatics-isi-edu/chaise/issues/1290)

When a facet is opened with 2 options, the height is fixed. When faceting criteria is removed, more options may be available but they won't show unless the facet is closed then opened again.

Track saved query use and reuse

(formerly https://github.com/informatics-isi-edu/chaise/issues/2076)

We might want to store a count with every saved query to track how much it is used.

have a distinct style for pre-selected filters

(formerly https://github.com/informatics-isi-edu/chaise/issues/1504)

Improvements to saved query feature

(formerly https://github.com/informatics-isi-edu/chaise/issues/2103)

Record app

Copy versioned data

(formerly https://github.com/informatics-isi-edu/chaise/issues/1735)

The copy button should be available for a user to copy versioned data to the recordedit form. Once on the recordedit page, the user should be looking at the "live" catalog.

annotation to hide "add link"

(formerly https://github.com/informatics-isi-edu/chaise/issues/1229)

modify an existing annotation or create a new one to hide the add link above related tables

Related entities with non-RID source definitions

(formerly https://github.com/informatics-isi-edu/ermrestjs/issues/874)

For the "explore" link in chaise, ermrestjs is creating a reverse path of the related entity where the main table's shortest key would be the selected facet. To make sure that the proper facet is selected when users click on "explore" button, data-modelers have to define their facet using the shortest key to align with this automatic process. So technically data-modelers cannot have any entity non-RID facets.

Use prefix_markdown suffix_markdown in tabular format

(formerly https://github.com/informatics-isi-edu/ermrestjs/issues/833)

Currently, prefix_markdown and suffix_markdown are solely used in conjunction with row_markdown_pattern annotation. But we could broaden their scope and these values can be displayed in the non-tabular mode as well.

Change related (or inline) table default display mode

(formerly https://github.com/informatics-isi-edu/ermrestjs/issues/843)

Recordedit app

Add cancel button

(formerly https://github.com/informatics-isi-edu/chaise/issues/670 or https://github.com/informatics-isi-edu/chaise/issues/1109)

Allow users to go back to the "previous" page.

Copy group of records

(formerly https://github.com/informatics-isi-edu/chaise/issues/1076)

Allow multiple forms to be copied instead of just one.

multi-entry create: move the add-n button to all records

(formerly https://github.com/informatics-isi-edu/chaise/issues/871)

Allow users to copy any of the forms instead of just the last one.

Show column comments in the form

(formerly https://github.com/informatics-isi-edu/chaise/issues/380)

Add a configurable option to show column comments inline in recordedit instead of the comment being hidden as a tooltip that users have to discover themselves.

preview or diff before submission

(formerly https://github.com/informatics-isi-edu/chaise/issues/1145)

Add a preview of the submission data when the user clicks submit. Alternatively show a set of diffs instead.

disable submit button

(formerly https://github.com/informatics-isi-edu/chaise/issues/1212)

Disable the submit button when no changes have been made.

Provide more info for hatrac errors

(formerly https://github.com/informatics-isi-edu/chaise/issues/1992)

While uploading the files, hatrac might throw an error and we're just showing this error to the users without providing any more information. We should at least add some explanation so users can know that it's hatrac (and not ermest.)

File Uploader Improvements

(formerly https://github.com/informatics-isi-edu/chaise/issues/1753)

General improvements to the file upload process that include

  • adding flow-control
  • faster progress check/update
  • flatten upload file objects array
  • calculate individual chunk checksums

Viewer app

Better loader and investigate performance issues

(formerly https://github.com/informatics-isi-edu/openseadragon-viewer/issues/81)

If you try to open/close the channel panel while image tiles are loading, it will not respond right away and depending on how long the tiles take to load it will be laggy.

Improve the code related to loading images

(formerly https://github.com/informatics-isi-edu/openseadragon-viewer/issues/94)

Responsive channel panel

(formerly https://github.com/informatics-isi-edu/openseadragon-viewer/issues/90)

Properly handle namespace

(formerly https://github.com/informatics-isi-edu/openseadragon-viewer/issues/30)

Other apps

Logging for help app

(formerly https://github.com/informatics-isi-edu/chaise/issues/2147)

The help app doesn't do any logging currently outside of the catalog request made for the navbar. This doesn't communicate what "page" the help app has loaded. This app sets a query parameter (page) to decide what help page to load.

Image gallery app

(formerly https://github.com/informatics-isi-edu/deriva-webapps/issues/15)

An app that can show images in a slider.

Issues and limitations

ACL support limitations

(formerly https://github.com/informatics-isi-edu/ermrestjs/issues/515)

  1. ERMrestjs is not handling the combination of enumerate:true, and select:false for columns completely. If you want a column to be invisible to users, you should use enumerate:false. Currently it's implied if the column can be visible in the schema document, we can access its data.

  2. ERMrestjs is partially handling select:false for other data models (any data model apart from column). Reference api has a canRead API which is using this attribute, but other read-only APIs should use this attribute as well. This limitation is the same as the previous one since it's related to select:false ACL, but we should handle it differently in ermrsetjs and chaise.

Inconsistent Behavior of visible-columns and visible-foreign-keys

(formerly https://github.com/informatics-isi-edu/ermrestjs/issues/698)

The source syntax is supported in both visible-columns and visible-foreign-key annotations, but because of different interpretation of the syntax in different places that can be confusing.

Issues in table alternative support

Clone this wiki locally