You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
There are quite a few remote resources coming in all the time with different UI representations. Right now some have placeholders and some don't, and soon we'll need some design guidance to start thinking through the technical implementation. I will try to list all those I can think of here, with some context. As a general approach to these interactions, I'll propose the following requirements for asynchronous resources (feel free to say otherwise though):
Any user action should produce an immediate result in the UI.
The resulting UI change should communicate the eventual result of having initiated this request for remote data, for example, by placing a stand-in shape for the UI element that will eventually present the data.
As far as possible, placeholders should exhibit object constancy, approximating the shape, layout, and size of the objects they represent, avoiding flickering, teleportation, disappearing, or other disorienting effects.
Placeholders should have all states of the request represented. (initial, pending, received, rendered, failed)
Elements should provide pleasant and unobtrusive transitions between the request states, to avoid the jarring visual effect of text, icons, or shapes suddenly jumping in and out of existence.
Objects with Asynchronous States
Windows
When the user opens a window, the manifest might still have to load. So the title, index information, and thumbnail outline (number of canvases, their size and order) will not be available. But the containing box and some interface elements can still be rendered. #1748 comment
Image Canvas
Initially, it will be blank when advancing the page or opening a window until the initial tiles have loaded.
Thumbnail Strip Thumbnails
Annotation Pages
Search Results (and result pages)
Manifests in the Catalogue
There is some added complication of having the url and no other data on initial load, possibly with location information(?) #1834 comments.
Canvas Thumbnails in the Catalogue
Proxy Representations
Some UI elements serve as proxies for "real" elements, and may have their own request state in addition to representing the request state of a different resource.
Image Layer Thumbnails
Image layers have a thumbnail to represent the canvas sub-resource they control, but they also need to show the loading state of the layer they represent. See the Mirador 2 advanced features demo for an example of this. Layers Demo
Annotation List Segments
This depends on the implementation, but thumbnails of annotation regions might have a different request cycle than the annotations themselves, so this should
Global States with Asynchronous Aspects
There are some other, less object-specific asynchronous states of a more abstract or global nature, such as potential auth states (depending on how those eventually get designed). Here are some that might be relevant.
The openseadragon canvas is not fully rendered on zoom (still waiting for some tiles to render). Do we want some type of understated spinner or status indicator the user can usually ignore, but check if they're not sure whether the image is just low-res or still loading?
Collection pages need to be retrieved before the list can be rendered in the catalogue area, or TOC area of windows (for multi-volume works(?)).
The initial load of the workspace is still retrieving resources it needs to begin building (depends on implementation details). For example, if we decide to load manifests before populating a crowded workspace with blank windows, or if there is a remote config that needs to be retrieved.
The text was updated successfully, but these errors were encountered:
There are quite a few remote resources coming in all the time with different UI representations. Right now some have placeholders and some don't, and soon we'll need some design guidance to start thinking through the technical implementation. I will try to list all those I can think of here, with some context. As a general approach to these interactions, I'll propose the following requirements for asynchronous resources (feel free to say otherwise though):
Objects with Asynchronous States
Windows
When the user opens a window, the manifest might still have to load. So the title, index information, and thumbnail outline (number of canvases, their size and order) will not be available. But the containing box and some interface elements can still be rendered. #1748 comment
Image Canvas
Initially, it will be blank when advancing the page or opening a window until the initial tiles have loaded.
Thumbnail Strip Thumbnails
Annotation Pages
Search Results (and result pages)
Manifests in the Catalogue
There is some added complication of having the url and no other data on initial load, possibly with location information(?) #1834 comments.
Canvas Thumbnails in the Catalogue
Proxy Representations
Some UI elements serve as proxies for "real" elements, and may have their own request state in addition to representing the request state of a different resource.
Image Layer Thumbnails
Image layers have a thumbnail to represent the canvas sub-resource they control, but they also need to show the loading state of the layer they represent. See the Mirador 2 advanced features demo for an example of this. Layers Demo
Annotation List Segments
This depends on the implementation, but thumbnails of annotation regions might have a different request cycle than the annotations themselves, so this should
Global States with Asynchronous Aspects
There are some other, less object-specific asynchronous states of a more abstract or global nature, such as potential auth states (depending on how those eventually get designed). Here are some that might be relevant.
The text was updated successfully, but these errors were encountered: