Skip to content

Commit

Permalink
Merge pull request #2329 from sul-dlss/media
Browse files Browse the repository at this point in the history
Move the Media components out of the Embed namespace
  • Loading branch information
corylown authored Jan 31, 2025
2 parents 207f571 + 50990fa commit d833352
Show file tree
Hide file tree
Showing 22 changed files with 267 additions and 279 deletions.
2 changes: 1 addition & 1 deletion app/components/companion_windows_component.html.erb
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@
Share
</header>

<%= render Embed::Media::EmbedThisFormComponent.new(viewer:) %>
<%= render Media::EmbedThisFormComponent.new(viewer:) %>

<button data-action="click->companion-window#closeModal">Close</button>
</dialog>
Expand Down
17 changes: 0 additions & 17 deletions app/components/embed/media/embed_this_form_component.rb

This file was deleted.

13 changes: 0 additions & 13 deletions app/components/embed/media/metadata_component.rb

This file was deleted.

65 changes: 0 additions & 65 deletions app/components/embed/media/preview_image_component.rb

This file was deleted.

119 changes: 0 additions & 119 deletions app/components/embed/media/tag_component.rb

This file was deleted.

37 changes: 0 additions & 37 deletions app/components/embed/media/wrapper_component.rb

This file was deleted.

20 changes: 0 additions & 20 deletions app/components/embed/media_component.rb

This file was deleted.

15 changes: 15 additions & 0 deletions app/components/media/embed_this_form_component.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# frozen_string_literal: true

module Media
class EmbedThisFormComponent < ViewComponent::Base
def initialize(viewer:)
@viewer = viewer
end

delegate :embed_request, :purl_object, to: :viewer
delegate :title, to: :purl_object, prefix: true
delegate :purl_url, to: :purl_object

attr_reader :viewer
end
end
11 changes: 11 additions & 0 deletions app/components/media/metadata_component.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# frozen_string_literal: true

module Media
class MetadataComponent < ViewComponent::Base
def initialize(viewer:)
@viewer = viewer
end

attr_reader :viewer
end
end
63 changes: 63 additions & 0 deletions app/components/media/preview_image_component.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
# frozen_string_literal: true

module Media
# Displays an image (e.g. photo of the media) for a media resource
class PreviewImageComponent < ViewComponent::Base
include Embed::StacksImage

# @param [String] druid the object identifier
# @param [ResourceFile] file the file to display
# @param [Integer] resource_index the offset of this resource in the purl
# @param [String] type the type of resource (either audio or video), used to determine which icon to show
def initialize(druid:, file:, resource_index:, type:)
@druid = druid
@file = file
@resource_index = resource_index
@type = type
end

attr_reader :resource_index, :druid, :file, :type

def call
# the 74,73 size accounts for the additional pixel size returned by the image server
thumb_url = stacks_square_url(druid, file.title, size: '74,73')
render WrapperComponent.new(thumbnail: thumb_url, file:, type:, resource_index:) do
tag.div(class: 'osd', id: "openseadragon-#{resource_index}",
data: { controller: 'osd', osd_url_value:, osd_nav_images_value: })
end
end

def osd_url_value
"#{stacks_image_url(druid, file.filename)}/info.json"
end

def osd_nav_images_value # rubocop:disable Metrics/MethodLength
{
zoomIn: {
REST: asset_path('zoomin_rest.png'),
GROUP: asset_path('zoomin_grouphover.png'),
HOVER: asset_path('zoomin_hover.png'),
DOWN: asset_path('zoomin_pressed.png')
},
zoomOut: {
REST: asset_path('zoomout_rest.png'),
GROUP: asset_path('zoomout_grouphover.png'),
HOVER: asset_path('zoomout_hover.png'),
DOWN: asset_path('zoomout_pressed.png')
},
home: {
REST: asset_path('home_rest.png'),
GROUP: asset_path('home_grouphover.png'),
HOVER: asset_path('home_hover.png'),
DOWN: asset_path('home_pressed.png')
},
fullpage: {
REST: asset_path('fullpage_rest.png'),
GROUP: asset_path('fullpage_grouphover.png'),
HOVER: asset_path('fullpage_hover.png'),
DOWN: asset_path('fullpage_pressed.png')
}
}
end
end
end
Loading

0 comments on commit d833352

Please sign in to comment.