Sha256: 5d5655a6e468eff0d799aeda4e88c6eb0f06cec5916d45ccee5cf0da80cccad4

Contents?: true

Size: 1.73 KB

Versions: 3

Compression:

Stored size: 1.73 KB

Contents

require 'will_paginate'
require "will_paginate-bootstrap"
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

    # 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_id: store.id }) unless store.id.nil?
      paginate_parameters = paginate_parameters.merge(store.parameters)
      will_paginate(store.records, params: paginate_parameters,  renderer: BootstrapPagination::Rails)
    end

  private


    # Store must be generated by *table_search_pagination* method
    def store
      @store ||= if @pagination.options[:store].nil?
        raise 'Store is nil!'
      elsif @pagination.options[:store].try(:records).nil?
        raise 'Store can be created only with "table_search_pagination" method!'
      else
        Store.new @pagination.options.delete :store
      end
    end

  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
ui_bibz-2.0.0.alpha18 lib/ui_bibz/ui/ux/tables/table_pagination.rb
ui_bibz-2.0.0.alpha16 lib/ui_bibz/ui/ux/tables/table_pagination.rb
ui_bibz-2.0.0.alpha15 lib/ui_bibz/ui/ux/tables/table_pagination.rb