lib/trk_datatables/neo4j.rb in trk_datatables-0.2.2 vs lib/trk_datatables/neo4j.rb in trk_datatables-0.2.3
- old
+ new
@@ -1,9 +1,16 @@
module TrkDatatables
class Neo4j < Base
def filter_by_search_all(filtered)
- filtered
+ return filtered unless @dt_params.search_all.present?
+
+ # https://neo4jrb.readthedocs.io/en/stable/QueryClauseMethods.html?highlight=where#where
+ sql = @column_key_options.searchable_and_global_search.map do |column_key_option|
+ "#{column_key_option[:column_key]} =~ ?"
+ end.join(' or ')
+
+ filtered.where sql, ".*#{@dt_params.search_all}.*"
end
def filter_by_columns(all)
all
end
@@ -13,9 +20,15 @@
filtered = filtered.offset(@dt_params.dt_offset).limit(dt_per_page_or_default)
filtered
end
def order_items(filtered)
- filtered
+ order_by = dt_orders_or_default_index_and_direction.each_with_object([]) do |(index, direction), queries|
+ column_key_option = @column_key_options[index]
+ next if column_key_option[:column_options][ColumnKeyOptions::ORDER_OPTION] == false
+
+ queries << "#{column_key_option[:column_key]} #{direction}"
+ end
+ filtered.order(order_by.join(', '))
end
end
end