app/models/spotlight/resources/iiif_manifest.rb in blacklight-spotlight-2.2.1 vs app/models/spotlight/resources/iiif_manifest.rb in blacklight-spotlight-2.3.0

- old
+ new

@@ -52,15 +52,17 @@ solr_hash[Spotlight::Engine.config.iiif_manifest_field] = url end def add_thumbnail_url return unless thumbnail_field && manifest['thumbnail'].present? + solr_hash[thumbnail_field] = manifest['thumbnail']['@id'] end def add_full_image_urls return unless full_image_field && full_image_url + solr_hash[full_image_field] = full_image_url end def add_label return unless title_fields.present? && manifest.try(:label) @@ -80,21 +82,24 @@ end def manifest_metadata metadata = metadata_class.new(manifest).to_solr return {} unless metadata.present? + create_sidecars_for(*metadata.keys) metadata.each_with_object({}) do |(key, value), hash| next unless (field = exhibit_custom_fields[key]) + hash[field.field] = value end end def json_ld_value(value) return value['@value'] if value.is_a?(Hash) return value.find { |v| v['@language'] == default_json_ld_language }.try(:[], '@value') if value.is_a?(Array) + value end def create_sidecars_for(*keys) missing_keys(keys).each do |k| @@ -117,10 +122,11 @@ end def image_urls @image_urls ||= resources.map do |resource| next unless resource && !resource.service.empty? + image_url = resource.service['@id'] image_url << '/info.json' unless image_url.downcase.ends_with?('/info.json') image_url end end @@ -199,18 +205,20 @@ return {} unless metadata.present? return {} unless metadata.is_a?(Array) metadata.each_with_object({}) do |md, hash| next unless md['label'] && md['value'] + hash[md['label']] ||= [] hash[md['label']] += Array(md['value']) end end def manifest_level_metadata manifest_fields.each_with_object({}) do |field, hash| next unless manifest.respond_to?(field) && manifest.send(field).present? + hash[field.capitalize] ||= [] hash[field.capitalize] += Array(manifest.send(field)) end end