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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 83a83ffbffcaca0ce298a3e4c2289ce3ef7bdef0e89eb1e821ced475af51a07c
4
- data.tar.gz: 2283aabc7bb87f551c08c930b46a8b7bae3b6eefb3b914bc02536744a6209479
3
+ metadata.gz: 824c3834294625da2c626f75005931ccf56711905e6ad223ac2613102db7d750
4
+ data.tar.gz: 2beccd2743a656d7ffcd28b83b682513b372b7c64c8fb16df5e3272e431ad038
5
5
  SHA512:
6
- metadata.gz: c3ac960fa37e0e6dde3835f430a4eb569604d5cb364dfbbe02129063145e7c22509d17ca91be39bdb234751b6fb29a7a453fbb577d9ff758b0e026467077de90
7
- data.tar.gz: 4fb78962250c9b5e76a67b9aebcf0e0b3e7141750fa07893ba0d0f7a7cb0c42a1ab0cbceaf2712ce8e0b097d0b2c8571902f886b20680f3778266a7c8e6a1a07
6
+ metadata.gz: d3f782ef53f1dbca5c8328649050cf55622f909635424d55662e09f6e98076a55cf7fba474aeec347258d2995eb1ec998c6e6b5f8d0d22d6e8237ea7d0b5fc8e
7
+ data.tar.gz: 9310b42149f297a3df3fb564c1f6d800e7d0cf745e14fc1f7388f2e837e9e1812ef3884554994dc7978f05194a7a3acf9e9d332d73ba8164756f0d92b250ffad
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- cm-admin (1.1.4)
4
+ cm-admin (1.1.5)
5
5
  caxlsx_rails
6
6
  cocoon (~> 1.2.15)
7
7
  csv-importer (~> 0.8.2)
@@ -42,3 +42,5 @@ document.addEventListener("turbo:load", function () {
42
42
  $(document).on('click', '.menu-item', function(e) {
43
43
  $('.profile-popup').toggleClass('hidden');
44
44
  });
45
+
46
+ window.addEventListener('popstate', e => window.location.reload() );
@@ -172,6 +172,11 @@
172
172
  .auth-option {
173
173
  padding: 8px 0;
174
174
  .auth-link {
175
+ background: none;
176
+ border: none;
177
+ width: 100%;
178
+ text-align: left;
179
+ padding: 0;
175
180
  display: block;
176
181
  @include font($size: $t4-text);
177
182
  line-height: 22px;
@@ -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: flex;
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
- width: 20%;
58
- p {
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
- width: 80%;
66
- p {
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;
@@ -27,4 +27,5 @@
27
27
  *= require 'cm_admin/dependency/flatpickr.min'
28
28
  *= require 'cm_admin/scaffold'
29
29
  *= require_self
30
+ *= require font-awesome
30
31
  */
@@ -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: "\2713";
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: "\2713";
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 {
@@ -1,4 +1,4 @@
1
1
  @import "bootstrap/scss/bootstrap";
2
2
  @import "flatpickr/dist/flatpickr";
3
3
  @import "../../../../node_modules/daterangepicker/daterangepicker.css";
4
- @import "jgrowl/jquery.jgrowl"
4
+ @import "jgrowl/jquery.jgrowl";
@@ -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
- td class="text-ellipsis"
37
- span class="#{column.field_type.to_s} #{column.cm_css_class} "
38
- - if index == 0 && is_show_action_available(@associated_model)
39
- a href="#{CmAdmin::Engine.mount_path}/#{@associated_model.name.tableize}/#{ar_object.id}" = show_field_value(ar_object, column)
40
- - else
41
- = show_field_value(ar_object, column)
42
- - if column.field_type == :drawer
43
- = render partial: column.drawer_partial, locals: { ar_object: ar_object }
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 + ' /', cm_admin.send(:"#{@model.name.underscore}_index_path")
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'
@@ -16,7 +16,4 @@
16
16
  - @ar_object.errors.full_messages.each do |error_message|
17
17
  li = error_message
18
18
  .form-container
19
- p.form-title
20
- | Section heading
21
- .form-container__inner
22
- = generate_form(@ar_object, @model)
19
+ = generate_form(@ar_object, @model)
@@ -25,6 +25,6 @@
25
25
  p.email-text = current_user.email
26
26
  .profile-info__right
27
27
  .auth-option
28
- = link_to destroy_user_session_path, method: :delete, class: 'auth-link', data: { turbo_method: :delete }
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 { |i| i.name == search_hash[:name] }
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
- columns = params[:columns] || []
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, columns, helpers)
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, columns, file_path)
15
+ create_workbook(model, formatted_data, selected_column_names, file_path)
16
16
  return file_path
17
17
  end
18
18
 
19
-
20
- def format_records(records, model, columns, helpers)
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: columns.map(&:to_sym)})
28
- columns.each do |column|
29
- break unless model.available_fields[:index].map(&:field_name).include?(column.to_sym)
30
- record_hash[column.to_sym] = record.send(column.to_sym)
31
- end
32
- custom_fields.each do |field|
33
- record_hash[field.field_name.to_sym] = helpers.send(field.helper_method, record, field.field_name)
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, class_name, file_path)
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(&:titleize), b: true
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
- sheet.column_widths(*size_arr)
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].map{|x| x.exportable ? x.field_name : ""}.reject { |c| c.empty? }
58
+ klass.available_fields[:index].select(&:exportable)
58
59
  end
59
60
 
60
61
  end
@@ -1,3 +1,3 @@
1
1
  module CmAdmin
2
- VERSION = '1.1.4'
2
+ VERSION = '1.1.5'
3
3
  end
@@ -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.downcase.gsub('_', ' ')}" },
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 |column_path|
64
- concat create_checkbox(column_path)
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(column_path)
69
+ def create_checkbox(column)
70
70
  tag.div class: 'col-md-4' do
71
- concat check_box_tag 'columns[]', column_path, id: column_path.to_s.gsub('/', '-')
72
- concat " #{column_path.to_s.gsub('/', '_').humanize}"
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.3",
1818
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.3.tgz",
1819
- "integrity": "sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==",
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.1",
3838
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
3839
- "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
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.3",
7796
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.3.tgz",
7797
- "integrity": "sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==",
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.1",
9876
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
9877
- "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
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.3",
10414
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.3.tgz",
10415
- "integrity": "sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==",
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.0",
10473
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
10474
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
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.1",
13427
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
13428
- "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
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.1"
6348
- resolved "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz"
6349
- integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
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.npmjs.org/semver/-/semver-7.0.0.tgz"
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.0"
6358
- resolved "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz"
6359
- integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
6360
-
6361
- semver@^7.3.2:
6362
- version "7.3.5"
6363
- resolved "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz"
6364
- integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==
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
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-14 00:00:00.000000000 Z
13
+ date: 2023-07-26 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rails