cm-admin 1.3.5 → 1.3.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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