module FlexInfiniteScroll::ActionViewExtension
Public Instance Methods
fis_tag(data = nil, fis_config = {}, container_config = {}) { |el| ... }
click to toggle source
# File lib/flex_infinite_scroll/actionview/extension.rb, line 5 def fis_tag(data = nil, fis_config = {}, container_config = {}) container_config[:data] ||= {} container_config[:class] = "fis-container #{container_config[:class]}" virtual_el_size = fis_config[:virtualScrollElementSize] page = fis_config[:startPage] || 1 fis_config[:startPage] = page + 1 fis_config.each do |k, _v| container_config[:data][k.to_s.underscore] = fis_config[k] end content_tag :div, container_config do data = data.fis(page: page, per_page: fis_config[:perPage]) data_html = data.map { |el| yield el }.join baloons = [] if virtual_el_size (fis_config[:startPage]..data.total_pages).each do |page_number| baloons.push( content_tag(:div, nil, class: 'fis-baloon', data: { baloon_page: page_number }, style: "height: #{virtual_el_size * data.per_page}px") ) end end (data_html + baloons.join).html_safe end end