cm-admin 1.1.4 → 1.1.5
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 +4 -4
- data/Gemfile.lock +1 -1
- data/app/assets/javascripts/cm_admin/scaffolds.js +2 -0
- data/app/assets/stylesheets/cm_admin/base/auth.scss +5 -0
- data/app/assets/stylesheets/cm_admin/base/show.scss +8 -14
- data/app/assets/stylesheets/cm_admin/base/sidebar.scss +5 -0
- data/app/assets/stylesheets/cm_admin/cm_admin.css.scss +1 -0
- data/app/assets/stylesheets/cm_admin/components/_input.scss +6 -6
- data/app/javascript/stylesheets/cm_admin/application.scss +1 -1
- data/app/views/cm_admin/main/_associated_table.html.slim +10 -8
- data/app/views/cm_admin/main/_table.html.slim +2 -2
- data/app/views/cm_admin/main/_top_navbar.html.slim +2 -2
- data/app/views/cm_admin/main/edit.html.slim +1 -4
- data/app/views/layouts/_left_sidebar_nav.html.slim +1 -1
- data/lib/cm_admin/models/column.rb +4 -3
- data/lib/cm_admin/models/export.rb +22 -21
- data/lib/cm_admin/version.rb +1 -1
- data/lib/cm_admin/view_helpers/form_field_helper.rb +2 -2
- data/lib/cm_admin/view_helpers.rb +5 -5
- data/package-lock.json +21 -21
- data/yarn.lock +12 -19
- 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: 824c3834294625da2c626f75005931ccf56711905e6ad223ac2613102db7d750
|
4
|
+
data.tar.gz: 2beccd2743a656d7ffcd28b83b682513b372b7c64c8fb16df5e3272e431ad038
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d3f782ef53f1dbca5c8328649050cf55622f909635424d55662e09f6e98076a55cf7fba474aeec347258d2995eb1ec998c6e6b5f8d0d22d6e8237ea7d0b5fc8e
|
7
|
+
data.tar.gz: 9310b42149f297a3df3fb564c1f6d800e7d0cf745e14fc1f7388f2e837e9e1812ef3884554994dc7978f05194a7a3acf9e9d332d73ba8164756f0d92b250ffad
|
data/Gemfile.lock
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
.show-page {
|
4
4
|
overflow: auto;
|
5
|
-
|
5
|
+
|
6
6
|
&__tabs {
|
7
7
|
.cm-tabs-bar {
|
8
8
|
background-color: $white;
|
@@ -48,26 +48,20 @@
|
|
48
48
|
border-radius: $radius-4;
|
49
49
|
}
|
50
50
|
.info-split {
|
51
|
-
display:
|
51
|
+
display: grid;
|
52
|
+
grid-template-columns: 140px 1fr;
|
53
|
+
grid-column-gap: 24px;
|
52
54
|
margin-bottom: 24px;
|
53
55
|
&:nth-last-child(1) {
|
54
56
|
margin-bottom: 0;
|
55
57
|
}
|
56
58
|
&__lhs {
|
57
|
-
|
58
|
-
|
59
|
-
@include font($size: $t4-text, $color: $ink-lighter-clr);
|
60
|
-
line-height: 22px;
|
61
|
-
margin: 0;
|
62
|
-
}
|
59
|
+
@include font($size: $t4-text, $color: $ink-lighter-clr);
|
60
|
+
line-height: 22px;
|
63
61
|
}
|
64
62
|
&__rhs {
|
65
|
-
|
66
|
-
|
67
|
-
@include font($size: $t4-text, $color: $primary-text-clr);
|
68
|
-
line-height: 19px;
|
69
|
-
margin: 0;
|
70
|
-
}
|
63
|
+
@include font($size: $t4-text, $color: $primary-text-clr);
|
64
|
+
line-height: 19px;
|
71
65
|
}
|
72
66
|
}
|
73
67
|
}
|
@@ -198,6 +198,11 @@
|
|
198
198
|
.auth-option {
|
199
199
|
padding: 8px 0;
|
200
200
|
.auth-link {
|
201
|
+
background: none;
|
202
|
+
border: none;
|
203
|
+
width: 100%;
|
204
|
+
text-align: left;
|
205
|
+
padding: 0;
|
201
206
|
display: block;
|
202
207
|
@include font($size: $t4-text, $color: $primary-text-clr);
|
203
208
|
line-height: 22px;
|
@@ -117,8 +117,8 @@
|
|
117
117
|
cursor: pointer;
|
118
118
|
}
|
119
119
|
}
|
120
|
-
|
121
|
-
.upload-placeholder-1 {
|
120
|
+
|
121
|
+
.upload-placeholder-1 {
|
122
122
|
@include font($size: $t4-text, $color: $ink-lighter-clr, $weight: 600);
|
123
123
|
}
|
124
124
|
.upload-placeholder-2 {
|
@@ -161,7 +161,7 @@ input.cm-checkbox[type="checkbox"] {
|
|
161
161
|
}
|
162
162
|
&:checked:after {
|
163
163
|
background: $brand-color;
|
164
|
-
content: "\
|
164
|
+
content: "\f00c";
|
165
165
|
font-family: FontAwesome !important;
|
166
166
|
color: $white;
|
167
167
|
border: none;
|
@@ -173,7 +173,7 @@ input.cm-checkbox[type="checkbox"] {
|
|
173
173
|
}
|
174
174
|
&:checked:after {
|
175
175
|
background: $grey-light-clr;
|
176
|
-
content: "\
|
176
|
+
content: "\f00c";
|
177
177
|
font-family: FontAwesome !important;
|
178
178
|
color: $white;
|
179
179
|
border: none;
|
@@ -262,7 +262,7 @@ input.cm-radio[type="radio"] {
|
|
262
262
|
right: 0;
|
263
263
|
bottom: 0;
|
264
264
|
background: $grey-light-clr;
|
265
|
-
transition: all .2s linear;
|
265
|
+
transition: all 0.2s linear;
|
266
266
|
}
|
267
267
|
|
268
268
|
.slider:before {
|
@@ -273,7 +273,7 @@ input.cm-radio[type="radio"] {
|
|
273
273
|
left: 2px;
|
274
274
|
bottom: 2px;
|
275
275
|
background-color: $white;
|
276
|
-
transition: all .2s linear;
|
276
|
+
transition: all 0.2s linear;
|
277
277
|
}
|
278
278
|
|
279
279
|
input:checked + .slider {
|
@@ -24,6 +24,7 @@
|
|
24
24
|
/ span
|
25
25
|
/ input.cm-checkbox type="checkbox"
|
26
26
|
- @model.available_fields[@action.name.to_sym].each do |column|
|
27
|
+
- if column.display_if.call(Current.user) && column.viewable
|
27
28
|
th = column.header
|
28
29
|
tbody.cm-table__body
|
29
30
|
- @associated_ar_object.data.each do |ar_object|
|
@@ -33,14 +34,15 @@
|
|
33
34
|
/ span
|
34
35
|
/ input.cm-checkbox type="checkbox"
|
35
36
|
- @model.available_fields[@action.name.to_sym].each_with_index do |column, index|
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
37
|
+
- if column.display_if.call(Current.user) && column.viewable
|
38
|
+
td class="text-ellipsis"
|
39
|
+
span class="#{column.field_type.to_s} #{column.cm_css_class} "
|
40
|
+
- if index == 0 && is_show_action_available(@associated_model)
|
41
|
+
a href="#{CmAdmin::Engine.mount_path}/#{@associated_model.name.tableize}/#{ar_object.id}" = show_field_value(ar_object, column)
|
42
|
+
- else
|
43
|
+
= show_field_value(ar_object, column)
|
44
|
+
- if column.field_type == :drawer
|
45
|
+
= render partial: column.drawer_partial, locals: { ar_object: ar_object }
|
44
46
|
|
45
47
|
- if @associated_model
|
46
48
|
== render partial: 'cm_admin/main/actions_dropdown', locals: { cm_model: @associated_model, ar_object: ar_object }
|
@@ -15,7 +15,7 @@
|
|
15
15
|
/ span
|
16
16
|
/ input.cm-checkbox type="checkbox"
|
17
17
|
- @model.available_fields[:index].each do |column|
|
18
|
-
- if column.display_if.call(Current.user)
|
18
|
+
- if column.display_if.call(Current.user) && column.viewable
|
19
19
|
th = column.header
|
20
20
|
tbody.cm-table__body
|
21
21
|
- @ar_object.data.each do |ar_object|
|
@@ -24,7 +24,7 @@
|
|
24
24
|
/ span
|
25
25
|
/ input.cm-checkbox type="checkbox"
|
26
26
|
- @model.available_fields[:index].each_with_index do |column, index|
|
27
|
-
- if column.display_if.call(Current.user)
|
27
|
+
- if column.display_if.call(Current.user) && column.viewable
|
28
28
|
td.text-ellipsis
|
29
29
|
span class="#{column.field_type.to_s} #{column.cm_css_class} "
|
30
30
|
- if index == 0 && is_show_action_available(@model) && !([:link, :custom, :attachment, :drawer, :image].include?(column.field_type))
|
@@ -3,7 +3,7 @@
|
|
3
3
|
- if cm_admin.method_defined?(:"#{@model.name.underscore}_index_path") && (@model.current_action.name == 'show' || @model.current_action.layout_type.present?)
|
4
4
|
.bread-crumb-area
|
5
5
|
.breadcrumb-text
|
6
|
-
= link_to @model.name
|
6
|
+
= link_to "#{@model.name.titleize.pluralize} /", cm_admin.send(:"#{@model.name.underscore}_index_path")
|
7
7
|
.nav-title-area
|
8
8
|
p.title-text = action_title
|
9
9
|
p.title-sub-text = action_description
|
@@ -36,4 +36,4 @@
|
|
36
36
|
|
37
37
|
- edit_action = @model.available_actions.select{|act| act if act.action_type.eql?(:default) && act.name.eql?('edit')}
|
38
38
|
- if edit_action.any? && policy([:cm_admin, @model.name.classify.constantize]).edit?
|
39
|
-
= link_to "Edit #{@model.name}", cm_admin.send(:"#{@model.name.underscore}_edit_path", @ar_object), class: 'primary-btn ml-2'
|
39
|
+
= link_to "Edit #{@model.name.titleize.pluralize}", cm_admin.send(:"#{@model.name.underscore}_edit_path", @ar_object), class: 'primary-btn ml-2'
|
@@ -25,6 +25,6 @@
|
|
25
25
|
p.email-text = current_user.email
|
26
26
|
.profile-info__right
|
27
27
|
.auth-option
|
28
|
-
=
|
28
|
+
= button_to destroy_user_session_path, method: :delete, class: 'auth-link', data: { turbo: :false }
|
29
29
|
| Logout
|
30
30
|
= render 'layouts/quick_links'
|
@@ -7,7 +7,7 @@ module CmAdmin
|
|
7
7
|
|
8
8
|
attr_accessor :field_name, :field_type, :header, :format, :prefix, :suffix, :exportable, :round, :height, :width,
|
9
9
|
:cm_css_class, :link, :url, :custom_method, :helper_method, :managable, :lockable, :drawer_partial, :tag_class,
|
10
|
-
:display_if, :association_name, :association_type
|
10
|
+
:display_if, :association_name, :association_type, :viewable, :custom_link
|
11
11
|
|
12
12
|
def initialize(field_name, attributes = {})
|
13
13
|
@field_name = field_name
|
@@ -41,12 +41,13 @@ module CmAdmin
|
|
41
41
|
self.exportable = true
|
42
42
|
self.managable = true
|
43
43
|
self.lockable = false
|
44
|
+
self.viewable = true
|
44
45
|
self.tag_class = {}
|
45
46
|
end
|
46
47
|
|
47
48
|
class << self
|
48
|
-
def find_by(model, search_hash)
|
49
|
-
model.available_fields.find { |
|
49
|
+
def find_by(model, action_name, search_hash)
|
50
|
+
model.available_fields[action_name].find { |column| column.field_name == search_hash[:name] }
|
50
51
|
end
|
51
52
|
end
|
52
53
|
end
|
@@ -4,57 +4,58 @@ module CmAdmin
|
|
4
4
|
class << self
|
5
5
|
def generate_excel(klass_name, params, helpers)
|
6
6
|
klass = klass_name.constantize
|
7
|
-
|
7
|
+
selected_column_names = params[:columns] || []
|
8
8
|
# filter_params = params[:filters]
|
9
9
|
model = CmAdmin::Model.find_by({name: klass_name})
|
10
10
|
# records = get_records(klass, model, columns, helpers)
|
11
11
|
records = "CmAdmin::#{klass_name}Policy::Scope".constantize.new(Current.user, klass).resolve
|
12
12
|
filtered_data = CmAdmin::Models::Filter.filtered_data(model.filter_params(params), records, model.filters)
|
13
|
-
formatted_data = format_records(filtered_data, model,
|
13
|
+
formatted_data = format_records(filtered_data, model, selected_column_names, helpers)
|
14
14
|
file_path = "#{Rails.root}/tmp/#{klass}_data_#{DateTime.now.strftime("%Y-%m-%d_%H-%M-%S")}.xlsx"
|
15
|
-
create_workbook(formatted_data,
|
15
|
+
create_workbook(model, formatted_data, selected_column_names, file_path)
|
16
16
|
return file_path
|
17
17
|
end
|
18
18
|
|
19
|
-
|
20
|
-
|
21
|
-
custom_fields = model.available_fields[:index].map{|field| field if field.field_type == :custom}.compact
|
22
|
-
normal_fields = model.available_fields[:index].map{|field| field unless field.field_type == :custom}.compact
|
23
|
-
deserialized_columns = CmAdmin::Utils.deserialize_csv_columns(columns, :as_json_params)
|
19
|
+
def format_records(records, model, selected_column_names, helpers)
|
20
|
+
deserialized_columns = CmAdmin::Utils.deserialize_csv_columns(selected_column_names, :as_json_params)
|
24
21
|
# This includes isn't recursve, a full solution should be recursive
|
25
22
|
records_arr = []
|
26
23
|
records.includes(deserialized_columns[:include].keys).find_each do |record|
|
27
|
-
record_hash = record.as_json({only:
|
28
|
-
|
29
|
-
break unless model.available_fields[:index].map(&:field_name).include?(
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
24
|
+
record_hash = record.as_json({ only: selected_column_names.map(&:to_sym) })
|
25
|
+
selected_column_names.each do |column_name|
|
26
|
+
break unless model.available_fields[:index].map(&:field_name).include?(column_name.to_sym)
|
27
|
+
|
28
|
+
column = CmAdmin::Models::Column.find_by(model, :index, { name: column_name.to_sym })
|
29
|
+
if column.field_type == :custom
|
30
|
+
record_hash[column.field_name] = helpers.send(column.helper_method, record, column.field_name).to_s
|
31
|
+
else
|
32
|
+
record_hash[column.field_name] = record.send(column.field_name).to_s
|
33
|
+
end
|
34
34
|
end
|
35
35
|
records_arr << record_hash
|
36
36
|
end
|
37
37
|
records_arr
|
38
38
|
end
|
39
39
|
|
40
|
-
def create_workbook(records,
|
40
|
+
def create_workbook(cm_model, records, _class_name, file_path)
|
41
41
|
flattened_records = records.map { |record| CmAdmin::Utils.flatten_hash(record) }
|
42
|
-
columns = flattened_records.map{|x| x.keys}.flatten.uniq.sort
|
42
|
+
# columns = flattened_records.map{|x| x.keys}.flatten.uniq.sort
|
43
|
+
columns = exportable_columns(cm_model).select { |column| flattened_records.first.keys.include?(column.field_name.to_s) }
|
43
44
|
size_arr = []
|
44
45
|
columns.size.times { size_arr << 22 }
|
45
46
|
xl = Axlsx::Package.new
|
46
47
|
xl.workbook.add_worksheet do |sheet|
|
47
|
-
sheet.add_row columns&.map(&:
|
48
|
+
sheet.add_row columns&.map(&:header), b: true
|
48
49
|
flattened_records.each do |record|
|
49
|
-
sheet.add_row(columns.map { |column| record[column] })
|
50
|
+
sheet.add_row(columns.map { |column| record[column.field_name.to_s] })
|
50
51
|
end
|
51
|
-
|
52
|
+
sheet.column_widths(*size_arr)
|
52
53
|
end
|
53
54
|
xl.serialize(file_path)
|
54
55
|
end
|
55
56
|
|
56
57
|
def exportable_columns(klass)
|
57
|
-
klass.available_fields[:index].
|
58
|
+
klass.available_fields[:index].select(&:exportable)
|
58
59
|
end
|
59
60
|
|
60
61
|
end
|
data/lib/cm_admin/version.rb
CHANGED
@@ -39,7 +39,7 @@ module CmAdmin
|
|
39
39
|
|
40
40
|
def cm_single_select_field(form_obj, cm_field, value, required_class, target_action)
|
41
41
|
form_obj.select cm_field.field_name, options_for_select(select_collection_value(form_obj.object, cm_field), form_obj.object.send(cm_field.field_name)),
|
42
|
-
{ include_blank: cm_field.placeholder.to_s },
|
42
|
+
{ include_blank: cm_field.placeholder.to_s.presence || "Select #{cm_field.field_name.to_s.humanize(capitalize: false)}}" },
|
43
43
|
class: "normal-input #{required_class} select-2",
|
44
44
|
disabled: cm_field.disabled,
|
45
45
|
data: {
|
@@ -53,7 +53,7 @@ module CmAdmin
|
|
53
53
|
def cm_multi_select_field(form_obj, cm_field, value, required_class, target_action)
|
54
54
|
form_obj.select cm_field.field_name,
|
55
55
|
options_for_select(select_collection_value(form_obj.object, cm_field), form_obj.object.send(cm_field.field_name)),
|
56
|
-
{ include_blank: "Select #{cm_field.field_name.to_s.
|
56
|
+
{ include_blank: cm_field.placeholder.to_s.presence || "Select #{cm_field.field_name.to_s.humanize(capitalize: false)}" },
|
57
57
|
class: "normal-input #{required_class} select-2",
|
58
58
|
disabled: cm_field.disabled, multiple: true
|
59
59
|
end
|
@@ -60,16 +60,16 @@ module CmAdmin
|
|
60
60
|
|
61
61
|
def checkbox_row(klass)
|
62
62
|
tag.div class: 'row' do
|
63
|
-
CmAdmin::Models::Export.exportable_columns(klass).each do |
|
64
|
-
concat create_checkbox(
|
63
|
+
CmAdmin::Models::Export.exportable_columns(klass).each do |column|
|
64
|
+
concat create_checkbox(column)
|
65
65
|
end
|
66
66
|
end
|
67
67
|
end
|
68
68
|
|
69
|
-
def create_checkbox(
|
69
|
+
def create_checkbox(column)
|
70
70
|
tag.div class: 'col-md-4' do
|
71
|
-
concat check_box_tag 'columns[]',
|
72
|
-
concat " #{
|
71
|
+
concat check_box_tag 'columns[]', column.field_name, id: column.field_name.to_s.gsub('/', '-')
|
72
|
+
concat " #{column.header.to_s.gsub('/', '_').humanize}"
|
73
73
|
end
|
74
74
|
end
|
75
75
|
|
data/package-lock.json
CHANGED
@@ -1814,9 +1814,9 @@
|
|
1814
1814
|
}
|
1815
1815
|
},
|
1816
1816
|
"node_modules/@npmcli/fs/node_modules/semver": {
|
1817
|
-
"version": "7.5.
|
1818
|
-
"resolved": "https://registry.npmjs.org/semver/-/semver-7.5.
|
1819
|
-
"integrity": "sha512-
|
1817
|
+
"version": "7.5.4",
|
1818
|
+
"resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
|
1819
|
+
"integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
|
1820
1820
|
"dependencies": {
|
1821
1821
|
"lru-cache": "^6.0.0"
|
1822
1822
|
},
|
@@ -3834,9 +3834,9 @@
|
|
3834
3834
|
}
|
3835
3835
|
},
|
3836
3836
|
"node_modules/cross-spawn/node_modules/semver": {
|
3837
|
-
"version": "5.7.
|
3838
|
-
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.
|
3839
|
-
"integrity": "sha512-
|
3837
|
+
"version": "5.7.2",
|
3838
|
+
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
|
3839
|
+
"integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
|
3840
3840
|
"bin": {
|
3841
3841
|
"semver": "bin/semver"
|
3842
3842
|
}
|
@@ -7792,9 +7792,9 @@
|
|
7792
7792
|
}
|
7793
7793
|
},
|
7794
7794
|
"node_modules/normalize-package-data/node_modules/semver": {
|
7795
|
-
"version": "7.5.
|
7796
|
-
"resolved": "https://registry.npmjs.org/semver/-/semver-7.5.
|
7797
|
-
"integrity": "sha512-
|
7795
|
+
"version": "7.5.4",
|
7796
|
+
"resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
|
7797
|
+
"integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
|
7798
7798
|
"dev": true,
|
7799
7799
|
"dependencies": {
|
7800
7800
|
"lru-cache": "^6.0.0"
|
@@ -9872,9 +9872,9 @@
|
|
9872
9872
|
}
|
9873
9873
|
},
|
9874
9874
|
"node_modules/read-pkg/node_modules/semver": {
|
9875
|
-
"version": "5.7.
|
9876
|
-
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.
|
9877
|
-
"integrity": "sha512-
|
9875
|
+
"version": "5.7.2",
|
9876
|
+
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
|
9877
|
+
"integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
|
9878
9878
|
"dev": true,
|
9879
9879
|
"bin": {
|
9880
9880
|
"semver": "bin/semver"
|
@@ -10410,9 +10410,9 @@
|
|
10410
10410
|
}
|
10411
10411
|
},
|
10412
10412
|
"node_modules/sass-loader/node_modules/semver": {
|
10413
|
-
"version": "7.5.
|
10414
|
-
"resolved": "https://registry.npmjs.org/semver/-/semver-7.5.
|
10415
|
-
"integrity": "sha512-
|
10413
|
+
"version": "7.5.4",
|
10414
|
+
"resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
|
10415
|
+
"integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
|
10416
10416
|
"dependencies": {
|
10417
10417
|
"lru-cache": "^6.0.0"
|
10418
10418
|
},
|
@@ -10469,9 +10469,9 @@
|
|
10469
10469
|
}
|
10470
10470
|
},
|
10471
10471
|
"node_modules/semver": {
|
10472
|
-
"version": "6.3.
|
10473
|
-
"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.
|
10474
|
-
"integrity": "sha512-
|
10472
|
+
"version": "6.3.1",
|
10473
|
+
"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
|
10474
|
+
"integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
|
10475
10475
|
"bin": {
|
10476
10476
|
"semver": "bin/semver.js"
|
10477
10477
|
}
|
@@ -13423,9 +13423,9 @@
|
|
13423
13423
|
}
|
13424
13424
|
},
|
13425
13425
|
"node_modules/webpack/node_modules/semver": {
|
13426
|
-
"version": "5.7.
|
13427
|
-
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.
|
13428
|
-
"integrity": "sha512-
|
13426
|
+
"version": "5.7.2",
|
13427
|
+
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
|
13428
|
+
"integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
|
13429
13429
|
"bin": {
|
13430
13430
|
"semver": "bin/semver"
|
13431
13431
|
}
|
data/yarn.lock
CHANGED
@@ -6344,31 +6344,24 @@ selfsigned@^2.0.1:
|
|
6344
6344
|
node-forge "^1"
|
6345
6345
|
|
6346
6346
|
"semver@2 || 3 || 4 || 5", semver@^5.5.0, semver@^5.6.0:
|
6347
|
-
version "5.7.
|
6348
|
-
resolved "https://registry.
|
6349
|
-
integrity sha512-
|
6347
|
+
version "5.7.2"
|
6348
|
+
resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8"
|
6349
|
+
integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==
|
6350
6350
|
|
6351
6351
|
semver@7.0.0:
|
6352
6352
|
version "7.0.0"
|
6353
|
-
resolved "https://registry.
|
6353
|
+
resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e"
|
6354
6354
|
integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==
|
6355
6355
|
|
6356
6356
|
semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0:
|
6357
|
-
version "6.3.
|
6358
|
-
resolved "https://registry.
|
6359
|
-
integrity sha512-
|
6360
|
-
|
6361
|
-
semver@^7.3.2:
|
6362
|
-
version "7.
|
6363
|
-
resolved "https://registry.
|
6364
|
-
integrity sha512-
|
6365
|
-
dependencies:
|
6366
|
-
lru-cache "^6.0.0"
|
6367
|
-
|
6368
|
-
semver@^7.3.4:
|
6369
|
-
version "7.3.8"
|
6370
|
-
resolved "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz"
|
6371
|
-
integrity sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==
|
6357
|
+
version "6.3.1"
|
6358
|
+
resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4"
|
6359
|
+
integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==
|
6360
|
+
|
6361
|
+
semver@^7.3.2, semver@^7.3.4:
|
6362
|
+
version "7.5.4"
|
6363
|
+
resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e"
|
6364
|
+
integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==
|
6372
6365
|
dependencies:
|
6373
6366
|
lru-cache "^6.0.0"
|
6374
6367
|
|
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.1.
|
4
|
+
version: 1.1.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: 2023-07-
|
13
|
+
date: 2023-07-26 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rails
|