cm-admin 1.3.5 → 1.3.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
  SHA256:
3
- metadata.gz: 4d3ee61a20da53d4f971707c68d72d47665c39a59eebdd554d13b96254cf666c
4
- data.tar.gz: 9c2e4b2fb2ca38f03a8f799c69d3f966088211b10909d1a19ca437e5437dc93c
3
+ metadata.gz: ac0b46b59a37aa14513ffd40ca2ba413b13887638078d237f7984e57775f44a2
4
+ data.tar.gz: 2447f380415e9ee56eea95c349c44ad0184afa22b346a75f9ea27b68b6057e98
5
5
  SHA512:
6
- metadata.gz: 6b0b6889ee66cb8b6cc230d015356478dba9ccd348003334ddb315bdc34d2071033a91c65c196c92207fb01f8551377043effd3117dac910118bfcd71b20523b
7
- data.tar.gz: 64600259cd7a8e671a5393f7a0058182303f99c8cc80c2fe0fa41441c8a1a7ce7c2124658bec77b3cf26cdfc602a9945a0f9b77279c15bfb3f28a923608c8637
6
+ metadata.gz: a10b1b77856006ef36af25065fdf8e192609707794ec5c4d335871608404f61a617403ae5c2bf89e8e1ae5b9267837ac134fc000282db55dce098f08b881a1a7
7
+ data.tar.gz: 317b10e4376033e39a3d72cf5f62c60434128996847a625d9d6aadcd77c37f3c3772fe7499e2ed1cd13dabb8a41515cac08c4c117becfd604ecc94feb2fb28be
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.7)
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, :filter_with
9
9
 
10
10
  VALID_FILTER_TYPES = Set[:date, :multi_select, :range, :search, :single_select].freeze
11
11
 
@@ -14,7 +14,7 @@ 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
17
+ @filter_with = nil
18
18
  set_default_values
19
19
  options.each do |key, value|
20
20
  send("#{key}=", value)
@@ -72,8 +72,8 @@ module CmAdmin
72
72
 
73
73
  table_name = records.table_name
74
74
  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)
75
+ if filter.filter_with.present?
76
+ return records.send(filter.filter_with, scope_value)
77
77
  else
78
78
  query_variables = []
79
79
  filter.db_column_name.each do |col|
@@ -116,20 +116,34 @@ module CmAdmin
116
116
  return nil if scope_value.nil?
117
117
 
118
118
  scope_value.each do |key, value|
119
- next unless value.present?
119
+ filters.select { |x| x if [:date, :range].include?(x.filter_type) && x.db_column_name.to_s == key.to_s }.each do |filter|
120
120
 
121
- value = value.split(' to ')
122
- from = value[0].presence
123
- to = value[1].presence
124
- records = records.where(key => from..to)
121
+ next unless value.present?
122
+
123
+ value = value.split(' to ')
124
+ from = value[0].presence
125
+ to = value[1].presence
126
+ if filter.filter_with.present?
127
+ records = records.send(filter.filter_with, from, to)
128
+ else
129
+ records = records.where(key => from..to)
130
+ end
131
+ end
125
132
  end
126
133
  records
127
134
  end
128
135
 
129
136
  def cm_dropdown_filter(scope_value, records, filters)
130
137
  return nil if scope_value.nil?
138
+
131
139
  scope_value.each do |key, value|
132
- records = records.where(key => value) if value.present?
140
+ filters.select { |x| x if [:single_select, :multi_select].include?(x.filter_type) && x.db_column_name.to_s == key.to_s }.each do |filter|
141
+ if filter.filter_with.present?
142
+ records = records.send(filter.filter_with, value) if value.present?
143
+ else
144
+ records = records.where(key => value) if value.present?
145
+ end
146
+ end
133
147
  end
134
148
  records
135
149
  end
@@ -1,3 +1,3 @@
1
1
  module CmAdmin
2
- VERSION = '1.3.5'
2
+ VERSION = '1.3.7'
3
3
  end
@@ -33,7 +33,7 @@ module CmAdmin
33
33
  concat(content_tag(:div, class: 'list-area') do
34
34
  filters.each do |filter|
35
35
  concat(content_tag(:div, class: 'pointer list-item', data: {behaviour: 'filter-option', filter_type: "#{filter.filter_type}", db_column: "#{filter.db_column_name}"}) do
36
- tag.span filter.db_column_name.to_s.titleize
36
+ tag.span filter.placeholder.to_s.titleize
37
37
  end)
38
38
  end
39
39
  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.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - sajinmp
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: exe
12
12
  cert_chain: []
13
- date: 2023-11-10 00:00:00.000000000 Z
13
+ date: 2023-11-15 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rails