table_sortable 0.4.6 → 0.4.7

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4c897aef9c9560c97f4e86d21c4b3c7748146930
4
- data.tar.gz: 35bbcc31b6cee05c2bbd2487e9e220105431d3fa
3
+ metadata.gz: c8def2534bcfe05e1ab749a6853d1edd26a751ad
4
+ data.tar.gz: 91ad20906e10c0d9d4a49afaa198a88e9cf6e7f7
5
5
  SHA512:
6
- metadata.gz: f5d17f0dd89132fac1362a5440c0725f95be281f267893e9c63e9bec86cb2b4c990d7f71327d2547998c8098171da5a03034808bb5a98be631b2dba1d23e1f60
7
- data.tar.gz: '060482b829d5c3fe9721e9c163f30e405a671db9d75b5de0aff1bd019045ca91500443393b4f146ba985117ee2638da1bc94408069c8dc0bdc58dd85c4c2045b'
6
+ metadata.gz: 0d0c532401296051648a7ec339a08ab7fcb4d970df8026177210c4e31f0bf1d054dbf129044c917d12a45137c1014822179f4413ca6eade55cef9093820fab08
7
+ data.tar.gz: 0731c3520684a99a85ad022bc30027f3f7aac04a8d6804856502013114af07f536736364e45c94c43c4bf408a4d9a17813bed72ac5c6917cbd1b9d9b91960596
@@ -1,7 +1,7 @@
1
1
  module TableSortable
2
2
  class Column
3
3
 
4
- attr_reader :name, :label, :filter, :sorter, :template, :placeholder, :content, :translation_key, :options, :template_path
4
+ attr_reader :name, :label, :filter, :sorter, :template, :placeholder, :content, :translation_key, :options, :template_path, :column_partial, :header_partial
5
5
 
6
6
  def initialize(col_name, *options)
7
7
 
@@ -12,21 +12,28 @@ module TableSortable
12
12
  template_path = options[:template_path]
13
13
  label = options[:label] || (options[:label] == false ? '' : I18n.translate("table_sortable.#{"#{translation_key}." if translation_key }#{col_name.to_s}", :default => col_name.to_s).titleize)
14
14
  placeholder = options[:placeholder] || (options[:placeholder] == false ? nil : label)
15
- # priority = options[:priority]
16
15
  template = options[:template] || col_name
17
16
  column_options = options[:options] || {}
18
-
19
- # filter_defaultAttrib (data-value)
20
- # data-sorter (=false?)
17
+ controller = options[:controller]
21
18
 
22
19
  @name = col_name
23
20
  @value = value.respond_to?(:call) ? value : -> (record) { record.send(value) }
24
21
  @content = content.respond_to?(:call) ? content : -> (record) { record.send(content) }
25
22
  @label = label
26
23
  @placeholder = placeholder
27
- # @sort_priority = sort_priority
28
24
  @template = template
29
25
  @template_path = template_path
26
+
27
+ view_path = @template_path || (defined?(Rails) ? File.join(Rails.root, 'app', 'views', "#{controller.controller_path}/table_sortable/") : '')
28
+
29
+ view_filename = "_#{@template}_column.html"
30
+ view = Dir.glob(File.join(view_path, "#{view_filename}.*"))
31
+ @column_partial = view.any? ? File.join(view_path, "#{view_filename}") : false
32
+
33
+ view_filename = "_#{@template}_header.html"
34
+ view = Dir.glob(File.join(view_path, "#{view_filename}.*"))
35
+ @header_partial = view.any? ? File.join(view_path, "#{view_filename}") : false
36
+
30
37
  @options = column_options
31
38
  @filter = TableSortable::Column::Filter.new(options.merge(:column => self) )
32
39
  @sorter = TableSortable::Column::Sorter.new(options.merge(:column => self) )
@@ -65,7 +65,7 @@ module TableSortable
65
65
 
66
66
  def define_column(col_name, *options)
67
67
  options = default_column_options.merge(options.extract_options!)
68
- @columns.add(col_name, options)
68
+ @columns.add(col_name, options.merge(controller: self))
69
69
  end
70
70
 
71
71
  def define_column_order(*order)
@@ -1,9 +1,10 @@
1
1
  module TableSortable
2
2
  class Result < Array
3
3
 
4
- attr_reader :total_count
4
+ attr_reader :total_count, :unpaginated
5
5
 
6
6
  def initialize(the_array, page, page_size)
7
+ @unpaginated = the_array
7
8
  @total_count = the_array.length
8
9
  super(the_array[(page)*page_size, page_size])
9
10
  end
@@ -1,3 +1,3 @@
1
1
  module TableSortable
2
- VERSION = "0.4.6"
2
+ VERSION = "0.4.7"
3
3
  end
@@ -24,31 +24,25 @@ module TableSortable
24
24
 
25
25
  def table_sortable_headers(html_options = {})
26
26
  controller.columns.map.with_index do |col, index|
27
- label = col.label
28
- placeholder = col.placeholder
29
- filter = col.filter
30
-
31
27
  th_options = {}
32
- th_options['data-placeholder'] = placeholder if placeholder
28
+ th_options['data-placeholder'] = col.placeholder if col.placeholder
33
29
  # th_options['data-priority'] = col.sort_priority if col.sort_priority
34
- th_options['data-filter'] = 'false' if filter.disabled?
30
+ th_options['data-filter'] = 'false' if col.filter.disabled?
35
31
  th_options['data-sorter'] = 'false' if col.sorter.disabled?
36
- unless filter.collection.blank?
37
- th_options['filter-select'] = true
38
- th_options['data-filter-options'] = filter.collection
32
+ unless col.filter.collection.blank?
33
+ th_options['data-filter-options'] = col.filter.collection.to_json
39
34
  end
40
- th_options['data-value'] = filter.default_value if filter.default_value
35
+ th_options['data-value'] = col.filter.default_value if col.filter.default_value
41
36
  th_options.merge!(html_options)
42
- view_path = col.template_path || File.join(Rails.root, 'app', 'views', "#{controller_path}/table_sortable/")
43
- view_filename = "_#{col.template}_header.html"
44
- if Dir.glob(File.join(view_path, "#{view_filename}.*")).any?
45
- render file: File.join(view_path, view_filename),
46
- locals: {label: label,
37
+
38
+ if col.header_partial
39
+ render file: col.header_partial,
40
+ locals: {label: col.label,
47
41
  column: col,
48
42
  index: index}
49
43
  else
50
44
  content_tag :th, th_options do
51
- label
45
+ col.label
52
46
  end
53
47
  end
54
48
  end.join.html_safe
@@ -61,10 +55,9 @@ module TableSortable
61
55
  td_options = {}
62
56
  td_options['data-text'] = value if value != content
63
57
  td_options.merge!(html_options)
64
- view_path = col.template_path || File.join(Rails.root, 'app', 'views', "#{controller_path}/table_sortable/")
65
- view_filename = "_#{col.template}_column.html"
66
- if Dir.glob(File.join(view_path, "#{view_filename}.*")).any?
67
- render file: File.join(view_path, view_filename),
58
+
59
+ if col.column_partial
60
+ render file: col.column_partial,
68
61
  locals: {content: content,
69
62
  value: value,
70
63
  source: record,
@@ -72,7 +65,7 @@ module TableSortable
72
65
  index: index}
73
66
  else
74
67
  content_tag :td, td_options do
75
- value
68
+ content
76
69
  end
77
70
  end
78
71
  end.join.html_safe
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: table_sortable
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.6
4
+ version: 0.4.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Oded Davidov
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-07-07 00:00:00.000000000 Z
11
+ date: 2017-07-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler