scientist-softserv / iiif_print Goto Github PK
View Code? Open in Web Editor NEWA gem for Hyrax/Samvera for displaying PDF pages in a IIIF Compliant viewer
License: Apache License 2.0
A gem for Hyrax/Samvera for displaying PDF pages in a IIIF Compliant viewer
License: Apache License 2.0
Review the css files in iiif_print and remove the unnecessary/un-usued files.
File now exists, but needs to be made functional. Specifically for IIIF manifest 2 and 3
Indiana is open to upgrading their manifest.
Heads Up: Indiana has a configuration to pull in the metadata into the manifest. This will need some work, and we also may need to consider how it will work with AllinsonFlex.
The end goal is for the UV to display the way that LV has it.
https://demo.hyku-iiif.notch8.cloud/
The order of the works that are displayed in the items partial in the work show page does not always match the way the UV's display order.
sort_iiif_manifest_canvases_by
to :date_created
in the configurationConfused how to fill this out? Check out the playbook
Confused how to fill this out? Check out the playbook
exclude_models should be configurable.
https://drive.google.com/file/d/1b9gK-eA5wih1GDiT4PCwFRKEGWo_PC4_/view?usp=share_link
'Image'
to the excluded work from the config
config.models_to_be_excluded_from_search = []
in config\initializers\iiif_pring.rb
within your Hyku applicationConfused how to fill this out? Check out the playbook
Put into gemfile, bundle and run generator
We currently don't have a way to select what type of derivatives to make.
ie: "for this work type, only make tiffs and not pdfs" or "don't OCR"...
There is currently no way to turn this on and off for a given class.
I want to create all derivatives available from IIIF Print for my Image
work type:
# Image model
class Image < ActiveFedora::Base
include IiifPrint.model_configuration
end
I want to create just TIFF derivatives:
class Image < ActiveFedora::Base
include IiifPrint.model_configuration(
derivative_service_plugins: [
IiifPrint::TIFFDerivativeService
]
)
end
I want to create all JP2, PDF, and text derivatives but not TIFF:
class Image < ActiveFedora::Base
include IiifPrint.model_configuration(
derivative_service_plugins: [
IiifPrint::JP2DerivativeService,
IiifPrint::PDFDerivativeService,
IiifPrint::TextExtractionDerivativeService
]
)
end
Image
This appears to be broken. This ticket is to figure out why. Did we miss porting over necessary code from LV? (#iiif_search is missing in iiif_print)
Is full or all text getting indexed? etc...
Highlighted in UV means that the word will be highlighted in the image it matches with. Additionally, a blue box will be highlighted in the left pane, of the matched work. Examples from LV:
The commits in Louisville that worked towards this are:
maybe helpful refs:
If things aren't working, try...
ActiveFedora::Base.reindex_everything
Confused how to fill this out? Check out the playbook
compare to iiif_print: https://github.com/scientist-softserv/iiif_print/search?q=commit_assigned
redefine method in iiif_print to match LV
Verify the readme instructions for testing is comprehensible.
https://github.com/scientist-softserv/iiif_print#developing-testing-and-contributing
Ask for pairing when needed.
ref UTK's pipeline setup: https://github.com/scientist-softserv/utk-hyku/blob/main/.github/workflows/build-test-lint.yaml
WIP branches:
ACTIONS REPO:
iiif-v6: scientist-softserv/actions#26
iiif-v3plus5: scientist-softserv/actions#27
IIIFPRINT REPO:
v6: scientist-softserv/actions#26
v3plus5: #56
Run actions/checkout@v3
Error: Input required and not supplied: token
IIIF Print bulkrax imports do not work with remote PDF files. They create the parent work and fileset only.
The following file should be imported into a parent GenericWork AND ALSO create a child Image TIFF work.
Note: a CSV with the remote url in the GenericWork row will NOT work. This would require changes to bulkrax.
The MetadataBuilderService
should also handle IIIF version 3 manifests as well.
context
that is is a presentation/3/context.json
spin off ticket from i37
The parent UV does not render when it doesn't have filesets. It should still render if it has children.
Confused how to fill this out? Check out the playbook
Is full or all text getting indexed? etc...
Deploy i87-ocr-search to hyku-iiif (hyku branch) โ visit: demo.hyku-iiif.notch8.cloud/
The commits in Louisville that worked towards this are:
maybe helpful refs:
If things aren't working, try...
ActiveFedora::Base.reindex_everything
ref #62
ref HYKU: https://github.com/samvera/hyku/blob/main/app/presenters/hyrax/iiif_manifest_presenter_decorator.rb
Compare the differences between these two files and decide which one we should take.
We also may also need to take account the difference between Hyrax and Hyku. Site.account is hyku specific since Hyrax doesn't have concept of tenants.
Confused how to fill this out? Check out the playbook
verify that running the generators gets you all the needed adjustments for iiif search found in lousiville app/controller/catalog_controller.rb
Implementation suggestion:
run the generator from iiif print main on a clean hyku and then compare the CatalogController of each spot and take note of the diff.
ManifestBuilderServiceBehavior
needs to have some rspec tests.
Attempt to answer why these methods exist. Is it necessary to keep or transfer over to iiif_print?
Close this ticket if these methods are not required, or after creating a new ticket that'll implements them in iiif_print.
Use a Gem to identify which translations are not being used. We will want to remove them and re run the generator to translate. You should only have to focus on removing the english translations.
I suspect the translator generator will be based of of the english locale file, meaning that if translations get removed there it will automatically remove them from other languages.
This issue may not be testable from a QA perspective, besides ensuring that nothing is broken after its done. For example, there should be no missing translation errors anywhere.
a GOOGLE_API_KEY is needed to run the translator. You can find this in 1password, however, I believe it may need to get updated.
The last time it was used, we received a message that we reached the maximum usage threshold. See Kirk/BL.
Currently, only NewspaperPage
can use NewspaperPageDerivativeService.
We would like to generalize this and be able to choose which class can use the service. The class should be configurable.
When a PDF doesn't have the appropriate information, the PagesIntoImagesService cannot break it into TIFFs.
The service defines invalid_pdf?
which specifies all of the information which is needed by the service. This method could be put into use somewhere in ChildWorksFromPdfJob to prevent the job from indefinitely retrying due to the error, and possibly reporting the error as well.
It's far to easy to accidentally submit PRs against the Newspaper Gem. We need to break the fork so that by default, PRs get submitted to IiifPrint repo.
The MetadataBuilderService should also handle metadata properties that were generated from AllinsonFlex in both version 2 and version 3 manifests.
In an application installed with AllinsonFlex
THIS SHOULD BE TESTED LOCALLY
This ticket is meant to be done towards the end of the iiif_print epic
We want to confirm that the generator does everything it needs to, when installing iiif_print onto a hyrax/hyku project.
#121 Generator Refactor
Tested on https://demo.hyku-iiif.notch8.cloud
Sample Files:
User should be able to perform all that's listed in the features list's user story tab
A user should perform all that is defined in the user story tab of the Features List
Replace iiif_print's Indexes_relationship with louisville's implementation.
IndexesRelationships
is replaced by more flexible relationship indexingTreat this checklist as a spike. Do the investigation pieces and then move anything with substantial work it its own ticket.
ref #6
New tickets are made for any substantive work and the trivial stuff is done.
viewingHint
of paged
, I don't think we want thisdef manifest
and def iiif_manifest_presenter
found in app/controllables/concerns/hyrax/works_controller_behavior.rb?
#manifest
was changed because of this and it looks like #iiif_manifest_presenter
is passing in curation_concern_from_search_results
which is being deprecatedConfirm that Full Text Search is working. Record findings. Close this ticket if:
Confused how to fill this out? Check out the playbook
ref: #66
app/views/hyrax/file_sets
DONE looks like...
Confused how to fill this out? Check out the playbook
This ticket got created in response to Kirk's PR: #80 (review)
He brought over a decorator from LV which included an override for #total_pages.
Research why this method was overridden and decide whether or not we want to implement the same for iiif_print
Confused how to fill this out? Check out the playbook
IIIF Print bulkrax imports do not work when the parent work and fileset information in the csv are in separate rows. The iiif print actor does not trigger when the parent work is created because there are no attached files. We need to identify how to trigger it as the file sets are created without affecting the functionality of normal processing of the parent and files together.
The following file should be imported into a parent GenericWork AND ALSO create a series of child Image TIFF works.
Note: This should also work for remote PDF urls in a separate row once Make IIIF Print split remote PDF URLs in Bulkrax is working.
Write up what this gem should do, its features, and what's configurable.
Make a helpful readme for this gem. Considering using referencing this template for inspiration.
Please also include a section for configurations and Hyrax.
A dev should be able to apply this gem to their hyku/hyrax projects with little to no questions.
Recruit an unfamiliar dev to install this gem in hyku proper.
Clean up specs.
There's a lot of unused and failing specs due to us taking some but not all pieces of code from the newspaper gem.
Additionally, partially due to the mess, please also review the spec coverage for the new features.
We are unable to deploy to hyku-iiif, so #83 is blocked from testing
https://github.com/samvera/hyku/actions/runs/4078008949/jobs/7028968231
Error: UPGRADE FAILED: release hyku-*** failed, and has been rolled back due to atomic being set: client rate limiter Wait returned an error: context deadline exceeded
Verify that there are specs before closing out the iiif_print tickets for SoftServe QA. These tickets are not quite QA-able and their behaviors will be covered by a test plan.
Does each PR have a good spec? ref: https://github.com/orgs/scientist-softserv/projects/43/views/1?filterQuery=label%3Aiiif_print+status%3A%22SoftServ+QA%22
If so
if not
Confused how to fill this out? Check out the playbook
CreateIssuePageJob should be more generic.
class method that should take an argument of what type of class it should split it into. ie #split_pdf_into("Book")
Currently the newspaper gem doesn't give you a choice. All created children are type NewspaperPage
.
CreateIssuePageJob
is more generic#split_pdf_into
takes an argument of a work typeAsk Diem to share template for test plan
Ask Rob to review test plan
Confused how to fill this out? Check out the playbook
We spun off this ticket to unblock the rest of the iiif_print work. Specs are marked with # TODO
Complete following specs:
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.