cm-admin 1.3.5 → 1.3.6

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
  SHA256:
3
- metadata.gz: 4d3ee61a20da53d4f971707c68d72d47665c39a59eebdd554d13b96254cf666c
4
- data.tar.gz: 9c2e4b2fb2ca38f03a8f799c69d3f966088211b10909d1a19ca437e5437dc93c
3
+ metadata.gz: 6181e94f36f08555c2209adfc3e17dbf1da4d551262522a3864acf5a07404e23
4
+ data.tar.gz: f1a409a00b8c1b91b70c1554243fdd52ea7c085658d52abd263cbd8a72e178ff
5
5
  SHA512:
6
- metadata.gz: 6b0b6889ee66cb8b6cc230d015356478dba9ccd348003334ddb315bdc34d2071033a91c65c196c92207fb01f8551377043effd3117dac910118bfcd71b20523b
7
- data.tar.gz: 64600259cd7a8e671a5393f7a0058182303f99c8cc80c2fe0fa41441c8a1a7ce7c2124658bec77b3cf26cdfc602a9945a0f9b77279c15bfb3f28a923608c8637
6
+ metadata.gz: 6c06b41f043ac408e4c57cb71b0e939f425a39d2a1cd6e0368f2d5ed993f8c844aaa73df3d1ad67774cc4acde4956fc4f9bcee68401a6595f9f9ed00d441e40b
7
+ data.tar.gz: 71345aae21c3e87adb2ce4439c8526b2ac53d9227808168e530acec22b03388b79ae8b10ece5a33a1a096ce85299091acedb6b9cc2663478065611c8b47bc5cd
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- cm-admin (1.3.5)
4
+ cm-admin (1.3.6)
5
5
  caxlsx_rails
6
6
  cocoon (~> 1.2.15)
7
7
  csv-importer (~> 0.8.2)
@@ -142,7 +142,7 @@ module CmAdmin
142
142
  @available_actions << bulk_action
143
143
  end
144
144
 
145
- def filter(db_column_name, filter_type, options = {})
145
+ def filter(db_column_name, filter_type, options={})
146
146
  @filters << CmAdmin::Models::Filter.new(db_column_name: db_column_name, filter_type: filter_type, options: options)
147
147
  end
148
148
 
@@ -23,6 +23,7 @@ module CmAdmin
23
23
  end
24
24
 
25
25
  def set_default_values
26
+ self.precision = 2
26
27
  self.tag_class = {}
27
28
  self.col_size = nil
28
29
  self.field_type = :string
@@ -5,7 +5,7 @@ module CmAdmin
5
5
  class Filter
6
6
  include Utils::Helpers
7
7
 
8
- attr_accessor :db_column_name, :filter_type, :placeholder, :collection, :scope_name
8
+ attr_accessor :db_column_name, :filter_type, :placeholder, :collection
9
9
 
10
10
  VALID_FILTER_TYPES = Set[:date, :multi_select, :range, :search, :single_select].freeze
11
11
 
@@ -14,7 +14,6 @@ module CmAdmin
14
14
  raise ArgumentError, "Kindly select a valid filter type like #{VALID_FILTER_TYPES.sort.to_sentence(last_word_connector: ', or ')} instead of #{filter_type} for column #{db_column_name}" unless VALID_FILTER_TYPES.include?(filter_type.to_sym)
15
15
 
16
16
  @db_column_name, @filter_type = structure_data(db_column_name, filter_type)
17
- @scope_name = nil
18
17
  set_default_values
19
18
  options.each do |key, value|
20
19
  send("#{key}=", value)
@@ -53,7 +52,7 @@ module CmAdmin
53
52
  def filtered_data(filter_params, records, filters)
54
53
  if filter_params
55
54
  filter_params.each do |scope_type, scope_value|
56
- filter_method = case scope_type
55
+ scope_name = case scope_type
57
56
  when 'date', 'range'
58
57
  'date_and_range'
59
58
  when 'single_select', 'multi_select'
@@ -61,7 +60,7 @@ module CmAdmin
61
60
  else
62
61
  scope_type
63
62
  end
64
- records = send("cm_#{filter_method}_filter", scope_value, records, filters) if scope_value.present?
63
+ records = send("cm_#{scope_name}_filter", scope_value, records, filters) if scope_value.present?
65
64
  end
66
65
  end
67
66
  records
@@ -72,44 +71,40 @@ module CmAdmin
72
71
 
73
72
  table_name = records.table_name
74
73
  filters.select { |x| x if x.filter_type.eql?(:search) }.each do |filter|
75
- if filter.scope_name.present?
76
- return records.send(filter.scope_name, scope_value)
77
- else
78
- query_variables = []
79
- filter.db_column_name.each do |col|
80
- case col
81
- when Symbol
82
- query_variables << "#{table_name.pluralize}.#{col}"
83
- when Hash
84
- col.map do |key, value|
85
- value.map { |val| query_variables << "#{key.to_s.pluralize}.#{val}" }
86
- end
74
+ query_variables = []
75
+ filter.db_column_name.each do |col|
76
+ case col
77
+ when Symbol
78
+ query_variables << "#{table_name.pluralize}.#{col}"
79
+ when Hash
80
+ col.map do |key, value|
81
+ value.map { |val| query_variables << "#{key.to_s.pluralize}.#{val}" }
87
82
  end
88
83
  end
89
- terms = scope_value.downcase.split(/\s+/)
90
- terms = terms.map { |e|
91
- (e.gsub('*', '%').prepend('%') + '%').gsub(/%+/, '%')
92
- }
93
- sql = ''
94
- query_variables.each.with_index do |column, i|
95
- sql.concat("#{column} ILIKE ?")
96
- sql.concat(' OR ') unless query_variables.size.eql?(i + 1)
97
- end
98
-
99
- if filter.db_column_name.map { |x| x.is_a?(Hash) }.include?(true)
100
- associations_hash = filter.db_column_name.select { |x| x if x.is_a?(Hash) }.last
101
- records = records.left_joins(associations_hash.keys).distinct
102
- end
84
+ end
85
+ terms = scope_value.downcase.split(/\s+/)
86
+ terms = terms.map { |e|
87
+ (e.gsub('*', '%').prepend('%') + '%').gsub(/%+/, '%')
88
+ }
89
+ sql = ''
90
+ query_variables.each.with_index do |column, i|
91
+ sql.concat("#{column} ILIKE ?")
92
+ sql.concat(' OR ') unless query_variables.size.eql?(i + 1)
93
+ end
103
94
 
104
- records = records.where(
105
- terms.map { |term|
106
- sql
107
- }.join(' AND '),
108
- *terms.map { |e| [e] * query_variables.size }.flatten
109
- )
110
- return records
95
+ if filter.db_column_name.map { |x| x.is_a?(Hash) }.include?(true)
96
+ associations_hash = filter.db_column_name.select { |x| x if x.is_a?(Hash) }.last
97
+ records = records.left_joins(associations_hash.keys).distinct
111
98
  end
99
+
100
+ records = records.where(
101
+ terms.map { |term|
102
+ sql
103
+ }.join(' AND '),
104
+ *terms.map { |e| [e] * query_variables.size }.flatten
105
+ )
112
106
  end
107
+ records
113
108
  end
114
109
 
115
110
  def cm_date_and_range_filter(scope_value, records, filters)
@@ -128,6 +123,7 @@ module CmAdmin
128
123
 
129
124
  def cm_dropdown_filter(scope_value, records, filters)
130
125
  return nil if scope_value.nil?
126
+
131
127
  scope_value.each do |key, value|
132
128
  records = records.where(key => value) if value.present?
133
129
  end
@@ -1,3 +1,3 @@
1
1
  module CmAdmin
2
- VERSION = '1.3.5'
2
+ VERSION = '1.3.6'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cm-admin
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.5
4
+ version: 1.3.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - sajinmp