Sha256: 8790dd58e2785af01aaa285262b09361c769cb1db6bd7009d1e3c97c1b7ccc9f
Contents?: true
Size: 1.84 KB
Versions: 3
Compression:
Stored size: 1.84 KB
Contents
#require 'will_paginate' require "will_paginate-bootstrap4" 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_id: store.id }) unless store.id.nil? paginate_parameters = paginate_parameters.merge(store.parameters) will_paginate(store.records, params: paginate_parameters, renderer: WillPaginate::ActionView::BootstrapLinkRenderer) 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