cm-admin 1.1.4 → 1.1.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (32) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +1 -1
  3. data/app/assets/config/cm_admin_manifest.js +2 -1
  4. data/app/assets/fonts/fa-brands-400.ttf +0 -0
  5. data/app/assets/fonts/fa-brands-400.woff2 +0 -0
  6. data/app/assets/fonts/fa-regular-400.ttf +0 -0
  7. data/app/assets/fonts/fa-regular-400.woff2 +0 -0
  8. data/app/assets/fonts/fa-solid-900.ttf +0 -0
  9. data/app/assets/fonts/fa-solid-900.woff2 +0 -0
  10. data/app/assets/fonts/fa-v4compatibility.ttf +0 -0
  11. data/app/assets/fonts/fa-v4compatibility.woff2 +0 -0
  12. data/app/assets/javascripts/cm_admin/scaffolds.js +2 -0
  13. data/app/assets/stylesheets/cm_admin/base/auth.scss +5 -0
  14. data/app/assets/stylesheets/cm_admin/base/show.scss +8 -14
  15. data/app/assets/stylesheets/cm_admin/base/sidebar.scss +5 -0
  16. data/app/assets/stylesheets/cm_admin/cm_admin.css.scss +2 -1
  17. data/app/assets/stylesheets/cm_admin/components/_input.scss +6 -6
  18. data/app/assets/stylesheets/cm_admin/dependency/fontawesome.all.css +7831 -0
  19. data/app/javascript/stylesheets/cm_admin/application.scss +1 -1
  20. data/app/views/cm_admin/main/_associated_table.html.slim +10 -8
  21. data/app/views/cm_admin/main/_table.html.slim +2 -2
  22. data/app/views/cm_admin/main/_top_navbar.html.slim +2 -2
  23. data/app/views/cm_admin/main/edit.html.slim +1 -4
  24. data/app/views/layouts/_left_sidebar_nav.html.slim +1 -1
  25. data/lib/cm_admin/models/column.rb +4 -3
  26. data/lib/cm_admin/models/export.rb +22 -21
  27. data/lib/cm_admin/version.rb +1 -1
  28. data/lib/cm_admin/view_helpers/form_field_helper.rb +2 -2
  29. data/lib/cm_admin/view_helpers.rb +5 -5
  30. data/package-lock.json +21 -21
  31. data/yarn.lock +12 -19
  32. metadata +11 -2
@@ -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.6'
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.6
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-27 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rails
@@ -178,6 +178,14 @@ files:
178
178
  - README.md
179
179
  - Rakefile
180
180
  - app/assets/config/cm_admin_manifest.js
181
+ - app/assets/fonts/fa-brands-400.ttf
182
+ - app/assets/fonts/fa-brands-400.woff2
183
+ - app/assets/fonts/fa-regular-400.ttf
184
+ - app/assets/fonts/fa-regular-400.woff2
185
+ - app/assets/fonts/fa-solid-900.ttf
186
+ - app/assets/fonts/fa-solid-900.woff2
187
+ - app/assets/fonts/fa-v4compatibility.ttf
188
+ - app/assets/fonts/fa-v4compatibility.woff2
181
189
  - app/assets/images/image_not_available.png
182
190
  - app/assets/images/logo.png
183
191
  - app/assets/javascripts/cm_admin/application.js
@@ -212,6 +220,7 @@ files:
212
220
  - app/assets/stylesheets/cm_admin/components/index.scss
213
221
  - app/assets/stylesheets/cm_admin/dependency/bootstrap.min.css
214
222
  - app/assets/stylesheets/cm_admin/dependency/flatpickr.min.css
223
+ - app/assets/stylesheets/cm_admin/dependency/fontawesome.all.css
215
224
  - app/assets/stylesheets/cm_admin/helpers/_mixins.scss
216
225
  - app/assets/stylesheets/cm_admin/helpers/_variable.scss
217
226
  - app/assets/stylesheets/cm_admin/helpers/index.scss