Git Product home page Git Product logo

iiif-manifest-editor's Introduction

iiif-manifest-editor

The iiif-manifest-editor is a web application that generates IIIF manifests. It allows you to import, view, update and export images and metadata using the IIIF APIs.

Screenshot of the IIIF Manifest Editor

How to use

See this Wiki page for instructions on how to use the IIIF manifest editor: User manual

Online Demo

You can find online demos of the IIIF Manifest Editor here:

How to set up the application

Prerequisites

How to set up the application

  • Clone this repository: git clone [email protected]:bodleian/iiif-manifest-editor.git
  • Change into the project directory: cd iiif-manifest-editor
  • Install Node v8.1.4 with nvm: nvm install v8.1.4
  • Install the required node modules into the project: npm install

How to run the application

  • Run webpack to generate the bundle file either once or dynamically on file changes:
    • npm run build: This builds the bundle file once for use in development
    • npm run build-prod: This builds a much smaller bundle file for use in production
    • npm run watch: This builds the bundle file dynamically on all file changes
    • Note: when changing webpack.config.js, webpack needs to be restarted
  • Start the server: npm run start

How to run tests

  • npm run test

iiif-manifest-editor's People

Contributors

ahankinson avatar dougkim avatar emmastanford avatar jchristo4 avatar nodanaonlyzuul avatar schwemmer avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

iiif-manifest-editor's Issues

Creating a new manifest does not work

Tried both demos in chromium and firefox and they don't seem to work, tried building it myself and even that doesn't work, anybody else experience the same?

I get this in the console:

Uncaught TypeError: Cannot read property '@id' of undefined
    at t.getInitialState (bundle.js:41)
    at new t (bundle.js:31)
    at I._constructComponentWithoutOwner (bundle.js:31)
    at I._constructComponent (bundle.js:31)
    at I.mountComponent (bundle.js:31)
    at Object.mountComponent (bundle.js:12)
    at I.performInitialMount (bundle.js:31)
    at I.mountComponent (bundle.js:31)
    at Object.mountComponent (bundle.js:12)
    at T.mountChildren (bundle.js:31)

On-screen documentation for editing existing manifests

If a user creates a new manifest with the tool, the "add canvas" button makes it clear that the thumbnail slider is editable. However, when editing an existing manifest--the use case I envision most frequently for documentary editors--it's not at all apparent that anything beyond canvas metadata is editable.

Perhaps a splash screen would help new users, or an info button with pop-over help?

Regenerate public

The public folder should be regenerated to incorporate the latest changes.

I can do this and create a new tag release, if appropriate.

error in ./app/app.jsx during installation

after command npm run buildI get an error message
"ERROR in ./app/app.jsx
Module not found: Error: Cannot resolve module 'leaflet/dist/leaflet.css' in /Users/nastasia/iiif-manifest-editor/app
@ ./app/app.jsx 31:0-35

I followed all steps in ReadMe

schermafbeelding 2017-02-23 om 17 52 46

Loading invalid manifest URI breaks canvas importer?

I think the problem here is that the editor doesn't recover well from failing to load a manifest. Here are the steps I took to reproduce the error:

  1. Loaded this manifest into the editor: https://iiif.lib.harvard.edu/manifests/drs:48309543

  2. Opened the canvas importer and loaded these manifests:
    https://iiif.lib.harvard.edu/manifests/drs:5981093
    http://dams.llgc.org.uk/iiif/4574752/manifest.json

  3. Received a "error: invalid remote manifest URL" message when loading the last manifest. The same message appeared again when I tried to load the first manifest I had loaded (https://iiif.lib.harvard.edu/manifests/drs:48309543). When I closed the message, I couldn't close any of the manifests, open the information windows, add canvases, or return to the edit manifest view; I could only rearrange and edit the canvases that were already in my main manifest thumbnail sequence.

Main Viewer not Centered Correctly on Initial Page Load

The main viewer and the image displayed are not centered correctly on initial page load. It is off by about 25% to the right. When resizing the window or closing and re-opening the metadata sidebar, the viewer is centered correctly.

Creating a new manifest and adding a canvas via image or info.json returns an error

Hi,
I've been trying to add an image to a new manifest via the tool and I keep getting a "URI is not valid" error.
I've tried it as an image (level0):
https://philippinestudies.uk/mapping/images/iiif/manila-panel1/full/full/0/default.jpg

And as an info.json file:
https://philippinestudies.uk/mapping/images/iiif/manila-panel1/info.json
http://free.iiifhosting.com/iiif/94ed082cc0af882a704b6cac380dde873d1830157d383e1a02bb089adf16999e/info.json

Yet it works as a level1 image:
https://free.iiifhosting.com/iiif/94ed082cc0af882a704b6cac380dde873d1830157d383e1a02bb089adf16999e/full/full/0/default.jpg

Manifest here:
https://philippinestudies.uk/mapping/iiif-manifests/manila-panel1/manifest.json

I was wondering what was wrong with the info.json files above and what's wrong with the level0 image.

Can you let me know?

Thanks!

Saving using IIIF remote server URI

When storing the manifest remotely using a defined endpoint, the name of the manifest is automatically generated. Is there any way I can assign the name?

Create Help or Info Text for "Reverse Sequence Button"

Help text could be something like:
"Please note that this will actually reverse the order of the canvases in the sequence for this manifest. If you just want to change the viewing direction please use the viewing direction toggle button in the Sequence Metadata panel."

Error loading remote manifest

Hi,
I am writing on behalf of the Silk Museum. We have been using https://digital.bodleian.ox.ac.uk for creating manifests of the photo collection. Unfortunately we have been receiving an error recently, is this a temporary thing or should we be searching for other ways to create/edit manifestos?

Thumbnail strip does not update when dragging & dropping canvases from source manifests

The canvases do get added to the target manifest sequence as can be verified when returning to "Edit Manifest" view. The thumbnail strip in the "Import Canvases" view does not update however, giving no visual feedback to the user.

This bug must have been introduced with the viewingDirection feature that let's you reverse the display of the canvases.

More robust response to invalid manifests

If you try to load or import canvases from an invalid manifest, you won't be able to load a valid manifest either until you clear your browser cache. It would be good if the editor were a bit more resilient in these cases.

To reproduce this error:

  1. Go to iiif.bodleian.ox.ac.uk/manifest-editor/.
  2. Choose "New manifest".
  3. Go to "Import canvases".
  4. Load this manifest: http://www.qdl.qa/en/iiif/81055/vdc_100000000241.0x0003bd/manifest
  5. After closing the error message, try to load this manifest: http://iiif.bodleian.ox.ac.uk/iiif/manifest/beeedb51-90cd-4119-84fb-c7e9ffb0b214.json. You should see the same error message.
  6. Try again after clearing the browser cache.

Change Default Text

When you add a new field, the default text for both label and value is "N/A".
Replace "N/A" with "Label" and "Value".

disappearing thumbnails in Import Canvases view (Chrome)

In Chrome, the thumbnail panel in OpenSeadragon disappears when you move your mouse to scroll forward or backward in the sequence. This means that scrolling can only be done with arrow keys.

To reproduce:

  • open a new manifest
  • go to Import Canvases
  • import a sequence
  • try to scroll forward through the thumbnails of your imported sequence

NB this doesn't happen in Firefox.

Problem uploading saved manifest

Actually, uploading any manifest seems to not work.

Steps to reproduce...

Start manifest editor and select "open manifest"
Select upload from computer and browse to a file
Get error "Error loading local manifest. Please select valid..."
Browser console reveals:

XHR PUT https://iiif-manifest-editor.textandbytes.com/manifestUpload

Status 405 Method Not Allowed
Version HTTP/2
Transferred 1.15 kB (933 B size)
Referrer Policy strict-origin-when-cross-origin
Request Priority Highest

New manifest, add canvas leads to loading spinner forever

In Chrome 84 on MacOS if I start a new manifest and click Add Canvas I get a broken image icon on the Empty canvas with a spinning loading symbol.

Sidebar changes from "This sequence does not have any canvases." to "The selected canvas has been deleted."

Independent image URIs for duplicated canvases

When you duplicate a canvas and then change the image URI for the duplicate, it also changes the image URI for the original canvas. You can change all the other metadata independently, however, and it would be good to be able to change the image URI independently as well, as it would make it a bit easier to add new images.

Clear uploaded manifests on start up

Uploaded manifests are stored under uploads/manifests with a UUID as file name. This directory never gets cleared and fills up over time. It would probably make sense to clear the uploads on start up as the files are not being reused.

possible to override save callback?

The save button generates a manifest for you to download.
Another option would be to supply a callback so one can upload
this manifest wherever you want. This way this UI can be used
as an editor for an admin interface.

Or is this just intended as an application that edits and exports manifests?

Python server

I would like to add a small Python server to this project, since it will fit in better with our deployments at the Bodleian.

Is the purpose of the Express server.js just to serve out the public directory? Is there anything else I should keep in mind when creating this?

Change manifest discovery to fetch from top-level collection URIs instead of hard-coded JSON

Instead of copying the collection to a JSON file hosted on the server, have a file with a list of top-level collection URIs. This way we can easily add new collections, and existing collections will be up-to-date. I don't know how significantly this will affect load time. Possibly the fetched collections could be cached locally for a set time, if fetching them anew each time slows things down a lot.

Replace node-sass with dart-sass

node-sass is giving a lot of problems when installing the IIIF manifest editor locally, especially when switching node environments (e.g. when testing different node versions with nvm) and when on Windows. node-sass then usually needs to be recompiled. The error messages are cryptic and not helpful. Also, the Sass project has switched to Dart, see here: https://sass-lang.com/blog/announcing-dart-sass

Remove error message after error is fixed

To reproduce:

  1. Load http://iiif.bodleian.ox.ac.uk/iiif/manifest/9c7e4a6e-ab08-4372-a0be-d914d8cfd7f2.json into editor.
  2. Copy the image URI from the second canvas in the sequence.
  3. Change the image URI for the first canvas in the sequence to an invalid URI. An error message will appear.
  4. Replace the invalid URI with the URI copied from the other canvas. Don't click away from the canvas you're editing. The new image will load, but the error message will persist until you click away to a different canvas and then click back.
    image
    image

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.