module AjaxDatatablesRails::Datatable::Column::DateFilter
Constants
- RANGE_DELIMITER
Public Instance Methods
date_range_search()
click to toggle source
Do a range search
# File lib/ajax-datatables-rails/datatable/column/date_filter.rb, line 45 def date_range_search return nil if empty_range_search? table[field].between(DateRange.new(range_start_casted, range_end_casted)) end
delimiter()
click to toggle source
Add delimiter option to handle range search
# File lib/ajax-datatables-rails/datatable/column/date_filter.rb, line 24 def delimiter @delimiter ||= @view_column.fetch(:delimiter, RANGE_DELIMITER) end
empty_range_search?()
click to toggle source
# File lib/ajax-datatables-rails/datatable/column/date_filter.rb, line 40 def empty_range_search? (formatted_value == delimiter) || (range_start.blank? && range_end.blank?) end
range_end()
click to toggle source
A range value is in form '<range_start><delimiter><range_end>' This returns <range_end>
# File lib/ajax-datatables-rails/datatable/column/date_filter.rb, line 36 def range_end @range_end ||= formatted_value.split(delimiter)[1] end
range_start()
click to toggle source
A range value is in form '<range_start><delimiter><range_end>' This returns <range_start>
# File lib/ajax-datatables-rails/datatable/column/date_filter.rb, line 30 def range_start @range_start ||= formatted_value.split(delimiter)[0] end
Private Instance Methods
parse_date(date)
click to toggle source
# File lib/ajax-datatables-rails/datatable/column/date_filter.rb, line 61 def parse_date(date) Time.zone ? Time.zone.parse(date) : Time.parse(date) end
range_end_casted()
click to toggle source
# File lib/ajax-datatables-rails/datatable/column/date_filter.rb, line 57 def range_end_casted range_end.blank? ? parse_date('9999-12-31 23:59:59') : parse_date("#{range_end} 23:59:59") end
range_start_casted()
click to toggle source
# File lib/ajax-datatables-rails/datatable/column/date_filter.rb, line 53 def range_start_casted range_start.blank? ? parse_date('01/01/1970') : parse_date(range_start) end