Skip to content

Commit 35437bd

Browse files
committed
Extract Column order module
1 parent ea5847e commit 35437bd

File tree

3 files changed

+26
-13
lines changed

3 files changed

+26
-13
lines changed

lib/ajax-datatables-rails/datatable/column.rb

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ class Column
1717
attr_writer :search
1818

1919
include Search
20+
include Order
2021

2122
unless AjaxDatatablesRails.old_rails?
2223
prepend DateFilter
@@ -33,19 +34,10 @@ def data
3334
options[:data].presence || options[:name]
3435
end
3536

36-
def orderable?
37-
@view_column.fetch(:orderable, true)
38-
end
39-
4037
def source
4138
@view_column[:source]
4239
end
4340

44-
# Add sort_field option to allow overriding of sort field
45-
def sort_field
46-
@view_column[:sort_field] || field
47-
end
48-
4941
# Add formater option to allow modification of the value
5042
# before passing it to the database
5143
def formater
@@ -61,10 +53,6 @@ def field
6153
source.split('.').last.to_sym
6254
end
6355

64-
def sort_query
65-
custom_field? ? source : "#{table.name}.#{sort_field}"
66-
end
67-
6856
def formated_value
6957
formater ? formater.call(search.value) : search.value
7058
end
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
# frozen_string_literal: true
2+
3+
module AjaxDatatablesRails
4+
module Datatable
5+
class Column
6+
module Order
7+
8+
def orderable?
9+
@view_column.fetch(:orderable, true)
10+
end
11+
12+
# Add sort_field option to allow overriding of sort field
13+
def sort_field
14+
@view_column[:sort_field] || field
15+
end
16+
17+
def sort_query
18+
custom_field? ? source : "#{table.name}.#{sort_field}"
19+
end
20+
21+
end
22+
end
23+
end
24+
end

lib/ajax_datatables_rails.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ module AjaxDatatablesRails
88
require 'ajax-datatables-rails/datatable/simple_search'
99
require 'ajax-datatables-rails/datatable/simple_order'
1010
require 'ajax-datatables-rails/datatable/column/search'
11+
require 'ajax-datatables-rails/datatable/column/order'
1112
require 'ajax-datatables-rails/datatable/column/date_filter' unless AjaxDatatablesRails.old_rails?
1213
require 'ajax-datatables-rails/datatable/column'
1314
require 'ajax-datatables-rails/orm/active_record'

0 commit comments

Comments
 (0)