cm-admin 0.8.3 → 0.8.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +2 -2
- data/app/javascript/packs/cm_admin/filters.js +7 -7
- data/app/models/concerns/cm_admin/file_import.rb +1 -1
- data/app/views/cm_admin/main/_top_navbar.html.slim +1 -1
- data/lib/cm_admin/version.rb +1 -1
- data/lib/cm_admin/view_helpers/filter_helper.rb +36 -11
- 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: 8f213806205dddde4c26ef831ca86ff31fdd612f054ca899d579276abec08af9
|
4
|
+
data.tar.gz: 6cfd6cacae15a3939dc6f0f45c898e58d0276836db665a84823d142e8f3806f6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8e2cc59b2ed25bcb3041065288a352352d74be6ddfe44dc643aeabd748bb3779615418f60eab139e6757a5f2be9da28430a411ea919edc7e1f762765a98a30e6
|
7
|
+
data.tar.gz: 1877097421a3bb47a51d2483c7361d1d906502306f98732150706d31f933535d17e0e196927c84d702c7e3103d96f98e4cd108b14cb288e8fcac1a610cb8af8d
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
cm-admin (0.8.
|
4
|
+
cm-admin (0.8.5)
|
5
5
|
caxlsx_rails
|
6
6
|
cocoon (~> 1.2.15)
|
7
7
|
csv-importer (~> 0.8.2)
|
@@ -146,7 +146,7 @@ GEM
|
|
146
146
|
rack-proxy (>= 0.6.1)
|
147
147
|
railties (>= 5.2)
|
148
148
|
semantic_range (>= 2.3.0)
|
149
|
-
zeitwerk (2.6.
|
149
|
+
zeitwerk (2.6.1)
|
150
150
|
|
151
151
|
PLATFORMS
|
152
152
|
ruby
|
@@ -193,6 +193,7 @@ $(document).on('click', '[data-behaviour="select-option"]', function(e) {
|
|
193
193
|
|
194
194
|
if (filterType == 'single_select') {
|
195
195
|
var filterValue = $(this).data('value')
|
196
|
+
var filterText = $(this).text()
|
196
197
|
if (!this.classList.contains('selected')) {
|
197
198
|
if (this.parentNode.querySelector('.list-item.selected') != null) {
|
198
199
|
this.parentNode.querySelector('.list-item.selected').classList.remove('selected');
|
@@ -200,7 +201,7 @@ $(document).on('click', '[data-behaviour="select-option"]', function(e) {
|
|
200
201
|
$(this).addClass('selected')
|
201
202
|
}
|
202
203
|
|
203
|
-
$(this).parents(':nth(4)').children(':first').children(':nth(1)').text(
|
204
|
+
$(this).parents(':nth(4)').children(':first').children(':nth(1)').text(filterText)
|
204
205
|
$(this).parents(':nth(4)').children(':first').children(':last').removeClass('hidden')
|
205
206
|
|
206
207
|
// Clear the search value post selection and regenerate the dropdown elements.
|
@@ -216,16 +217,15 @@ $(document).on('click', '[data-behaviour="select-option"]', function(e) {
|
|
216
217
|
var checkboxElement = $(this).find('.cm-checkbox')
|
217
218
|
checkboxElement.prop('checked', !checkboxElement.prop('checked'))
|
218
219
|
var checkedCount = $(this).parent().find('.cm-checkbox').filter(':checked').length
|
219
|
-
|
220
220
|
if (checkboxElement.prop('checked')) {
|
221
221
|
var chip = $('<div class="chip"></div>')
|
222
|
-
var firstSpan = $('<span></span>').text($(this).
|
222
|
+
var firstSpan = $('<span></span>').text($(this).text())
|
223
223
|
var secondSpan = $('<span data-behaviour="selected-chip"><i class="fa fa-times"></i></span>')
|
224
224
|
parentChip.prepend(chip.append(firstSpan).append(secondSpan))
|
225
225
|
} else {
|
226
226
|
var chipElement = parentChip.find('.chip')
|
227
227
|
for(var i = 0; i < chipElement.length; i++) {
|
228
|
-
if ($(chipElement[i]).text() == $(this).
|
228
|
+
if ($(chipElement[i]).text() == $(this).text()) {
|
229
229
|
$(chipElement[i]).remove()
|
230
230
|
break
|
231
231
|
}
|
@@ -248,6 +248,7 @@ $(document).on('click', '.apply-area', function(e) {
|
|
248
248
|
var filterType = filterInputElement.data('filter-type')
|
249
249
|
var filterColumn = filterInputElement.data('db-column')
|
250
250
|
var filterValue = []
|
251
|
+
var filterValueText = []
|
251
252
|
|
252
253
|
var selectFilterElement = $('[data-behaviour="select-option"][data-filter-type=' + filterType + '][data-db-column=' + filterColumn + ']')
|
253
254
|
var checkedElements = selectFilterElement.find('.cm-checkbox').filter(':checked')
|
@@ -255,9 +256,10 @@ $(document).on('click', '.apply-area', function(e) {
|
|
255
256
|
if (checkedElements.length > 0) {
|
256
257
|
for(var i = 0; i < checkedElements.length; i++) {
|
257
258
|
filterValue.push($(checkedElements[i]).parent().data('value'))
|
259
|
+
filterValueText.push($(checkedElements[i]).parent().text())
|
258
260
|
}
|
259
261
|
|
260
|
-
truncatedFilterValue =
|
262
|
+
truncatedFilterValue = filterValueText[0]
|
261
263
|
if (filterValue.length > 1) {
|
262
264
|
truncatedFilterValue += ' + ' + (filterValue.length - 1) + ' more'
|
263
265
|
}
|
@@ -335,8 +337,6 @@ CmFilter = {
|
|
335
337
|
var filter = element.val().toUpperCase();
|
336
338
|
var searchElements = element.parents(':nth(3)').find('.list-area').children();
|
337
339
|
searchElements.removeClass('visible').addClass('hidden')
|
338
|
-
console.log("Filter is ", filter)
|
339
|
-
console.log("Search elements are ", searchElements)
|
340
340
|
for (var i = 0; i < searchElements.length; i++) {
|
341
341
|
txtValue = $(searchElements[i]).children().text();
|
342
342
|
if (txtValue.toUpperCase().indexOf(filter) > -1) {
|
@@ -4,7 +4,7 @@ module CmAdmin::FileImport
|
|
4
4
|
cm_admin do
|
5
5
|
STATUS_TAG_COLOR = { in_progress: 'yellow-tag', success: 'success'}
|
6
6
|
actions only: [:index, :show]
|
7
|
-
set_icon 'fa fa-
|
7
|
+
set_icon 'fa fa-file-upload'
|
8
8
|
cm_index do
|
9
9
|
page_title 'File Import'
|
10
10
|
page_description 'Manage all file import progress here'
|
@@ -23,7 +23,7 @@
|
|
23
23
|
li
|
24
24
|
.popup-option.pointer data-bs-toggle='modal' data-bs-target='#exportmodal'
|
25
25
|
span Export
|
26
|
-
- if @model.importer
|
26
|
+
- if @model.importer && has_valid_policy(@model.name, :importable)
|
27
27
|
= link_to 'Import', cm_admin.send(:"#{@model.name.underscore}_import_path"), class: 'primary-btn ml-2'
|
28
28
|
- new_action = @model.available_actions.select{|act| act if act.action_type.eql?(:default) && act.name.eql?('new')}
|
29
29
|
- if new_action.any? && policy([:cm_admin, @model.name.classify.constantize]).new?
|
data/lib/cm_admin/version.rb
CHANGED
@@ -71,7 +71,7 @@ module CmAdmin
|
|
71
71
|
|
72
72
|
if value && filter.filter_type.to_s.eql?('multi_select')
|
73
73
|
truncated_value = value[0]
|
74
|
-
truncated_value += " + #{value.size - 1} more" if
|
74
|
+
truncated_value += " + #{value.size - 1} more" if value.size > 1
|
75
75
|
end
|
76
76
|
|
77
77
|
concat(content_tag(:div, class: "filter-chip #{filter.filter_type.to_s.eql?('single_select') ? 'dropdown' : ''}", data: data_hash) do
|
@@ -126,7 +126,12 @@ module CmAdmin
|
|
126
126
|
def add_single_select_filter(filter)
|
127
127
|
value = params.dig(:filters, :"#{filter.filter_type}", :"#{filter.db_column_name}")
|
128
128
|
concat(content_tag(:div, class: "position-relative mr-3 #{value ? '' : 'hidden'}") do
|
129
|
-
|
129
|
+
if value && filter.collection[0].class == Array
|
130
|
+
selected_value_text = filter.collection.map{|collection| collection[0] if collection[1].to_s.eql?(value) }.compact.join(', ')
|
131
|
+
else
|
132
|
+
selected_value_text = value
|
133
|
+
end
|
134
|
+
concat filter_chip(selected_value_text, filter)
|
130
135
|
|
131
136
|
concat(content_tag(:div, class: 'dropdown-menu dropdown-popup') do
|
132
137
|
concat(content_tag(:div, class: 'popup-base') do
|
@@ -136,8 +141,14 @@ module CmAdmin
|
|
136
141
|
end)
|
137
142
|
concat(content_tag(:div, class: 'list-area') do
|
138
143
|
filter.collection.each do |val|
|
139
|
-
|
140
|
-
|
144
|
+
if val.class.eql?(Array)
|
145
|
+
filter_value = val[1]
|
146
|
+
filter_text = val[0]
|
147
|
+
elsif val.class.eql?(String)
|
148
|
+
filter_value = filter_text = val
|
149
|
+
end
|
150
|
+
concat(content_tag(:div, class: "pointer list-item #{(value.present? && value.eql?(filter_value.to_s)) ? 'selected' : ''}", data: {behaviour: 'select-option', filter_type: "#{filter.filter_type}", db_column: "#{filter.db_column_name}", value: filter_value}) do
|
151
|
+
concat tag.span filter_text.to_s
|
141
152
|
end)
|
142
153
|
end
|
143
154
|
end)
|
@@ -150,16 +161,24 @@ module CmAdmin
|
|
150
161
|
|
151
162
|
def add_multi_select_filter(filter)
|
152
163
|
value = params.dig(:filters, :"#{filter.filter_type}", :"#{filter.db_column_name}")
|
153
|
-
|
164
|
+
if value && filter.collection[0].class == Array
|
165
|
+
value_mapped_text = []
|
166
|
+
filter.collection.each do |array|
|
167
|
+
value_mapped_text << array[0].titleize if value.include?(array[1].to_s)
|
168
|
+
end
|
169
|
+
else
|
170
|
+
value_mapped_text = value
|
171
|
+
end
|
172
|
+
|
154
173
|
concat(content_tag(:div, class: "position-relative mr-3 #{value ? '' : 'hidden'}") do
|
155
|
-
concat filter_chip(
|
174
|
+
concat filter_chip(value_mapped_text, filter)
|
156
175
|
|
157
176
|
concat(content_tag(:div, class: 'position-absolute mt-2 dropdown-popup hidden') do
|
158
177
|
concat(content_tag(:div, class: 'popup-base') do
|
159
178
|
concat(content_tag(:div, class: 'popup-inner') do
|
160
179
|
concat(content_tag(:div, class: "#{value ? 'search-with-chips' : 'search-area'}") do
|
161
|
-
if
|
162
|
-
|
180
|
+
if value_mapped_text
|
181
|
+
value_mapped_text.each do |val|
|
163
182
|
concat(content_tag(:div, class: 'chip') do
|
164
183
|
concat tag.span val
|
165
184
|
concat(content_tag(:span, data: { behaviour: 'selected-chip' }) do
|
@@ -172,9 +191,15 @@ module CmAdmin
|
|
172
191
|
end)
|
173
192
|
concat(content_tag(:div, class: 'list-area') do
|
174
193
|
filter.collection.each do |val|
|
175
|
-
|
176
|
-
|
177
|
-
|
194
|
+
if val.class.eql?(Array)
|
195
|
+
filter_value = val[1]
|
196
|
+
filter_text = val[0]
|
197
|
+
elsif val.class.eql?(String)
|
198
|
+
filter_value = filter_text = val
|
199
|
+
end
|
200
|
+
concat(content_tag(:div, class: "pointer list-item #{(value && (value.eql?(val) || value.include?(filter_value.to_s))) ? 'selected' : ''}", data: {behaviour: 'select-option', filter_type: "#{filter.filter_type}", db_column: "#{filter.db_column_name}", value: filter_value}) do
|
201
|
+
concat tag.input class: 'cm-checkbox', type: 'checkbox', checked: value ? value.include?(filter_value.to_s) : false
|
202
|
+
concat tag.label filter_text.to_s.titleize, class: 'pointer'
|
178
203
|
end)
|
179
204
|
end
|
180
205
|
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: 0.8.
|
4
|
+
version: 0.8.5
|
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: 2022-10-
|
13
|
+
date: 2022-10-18 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: caxlsx_rails
|