/islandora_openseadragon

A Djatoka TileSource for Seadragon based in spirit from the JS component of https://github.com/ksclarke/freelib-djatoka.

Primary LanguagePHPGNU General Public License v3.0GPL-3.0

Islandora OpenSeadragon Build Status

Introduction

This is an Islandora viewer module using OpenSeadragon. It allows users to view large image datastreams (like JPEG-2000) through image tile servers. This module supports a custom Djatoka tilesource and a IIIF tilesource.

Based in spirit on the JS component of Kevin Clarke's FreeLib-Djatoka.

Requirements

This module requires the following modules/libraries:

In addition, either Djatoka or a IIIF image server needs to be setup.

Installation

Install the module as usual, see Drupal 7's documentation on installing modules for further information.

The OpenSeadragon JavaScript library is not included in this module. Openseadragon 2.3.1 is known to work well with Islandora. You can use Drush to download and install it automatically or do it manually.

Older versions must be updated. You can do this quickly with the provided Drush command.

Drush OpenSeadragon installation

This module provides a Drush command to download and install a recent version of OpenSeadragon. It is advisable to move (not copy) the install script to your .drush folder and run the following command from that folder:

drush openseadragon-plugin

Manual OpenSeadragon installation

Download the OpenSeadragon 2.3.1 binary release and install the Openseadragon library to your sites/libraries folder.

Configuration

Islandora OpenSeadragon offers many settings to be configured. All settings are found in Administration » Islandora » Islandora Viewers » OpenSeadragon (admin/islandora/islandora_viewers/openseadragon).

In this README, only the image server settings are highlighted. Other settings are explained on the Open Seadragon wiki page.

Djatoka Image Server

When you use the Adore-Djatoka Image Server ("Djatoka"), you need to set the base URL to the Adore-Djatoka server OpenURL resolver. The base URL depends on the setup of Djatoka, including (optional) configuration of a reverse proxy.

By default, Islandora OpenSeadragon expects that the Djatoka OpenURL resolver is reachable on the same domain name and port as Islandora itself, at the path adore-djatoka/resolver. A checkmark and confirmation message appear when Islandora can connect to the server. If Islandora cannot connect to the server, a cross and error message appear.

Configuration

IIIF Image server

When you use the IIIF Image Server, you need to specify:

  • the base URL of the image server;
  • whether to send the image access token as a HTTP header instead of a query parameter;
  • the pattern to use as the image identifier.

As with Djatoka, the base URL depends on the setup of your IIIF image server and reverse proxy, if you use one. Any IIIF image server can be used as the IIIF tile source. This IIIF server does need to be configured to resolve the image identifier to retrieve the image.

By default, Islandora OpenSeadragon uses the full URL to the image's JP2 datastream and the image access token as image identifier. If you use the Cantaloupe 🍈 IIIF image server, you can configure it to resolve these identifiers using the HttpResolver with no prefix specified.

Reverse Proxy

A reverse proxy can be used to make an image server available on the same domain as Drupal, so that cross-origin resource access and the need for CORS headers are avoided. Various applications can be used as a reverse proxy; Apache HTTPD and nginx are common in reverse proxy setups. For details on configuring your reverse proxy, you should consult the documentation for your application of choice.

Note: if you use a reverse proxy, you may need to configure the image server as well, so that it knows what external URLs are used to reach the image server. Whether this is necessary and how the image server needs to be configured, depends on the image server.

Documentation

Further documentation for this module is available at our wiki.

Troubleshooting/Issues

Having problems or solved a problem? Check out the Islandora google groups for a solution.

Maintainers/Sponsors

Current maintainers:

Development

If you would like to contribute to this module, please check out CONTRIBUTING.md. In addition, we have helpful Documentation for Developers info, as well as our Developers section on the Islandora.ca site.

License

GPLv3