Skip to content

Commit

Permalink
Merge pull request #809 from pulibrary/787-map-metadata
Browse files Browse the repository at this point in the history
Add relation and references properties to scanned maps
  • Loading branch information
Trey Pendragon committed Feb 9, 2018
2 parents 49f52d6 + 856ef5a commit 97bc1a9
Show file tree
Hide file tree
Showing 5 changed files with 29 additions and 1 deletion.
1 change: 1 addition & 0 deletions .rubocop.yml
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@ Metrics/ClassLength:
- 'app/services/plum_importer.rb'
- 'app/utils/data_seeder.rb'
- 'app/decorators/scanned_resource_decorator.rb'
- 'app/decorators/scanned_map_decorator.rb'
- 'app/models/concerns/linked_data/linked_ephemera_folder.rb'
- 'app/controllers/catalog_controller.rb'
Metrics/MethodLength:
Expand Down
3 changes: 3 additions & 0 deletions app/change_sets/scanned_map_change_set.rb
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,9 @@ class ScannedMapChangeSet < ScannedResourceChangeSet

apply_workflow(BookWorkflow)

property :relation, multiple: false, required: false
property :references, multiple: false, required: false

# rubocop:disable Metrics/MethodLength
def primary_terms
[
Expand Down
13 changes: 12 additions & 1 deletion app/decorators/scanned_map_decorator.rb
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,9 @@ class ScannedMapDecorator < Valkyrie::ResourceDecorator
display(
[
:rendered_coverage,
:member_of_collections
:member_of_collections,
:relation,
:rendered_links
]
)
suppress(
Expand Down Expand Up @@ -71,6 +73,15 @@ def rendered_coverage
h.bbox_display(coverage)
end

def rendered_links
return unless references
refs = JSON.parse(references.first)
refs.delete('iiif_manifest_paths')
refs.map do |url, _label|
h.link_to(url, url)
end
end

def manageable_structure?
true
end
Expand Down
2 changes: 2 additions & 0 deletions app/models/scanned_map.rb
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@ class ScannedMap < Valhalla::Resource
attribute :pending_uploads, Valkyrie::Types::Array.member(PendingUpload)
attribute :workflow_note, Valkyrie::Types::Array.member(WorkflowNote).optional
attribute :file_metadata, Valkyrie::Types::Set.member(FileMetadata.optional)
attribute :relation
attribute :references

def self.can_have_manifests?
true
Expand Down
11 changes: 11 additions & 0 deletions spec/decorators/scanned_map_decorator_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,15 @@
title: "test title",
author: "test author",
creator: "test creator",
references: links.to_json,
subject: "test subject")
end
let(:links) do
{
"http://www.jstor.org/stable/1797655": ["www.jstor.org"],
"iiif_manifest_paths": "https://plum.princeton.edu/concern/image_works/pb8518582r/manifest"
}
end
describe "#iiif_manifest_attributes" do
it "returns attributes" do
expect(decorator.iiif_manifest_attributes).to include title: ['test title']
Expand All @@ -26,6 +33,10 @@
expect(resource.decorate.rendered_coverage).to match(/#{Regexp.escape('boundingBoxSelector')}/)
expect(resource.decorate.rendered_coverage).to match(/#{Regexp.escape('Toggle Map')}/)
end
it "exposes markup for rendered links" do
expect(resource.decorate.rendered_links).to include(/www.jstor.org/)
expect(resource.decorate.rendered_links).not_to include(/manifest/)
end
it "can attach folders" do
expect(resource.decorate.attachable_objects).to include ScannedMap
end
Expand Down

0 comments on commit 97bc1a9

Please sign in to comment.