Hi Tim, sorry, late to the party.
Mitchell is right, setting a fixed View Mode is a workaround, but i will use the chance to extend a little more on this topic.
1.- There are two ways Archipelago defines how a given Node/ADO is displayed
a) What Mitchell said. You tell Archipelago what of the many View Modes you want to use during edit/ingest under Display Settings/select box. View Modes are not smart. They just use the Formatters (like widgets that take the JSON and use plugins to show the internals in some way), plus their settings to display the Object. So a wrong choice there could leave some data/media not being shown.
b) If you don't select any view mode during ingest/edit (e.g you use/leave 'default') under Display Settings/ Select box there: Archipelago will use the settings at /admin/config/archipelago/viewmode_mapping to make a decision for you. And the rules of that decision are quite invisible if you don't know where to look.
In that form you will see a draggable table that contains 'type' strings labeled JSON Types and 'View Modes', and also on top an option of adding more types/View Modes. View Modes visible there are straight forward, the same options you get to select during edit/ingest. The JSON Types are more complex to understand:
If you look at your RAW metadata in JSON under each ingested Object, you will see that there is a top level key named 'type' followed by a colon and then a value. In the case of your Nodes/ADOs in question it will be 'DigitalDocument'. Ok, good. But if you actually look deeper into that JSON you will see there are other 'type' keys, in other hierarchies. (hint, do a search and you will see a 'type': 'document' and 'type':'service' too. Keep that idea around... and lets keep digging into this
So, so. Back to that /admin/config/archipelago/viewmode_mapping form. Archipelago does the following for you
- When you go to see a Node/ADO.
- It checks if the current View Mode is 'default'/unset. If not, a) will kick in and you are done. If so, it will go and do smarter things.
- It will read the RAW JSON from your Strawberryfield and get ALL type values from the JSON (that idea i asked you to keep around!). means in your case 'DigitalDocument', 'Document', 'Service', maybe others? With that in hand, next
- It will read from top to down (because you can drag those table elements) from /admin/config/archipelago/viewmode_mapping and see if there is for any of those many types a chosen 'View Mode' it should use instead of the 'default'.
- When it finds one, like the first match, it will stop searching and swap 'default' for that one. And will use that Display for you
- If nothing is found, it will actually use the 'default' one which is the Open Seadragon viewer for images. And you can add more mappings or move them around.
So. Now that you know that, imagine you add an Image and a PDF to the same Node/ADO. Archipelago will have a list of types that includes now also 'image' (look at your raw JSON). And when trying to decide what View Mode to use, 'image' will/cpould match some view mode before PDF viewer can trigger and you will be seeing probably using a unexpected view mode, as defined in your /admin/config/archipelago/viewmode_mapping form.
You can play around with the order in how those things are matched by dragging down rows and saving and see how that changes you Object.
I know it reads a little bit obscure and i'm working now on adding on beta3 some info for admin/editing users so they are informed (notice inline) of what display is being used and why. But also, this whole thing is part of the design to allow wider flexibility and for sure not a bug, but a well planned (and little documented... sorry...we are working on that) feature.
That said. This just explains which view mode is selected and why. But now your next step is figuring out how to customize a View Mode or to create new ones that allow you to display all your rich assets and metadata, which is basically setting how the Strawberryfield (JSON) is displayed using one of the many, many Formatters we have, with a lot of different settings too. And Since All data goes into a single Drupal field, also how you format the same field over and over (yes, same data shown in many different ways at the same time).
There are docs for that but probably not enough,so i'm more than happy to help you out there if that is the route you will follow. For now, stay away of Mirador for PDFs, we just got a fix committed into the IIIIF Image server (discovered because of this) and i also fixed IABookreader to be able to use PDFs via a IIIF Manifest, but Mirador has some pretty deep coded logic (i would say a tiny bug, but to be seen) that is not allowing us to do that right now.
From Github
Hope this adds to the discussion instead of confusing things more and also inspires someone to write missing documentation.
Thanks so much for testing and exploring Archipelago
Diego Pino
Metro.org