Sha256: b6e85dce0d920a4927479cd7e7c19d4579678228cd0e6d40c7da5dff30567676

Contents?: true

Size: 1.82 KB

Versions: 9

Compression:

Stored size: 1.82 KB

Contents

# frozen_string_literal: true

require 'ui_bibz/ui/ux/tables/components/store'
module UiBibz::Ui::Ux::Tables
  # Create a pagination for table
  #
  # ==== Attributes
  #
  # * +options+ - Options of element
  # * +html_options+ - Html Options of element
  #
  # ==== Options
  #
  # You can add HTML attributes using the +html_options+.
  # You can pass arguments in options attribute:
  # * +store+ - Store generate by '+table_search_pagination+' method
  #
  # ==== Signatures
  #
  #   UiBibz::Ui::Ux::Tables::TablePagination.new(store: @store)
  #
  # ==== Helper
  #
  #    table_pagination(options = {})
  #
  class TablePagination < UiBibz::Ui::Base
    include WillPaginate::ActionView
    include ActionView
    # include WillPaginate::ActionView::BootstrapLinkRenderer

    # Initialize pagination with component item
    # pagination require WillPaginate gem
    def initialize(options = nil, html_options = nil)
      @pagination = UiBibz::Ui::Core::Component.new nil, options, html_options
    end

    # Render html tag with boostrap pagination theme
    def render
      paginate_parameters = { controller: store.controller }
      paginate_parameters = paginate_parameters.merge(store.parameters)
      paginate_parameters = paginate_parameters.merge({ store_id: store.id }) unless store.id.nil?
      paginate_parameters = paginate_parameters.merge({ link_type: 'pagination' })
      will_paginate(store.records, params: paginate_parameters.with_indifferent_access.reject { |k, v| default_parameters?(k) || v.blank? }, renderer: WillPaginate::ActionView::BootstrapLinkRenderer)
    end

    private

    def default_parameters?(key)
      %w[per_page page link_type].include?(key)
    end

    # Store must be generated by *table_search_pagination* method
    def store
      @store ||= Store.new @pagination.options[:store]
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
ui_bibz-4.0.0.beta18 lib/ui_bibz/ui/ux/tables/table_pagination.rb
ui_bibz-4.0.0.beta17 lib/ui_bibz/ui/ux/tables/table_pagination.rb
ui_bibz-4.0.0.beta16 lib/ui_bibz/ui/ux/tables/table_pagination.rb
ui_bibz-4.0.0.beta15 lib/ui_bibz/ui/ux/tables/table_pagination.rb
ui_bibz-4.0.0.beta14 lib/ui_bibz/ui/ux/tables/table_pagination.rb
ui_bibz-4.0.0.beta13 lib/ui_bibz/ui/ux/tables/table_pagination.rb
ui_bibz-4.0.0.beta10 lib/ui_bibz/ui/ux/tables/table_pagination.rb
ui_bibz-4.0.0.beta9 lib/ui_bibz/ui/ux/tables/table_pagination.rb
ui_bibz-4.0.0.beta8 lib/ui_bibz/ui/ux/tables/table_pagination.rb