app/helpers/pageflow/linkmap_page/areas_helper.rb in pageflow-linkmap-page-1.5.0 vs app/helpers/pageflow/linkmap_page/areas_helper.rb in pageflow-linkmap-page-2.0.0
- old
+ new
@@ -2,28 +2,54 @@
module LinkmapPage
module AreasHelper
include BackgroundImageHelper
def linkmap_areas_div(entry, configuration)
- hover_image_file = Pageflow::ImageFile.find_by_id(configuration['hover_image_id'])
- visited_image_file = Pageflow::ImageFile.find_by_id(configuration['visited_image_id'])
+ color_map_file =
+ ColorMapFile.find_by_id(configuration['linkmap_color_map_file_id'])
+ masked_hover_image_file =
+ MaskedImageFile.find_by_id(configuration['linkmap_masked_hover_image_id'])
+ masked_visited_image_file =
+ MaskedImageFile.find_by_id(configuration['linkmap_masked_visited_image_id'])
- mask_sprite_url_template = MaskSprite.new(id: 1, attachment_file_name: 'data').attachment.url
- .gsub(%r'/(\d{3}/)+', '/:id_partition/')
+ hide_overlay_boxes =
+ configuration['mobile_panorama_navigation'] == 'pan_zoom' &&
+ configuration['hide_linkmap_overlay_boxes']
+
render('pageflow/linkmap_page/areas/div',
entry: entry,
configuration: configuration,
+ color_map_file: color_map_file,
+ masked_hover_image_file: masked_hover_image_file,
+ masked_visited_image_file: masked_visited_image_file,
+ css_classes: [
+ 'linkmap_areas',
+ hide_overlay_boxes ? 'hide_overlay_boxes' : nil
+ ].compact.join(' '),
data_attributes: {
- hover_image_url: hover_image_file &&
- hover_image_file.attachment.url(:panorama_large),
- visited_image_url: visited_image_file &&
- visited_image_file.attachment.url(:panorama_large),
- mask_sprite_url_template: mask_sprite_url_template
+ color_map_file_id: configuration['color_map_file_id']
})
end
+ def linkmap_area_background_image_div(prefix, attributes, configuration, color_map_file)
+ if color_map_file &&
+ attributes['mask_perma_id'].present? &&
+ attributes['mask_perma_id'].split(':').first.to_i == color_map_file.id
+ background_image_div(configuration,
+ "linkmap_masked_#{prefix}_image",
+ class: "#{prefix}_image",
+ file_type: 'pageflow_linkmap_page_masked_image_files',
+ style_group: attributes['mask_perma_id'].split(':').last)
+ else
+ background_image_div(configuration,
+ "#{prefix}_image",
+ class: "#{prefix}_image",
+ style_group: :panorama)
+ end
+ end
+
def linkmap_area(entry, attributes, index, background_type = nil, &block)
Link.new(self, entry, attributes.symbolize_keys, index, background_type).render(&block)
end
class Link < Struct.new(:template, :entry, :attributes, :index, :background_type)
@@ -62,18 +88,18 @@
ExternalLinks::Site.find_by_revision_id_and_perma_id(entry.try(:revision),
attributes[:target_id])
end
def data_attributes
- mask_id = background_type != 'hover_video' && attributes[:mask_perma_id]
+ mask_perma_id = background_type != 'hover_video' && attributes[:mask_perma_id]
audio_file_id = attributes[:target_id]
{
target_type: attributes[:target_type],
target_id: attributes[:target_id],
audio_file: audio_file_id.present? ? "#{audio_file_id}.area_#{index}" : nil,
page_transition: attributes[:page_transition],
- mask_id: mask_id,
+ mask_perma_id: mask_perma_id,
width: attributes[:width],
height: attributes[:height]
}.delete_if { |key, value| value.blank? }
end