cm-admin 0.8.9 → 0.9.0

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.
Files changed (49) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/.stylelintrc.json +3 -0
  3. data/.github/workflows/linters.yml +31 -0
  4. data/Gemfile +5 -1
  5. data/Gemfile.lock +23 -10
  6. data/app/assets/stylesheets/cm_admin/base/auth.scss +1 -1
  7. data/app/assets/stylesheets/cm_admin/base/common.scss +3 -3
  8. data/app/assets/stylesheets/cm_admin/base/filters.scss +11 -17
  9. data/app/assets/stylesheets/cm_admin/base/form.scss +6 -12
  10. data/app/assets/stylesheets/cm_admin/base/main-nav.scss +3 -7
  11. data/app/assets/stylesheets/cm_admin/base/navbar.scss +3 -2
  12. data/app/assets/stylesheets/cm_admin/base/quicksearch.scss +4 -6
  13. data/app/assets/stylesheets/cm_admin/base/scaffold.scss +45 -2
  14. data/app/assets/stylesheets/cm_admin/base/show.scss +11 -9
  15. data/app/assets/stylesheets/cm_admin/base/sidebar.scss +9 -19
  16. data/app/assets/stylesheets/cm_admin/base/table.scss +258 -325
  17. data/app/assets/stylesheets/cm_admin/base/tabs.scss +1 -2
  18. data/app/assets/stylesheets/cm_admin/components/_buttons.scss +19 -6
  19. data/app/assets/stylesheets/cm_admin/components/_drawer.scss +4 -8
  20. data/app/assets/stylesheets/cm_admin/components/_dropdown-popup.scss +1 -2
  21. data/app/assets/stylesheets/cm_admin/components/_input.scss +1 -1
  22. data/app/assets/stylesheets/cm_admin/components/_status-tag.scss +3 -2
  23. data/app/assets/stylesheets/cm_admin/helpers/_variable.scss +4 -0
  24. data/app/assets/stylesheets/cm_admin/scaffold.scss +2 -2
  25. data/app/controllers/cm_admin/resource_controller.rb +4 -2
  26. data/app/javascript/packs/cm_admin/filters.js +1 -1
  27. data/app/javascript/packs/cm_admin/scaffolds.js +4 -1
  28. data/app/views/cm_admin/main/_actions_dropdown.html.slim +2 -2
  29. data/app/views/cm_admin/main/_associated_table.html.slim +20 -21
  30. data/app/views/cm_admin/main/_member_custom_action_modal.html.slim +1 -1
  31. data/app/views/cm_admin/main/_table.html.slim +13 -14
  32. data/app/views/cm_admin/main/associated_index.html.slim +4 -5
  33. data/app/views/cm_admin/main/index.html.slim +13 -14
  34. data/app/views/cm_admin/main/show.html.slim +2 -2
  35. data/app/views/layouts/cm_admin.html.slim +5 -5
  36. data/lib/cm_admin/model.rb +6 -1
  37. data/lib/cm_admin/models/action.rb +1 -1
  38. data/lib/cm_admin/models/column.rb +16 -3
  39. data/lib/cm_admin/models/dsl_method.rb +17 -4
  40. data/lib/cm_admin/models/field.rb +7 -1
  41. data/lib/cm_admin/models/utils/associations.rb +25 -0
  42. data/lib/cm_admin/version.rb +1 -1
  43. data/lib/cm_admin/view_helpers/field_display_helper.rb +21 -1
  44. data/lib/cm_admin/view_helpers/page_info_helper.rb +7 -3
  45. data/package-lock.json +2801 -158
  46. data/package.json +2 -0
  47. data/tmp/cache/webpacker/last-compilation-digest-development +1 -1
  48. data/yarn.lock +6949 -5133
  49. metadata +5 -2
@@ -11,7 +11,14 @@ module CmAdmin
11
11
 
12
12
  def show_field_label(ar_object, field)
13
13
  content_tag(:div, class: "info-split__lhs") do
14
- p = field.label.present? ? field.label.to_s : field.field_name.to_s.titleize
14
+ field_label = if field.label.present?
15
+ field.label.to_s
16
+ elsif field.association_type.to_s == "polymorphic"
17
+ ar_object.send(field.association_name).class.to_s.titleize
18
+ else
19
+ field.field_name.to_s.titleize
20
+ end
21
+ p = field_label
15
22
  end
16
23
  end
17
24
 
@@ -73,6 +80,14 @@ module CmAdmin
73
80
  image_tag('https://cm-admin.s3.ap-south-1.amazonaws.com/gem_static_assets/image_not_available.png', height: 50, width: 50)
74
81
  end
75
82
  end
83
+ when :association
84
+ if field.association_type.to_s == 'polymorphic'
85
+ association_name = ar_object.send(field.association_name).class.to_s.underscore
86
+ field_name = find_field_name(field, association_name)
87
+ link_to ar_object.send(field.association_name).send(field_name), cm_admin.send("#{association_name}_show_path", ar_object.send(field.association_name).id)
88
+ elsif ['belongs_to', 'has_one'].include? field.association_type.to_s
89
+ link_to ar_object.send(field.association_name).send(field.field_name), cm_admin.send("#{field.association_name}_show_path", ar_object.send(field.association_name).id)
90
+ end
76
91
  end
77
92
  end
78
93
 
@@ -92,6 +107,11 @@ module CmAdmin
92
107
  end
93
108
  end
94
109
 
110
+ def find_field_name(field, association_name)
111
+ field.field_name.each do |hash|
112
+ return hash[association_name.to_sym] if hash.has_key?(association_name.to_sym)
113
+ end
114
+ end
95
115
  end
96
116
  end
97
117
  end
@@ -71,14 +71,18 @@ module CmAdmin
71
71
 
72
72
  def custom_action_button(custom_action, current_action_name)
73
73
  if current_action_name == "index"
74
- link_to custom_action.name.titleize, @model.ar_model.table_name + '/' + custom_action.path, class: 'secondary-btn ml-2', method: custom_action.verb
74
+ link_to custom_action_title(custom_action), @model.ar_model.table_name + '/' + custom_action.path, class: 'secondary-btn ml-2', method: custom_action.verb
75
75
  elsif current_action_name == "show"
76
- link_to custom_action.name.titleize, custom_action.path.gsub(':id', params[:id]), class: 'secondary-btn ml-2', method: custom_action.verb
76
+ link_to custom_action_title(custom_action), custom_action.path.gsub(':id', params[:id]), class: 'secondary-btn ml-2', method: custom_action.verb
77
77
  end
78
78
  end
79
79
 
80
80
  def custom_modal_button(custom_action)
81
- link_to custom_action.name.titleize, '', class: 'secondary-btn ml-2', data: { bs_toggle: "modal", bs_target: "##{custom_action.name.classify}Modal" }
81
+ link_to custom_action_title(custom_action), '', class: 'secondary-btn ml-2', data: { bs_toggle: "modal", bs_target: "##{custom_action.name.classify}Modal" }
82
+ end
83
+
84
+ def custom_action_title(custom_action)
85
+ custom_action.display_name.to_s.presence || custom_action.name.to_s.titleize
82
86
  end
83
87
  end
84
88
  end