Sha256: f1dc28d621a3479a11babdd6cdacaeaf430e4c7865f7fae955078d31dedeb145
Contents?: true
Size: 1.5 KB
Versions: 1
Compression:
Stored size: 1.5 KB
Contents
module AjaxDatatablesRails module Datatable TRUE_VALUE = 'true' class Datatable attr_reader :datatable, :options def initialize datatable @datatable = datatable @options = datatable.params end # ----------------- ORDER METHODS -------------------- def orderable? options[:order].present? end def orders @orders ||= options[:order].map { |index, order_options| SimpleOrder.new(self, order_options) } end def order_by(how, what) orders.find { |simple_order| simple_order.send(how) == what } end # ----------------- SEARCH METHODS -------------------- def searchable? options[:search].present? && options[:search][:value].present? end def search @search ||= SimpleSearch.new(options[:search]) end # ----------------- COLUMN METHODS -------------------- def columns @columns ||= options[:columns].map do |index, column_options| Column.new(datatable, index, column_options) end end def column_by how, what columns.find { |simple_column| simple_column.send(how) == what } end # ----------------- OPTIONS METHODS -------------------- def paginate? per_page != -1 end def offset (page - 1) * per_page end def page (options[:start].to_i / per_page) + 1 end def per_page options.fetch(:length, 10).to_i end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
datatables-net-0.4.0 | lib/ajax-datatables-rails/datatable/datatable.rb |