Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ISSUE-302: A Saga of JS driven IIIF Interactions #303

Merged
merged 49 commits into from
May 29, 2023
Merged

ISSUE-302: A Saga of JS driven IIIF Interactions #303

merged 49 commits into from
May 29, 2023

Conversation

DiegoPino
Copy link
Member

See #302. Starting here with Mirador and moving into each IIIF driven/enabled (or able to react) Viewer we provide.

WIP, will keep adding commits and comments and will update this once all is done.

Not yet there but advancing. Still very experimental but i think i got this
@DiegoPino DiegoPino changed the base branch from main to 1.1.0 May 13, 2023 20:44
@DiegoPino DiegoPino added this to the 1.1.0 milestone May 13, 2023
@DiegoPino DiegoPino added enhancement New feature or request metadata Meta(l) data Javascript Favourite language of a PHP developer IIIF Specs/Manifests/Implementations UI driven hints Show stuff on screen so people have less guessing to do UX Like UI but with an X Annotation API Paint and scratch, share your feelings with SVG Search and Discovery Mess around and find out Drupal Views Ask and you should receive Search API Sub Modules When you need more .info.yml files to keep life organized Events and Subscribers get 2 printed issues for free labels May 13, 2023
But..the new IIIF Geo specs are strange.
Means for our (my Math capabilities) i can only warp via CSS/Leaflet the topleft/topright/bottomleft and bottomright of an annotation. The Specs define one Lat/long v/s one X,Y point, so instead of saving a full Polygon feature in the annotation body i have to go point by point, and since x,Y  are relative to the fragmens (the target) i have to do more and more maths. C'mon!!
Clip-path parsed from the W3C annotation polygon
…anifests

Not working yet
But if i don't push
I will die (dies)
Still, need to check of course, but now the hard part. JS!
Because our markers are extra grouped here i might have to do some empiric tests (build a view/etc) to make sure all is OK (maybe tomorrow @alliomeria ?)
Lot's of promises and async here so was a bit harder. But basically with this OSD can read any Service based (/info.json) manifests and thus annotated, which of course includes PDFs but also CreativeWorkSeries, books, you name it!
Not ready yet, we need to act on these new options
I might have gotten this wrong so another pull might follow
But i will keep a few, they are fun! Like a data logger of sorts of my late night work
Everyone talking to each other
One downside of the manifest/canvas ado interaction
is that on the caller i need to calculate the canvas id which uses the uuid ...
For an ADO change to be triggered it needs:
"sbf:ado:change": nid
for an view change the JSON-LD or the GEOJSON needs
'sbf:ado:view:change': nid or any exposed/relationship value one wants to pass/view receiving accepts.
For a canvas change it needs (Mirador does nothing, it will trigger the canvas change on change) but maps needs

"sbf:ado:canvas:change": {
   "canvasid": the id of the canvas,
  "manifestid": the id of the manifest
}

This is a bit tooo precise for my taste? mmmm
Wonder if Mirador should also react to ADO change? And i do the "find the canvas that contains the actual ID i'm searching for? mmmm
Probably
If we want reaction we add `sbf:ado:change:react`, if we want to trigger a reaction somewhere else we use `sbf:ado:change`
Also we avoid self reactions to avoid looops
We need settings here ?
@DiegoPino DiegoPino merged commit 38e2e5e into 1.1.0 May 29, 2023
@DiegoPino
Copy link
Member Author

@esmero/archipelago-core. Merging this, has been in production for 10 days without issues. There is still work todo. e.g add the same override options via JSON to Mirador, make OSD react to Events, etc. But this was becoming too large already

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Annotation API Paint and scratch, share your feelings with SVG Drupal Views Ask and you should receive enhancement New feature or request Events and Subscribers get 2 printed issues for free IIIF Specs/Manifests/Implementations Javascript Favourite language of a PHP developer metadata Meta(l) data Search and Discovery Mess around and find out Search API Sub Modules When you need more .info.yml files to keep life organized UI driven hints Show stuff on screen so people have less guessing to do UX Like UI but with an X
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant