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 +4 -4
- data/Gemfile.lock +1 -1
- data/lib/cm_admin/models/dsl_method.rb +1 -1
- data/lib/cm_admin/models/field.rb +1 -0
- data/lib/cm_admin/models/filter.rb +24 -10
- data/lib/cm_admin/version.rb +1 -1
- data/lib/cm_admin/view_helpers/filter_helper.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ac0b46b59a37aa14513ffd40ca2ba413b13887638078d237f7984e57775f44a2
|
4
|
+
data.tar.gz: 2447f380415e9ee56eea95c349c44ad0184afa22b346a75f9ea27b68b6057e98
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a10b1b77856006ef36af25065fdf8e192609707794ec5c4d335871608404f61a617403ae5c2bf89e8e1ae5b9267837ac134fc000282db55dce098f08b881a1a7
|
7
|
+
data.tar.gz: 317b10e4376033e39a3d72cf5f62c60434128996847a625d9d6aadcd77c37f3c3772fe7499e2ed1cd13dabb8a41515cac08c4c117becfd604ecc94feb2fb28be
|
data/Gemfile.lock
CHANGED
@@ -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
|
|
@@ -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, :
|
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
|
-
@
|
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.
|
76
|
-
return records.send(filter.
|
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
|
-
|
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
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
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
|
-
|
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
|
data/lib/cm_admin/version.rb
CHANGED
@@ -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.
|
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.
|
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-
|
13
|
+
date: 2023-11-15 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rails
|