Replies: 4 comments
-
I should be more clear about the
|
Beta Was this translation helpful? Give feedback.
-
Thanks for putting this together @sdellis. I like the idea of moving from What is the sort order used for? Could we just store presentation api resource type? @aeschylus does this have any implications with your work on ranges and TOC? |
Beta Was this translation helpful? Give feedback.
-
@mejackreed The sort order is optional and can be removed. I stuck that in there in case the order of windows is important to maintain, since that seems to be the best practice based on the docs. If not, then let's remove it as well as the Yes, we can just store the Presentation API resource type. We already have that in the json, but it may be cumbersome to continually look up values in that for application logic. Also, one assumption I have is that we only want users to be able to view |
Beta Was this translation helpful? Give feedback.
-
@sdellis I've had a little bit of time to think about this, and based off of recent changes in Mirador and designs in #2598 I think I've had a change of how I might approach this problem. Some recent improvements in window state, and Mirador instantiation enable us to specify both Similar to how a window can determine the We can continue to keep state living in places where it already is, and I would see this as an additional extension. Perhaps future work could include instantiation generalization that knew how to broker if an object was a manifest or collection. |
Beta Was this translation helpful? Give feedback.
-
(Related to issue #2354.)
Mirador 3 currently assumes a one-to-many relationship between a Manifest and Windows (e.g. a single Manifest may be associated with many Windows). However, the user experience conveyed in the Multi-volume Work (MVW) wireframes reveals that a single Window must also be able to present not only many Manifests, but also data about a Manifest's parent or sibling Collection. This Collection data allows users to navigate from one volume to another and can also allow them to drill into sub-collections that may exist in a multi-part work.
In order to make it possible to view a multi-part Collection within a Window, two significant changes must be made to the Redux store schema based on guidance found in the Redux documentation:
Additionally, since
item
order is important (unless thebehavior
is specificallyunordered
), the order of childrenitems
must also be available for each Resource. Because of the hierarchical nature of Collections, a simple array of ids given in the documentation example will not suffice. Moreover, since we need to know theitems
order specifically related to the parent Resource, so one might be inclined to store the parent and sort information with the Resource like so:One wrinkle with this approach is that it is possible for a single Manifest to be a child of different Collections. Should a user want to view two different Collections that contain the same Manifest in two different Windows, using the URI of the manifest as an id and storing information about the parent Collection will not work, since it may have multiple parents. An better solution (that may also have performance benefits) would be to place the parent and sort information in the "join table" to manage the hierarchy and order. Here is the proposed structure:
Comments, thoughts, or suggestions?
Beta Was this translation helpful? Give feedback.
All reactions