Class: Integral::Widgets::SwiperList

Inherits:
Object
  • Object
show all
Defined in:
lib/integral/widgets/swiper_list.rb

Overview

Outputs swiper lists

Example Widget Markup <p class=‘integral-widget’ data-widget-type=‘swiper_list’ data-widget-value-list_id=‘1337’ data-widget-value-slide_view_path=‘shared/my_swiper_slide’>

Class Method Summary collapse

Class Method Details

.default_optionsObject

Default widget options



33
34
35
36
37
# File 'lib/integral/widgets/swiper_list.rb', line 33

def self.default_options
  {
    slide_view_path: 'integral/shared/record_card'
  }
end

.render(options = {}) ⇒ Object

Render a swiper list

Raises:

  • (ArgumentError)


10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/integral/widgets/swiper_list.rb', line 10

def self.render(options = {})
  options = options.reverse_merge(default_options)

  list_id = options[:list_id]
  raise ArgumentError, 'list_id must be provided as a widget value' unless list_id.present?

  list = Integral::List.find_by_id(list_id)
  # TODO: Move most of these options up to SwiperListRenderer as defaults (?)
  list_opts = {
    item_renderer: Integral::PartialListItemRenderer,
    html_classes: '',
    item_renderer_opts: {
      partial_path: options[:slide_view_path],
      wrapper_element: 'div',
      html_classes: 'swiper-slide',
      image_version: :small
    }
  }

  Integral::SwiperListRenderer.render(list, list_opts)
end