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

Angular support for IIIF and Mirador #1079

Merged
merged 67 commits into from
Oct 22, 2021
Merged

Conversation

mspalti
Copy link
Member

@mspalti mspalti commented Mar 30, 2021

References

Add references/links to any related issues or PRs. These may include:

Description

This Angular pull request is intended for discussion. I'll add the REST pull request (with lots more detail) soon. The goal is to explore how DSpace 7 with IIIF support can be used as the repository for collections that require significant image capabilities. Community input is needed because we hope that IIIF support will be added to DSpace soon and we want our efforts to align with the community (ideally before we import tons of data).

This project supports IIIF Presentation API version 2.1.1, IIIF Image API version 3.0, and IIIF Search API version 1.0. Use of the Authentication API is being explored. Again, I'll add more details to the REST pull request.

The project uses the Mirador Viewer.

A demonstration site is available at https://digitalcollections.willamette.edu.

Example of single image record:
https://digitalcollections.willamette.edu/items/04c55c73-0f94-4611-9970-a257bf986563

Example of multiple image record:
https://digitalcollections.willamette.edu/items/4f93a633-3d03-49fb-974a-310f13e2c745

Example of document with table of contents:
https://digitalcollections.willamette.edu/items/0a53d851-319b-4883-9d80-6bf0148ee2ed

The Mirador viewer configuration is adjusted based on the document type and width of the viewer window.

Instructions for Reviewers

Please add a more detailed description of the changes made by your PR. At a minimum, providing a bulleted list of changes in your PR is helpful to reviewers.

List of changes in this PR:

  • Adds Mirador dependencies to package.json.
  • Provides webpack build configuration for Mirador.
  • Provides a shared mirador component that embeds the Mirador viewer in an iframe.

Include guidance for how to test or review your PR. This may include: steps to reproduce a bug, screenshots or description of a new feature, or reasons behind specific changes.

For building, I typically use yarn run build:mirador and yarn start (for development). Obviously, you'll need a REST API that includes the IIIF endpoint. More on that in the next PR.

Checklist

This checklist provides a reminder of what we are going to look for when reviewing your PR. You need not complete this checklist prior to creating your PR (draft PRs are always welcome). If you are unsure about an item in the checklist, don't hesitate to ask. We're here to help!

  • My PR is small in size (e.g. less than 1,000 lines of code, not including comments & specs/tests), or I have provided reasons as to why that's not possible.
  • My PR passes TSLint validation using yarn run lint
  • My PR doesn't introduce circular dependencies
  • My PR includes TypeDoc comments for all new (or modified) public methods and classes. It also includes TypeDoc for large or complex private methods.
  • My PR passes all specs/tests and includes new/updated specs or tests based on the Code Testing Guide.
  • If my PR includes new, third-party dependencies (in package.json), I've made sure their licenses align with the DSpace BSD License based on the Licensing of Contributions documentation.

@lgtm-com
Copy link

lgtm-com bot commented Mar 30, 2021

This pull request introduces 1 alert when merging 97e8c9b into ea3886b - view on LGTM.com

new alerts:

  • 1 for Unused variable, import, function or class

@lgtm-com
Copy link

lgtm-com bot commented Oct 14, 2021

This pull request introduces 1 alert when merging 8c05c6d into 802a212 - view on LGTM.com

new alerts:

  • 1 for Unused variable, import, function or class

@lgtm-com
Copy link

lgtm-com bot commented Oct 16, 2021

This pull request introduces 1 alert when merging 073296e into f4cdd6a - view on LGTM.com

new alerts:

  • 1 for Unused variable, import, function or class

Updated test.

Mobile test added.

Fixed lint error.
Copy link
Member

@tdonohue tdonohue left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍 @mspalti : Gave this a test today (this time, with Cantaloupe installed) and this is working well! I was only able to get it working well with public bitstreams (i.e. no access restrictions), but I see it's noted in the REST API PR that you need to configure Cantaloupe in a more complex manner to get it working for non-public bitstreams. So, we can always leave that for the docs or for areas of future improvement.

I'm OK with the current build process & UI display. I think we'll just need some good documentation added to the Wiki, obviously.

Overall, great work! Also, as a sidenote...I've figured out how to spin Cantaloupe up in Docker for much easier testing. I will create a backend PR for that.

@tdonohue
Copy link
Member

Apologies @mspalti -- new merge conflicts have appeared after I merged #1318. If you can get this cleaned up & the REST API fixed to allow for disabling, I think this is ready to merge as well.

@mspalti
Copy link
Member Author

mspalti commented Oct 20, 2021

@tdonohue after I resolved the conflict I needed to update the new versioned-item component (and its test) because it called a no-arg super(). In this PR the RequestService is injected into ItemComponent so versioned-item needs to provide this in the call to the constructor.

@tdonohue
Copy link
Member

Merging with two approvals. Thanks again @mspalti !

@tdonohue tdonohue merged commit 043decf into DSpace:main Oct 22, 2021
@tdonohue tdonohue added the integration: IIIF Related to International Image Interoperability Framework (IIIF) support label Oct 29, 2021
@mspalti mspalti deleted the iiif-mirador branch February 1, 2022 18:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
component: Item (Archived) Item display or editing component: viewer Related to media viewers / inline streaming of content integration: IIIF Related to International Image Interoperability Framework (IIIF) support new feature
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants