cm-admin 1.4.5 → 1.4.6

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 00cd64c6ef60a6e6a8764533d677a742765dc47b30db30fb64e302d350faaaac
4
- data.tar.gz: 6a9ab9b8dd72eedf62c31892753103f1c73570ff3a17c6cea60edddfaa52f9b1
3
+ metadata.gz: 15cf5f7ed76c8f535bbdea485c0c67075d5bd8c98c4b92346d99212b6ff45d8d
4
+ data.tar.gz: fffe55bb0ceabb342a712073c7003f329871e24362f6b22cd4165c7fc7d0455b
5
5
  SHA512:
6
- metadata.gz: 02c38abf40ff1651525e1b103bafaf920e18a320abd5fc631779fa6b5d99944bc9546c1145ddfa2a0cd2ef5b78b94eab45fb06b012d66fc74e64e3550d24b8ad
7
- data.tar.gz: 63051f6070b8ab489b3d6e55b397cdb7e7e8402284d3436c80cb46d821613a62303544acee2fd0c9bc876bd3631062f9191d3d11334cd50d2b0b461aabe9dc8f
6
+ metadata.gz: fbc644ba1802f3e1120ce6f461718a08230f9777b2abd3d442a008510c18156710b8374106f300a6fe70707f63d9a4f69d2eb4ba0adde35daf8696a53b3b7346
7
+ data.tar.gz: '06967882302a44acd967fee3812538635609f1358e0b5a6dade1b1e32228f6e30fe941d6831e407a6cddfba98e7fc56e2c5a8d1006123e56885423a57d262f5a'
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- cm-admin (1.4.5)
4
+ cm-admin (1.4.4)
5
5
  caxlsx_rails
6
6
  cocoon (~> 1.2.15)
7
7
  csv-importer (~> 0.8.2)
@@ -18,7 +18,6 @@ import 'flatpickr'
18
18
  import 'jgrowl'
19
19
  import Select2 from "select2"
20
20
  Select2()
21
- jqueryJgrowl()
22
21
 
23
22
  // import '@nathanvda/cocoon'
24
23
  import 'daterangepicker'
@@ -39,7 +38,7 @@ document.addEventListener("turbo:load", function () {
39
38
  $('.select-2').select2({
40
39
  theme: "bootstrap-5",
41
40
  });
42
-
41
+ jqueryJgrowl()
43
42
  });
44
43
 
45
44
  $(document).on('click', '.menu-item', function(e) {
@@ -31,7 +31,7 @@ module CmAdmin
31
31
  def cm_show(params)
32
32
  @current_action = CmAdmin::Models::Action.find_by(@model, name: 'show')
33
33
  scoped_model = "CmAdmin::#{@model.name}Policy::Scope".constantize.new(Current.user, @model.name.constantize).resolve
34
- @ar_object = scoped_model.find(params[:id])
34
+ @ar_object = fetch_ar_object(scoped_model, params[:id])
35
35
  resource_identifier
36
36
  respond_to do |format|
37
37
  if request.xhr?
@@ -53,7 +53,7 @@ module CmAdmin
53
53
 
54
54
  def cm_edit(params)
55
55
  @current_action = CmAdmin::Models::Action.find_by(@model, name: 'edit')
56
- @ar_object = @model.ar_model.name.classify.constantize.find(params[:id])
56
+ @ar_object = fetch_ar_object(@model.ar_model.name.classify.constantize, params[:id])
57
57
  resource_identifier
58
58
  respond_to do |format|
59
59
  format.html { render '/cm_admin/main/' + action_name }
@@ -61,7 +61,7 @@ module CmAdmin
61
61
  end
62
62
 
63
63
  def cm_update(params)
64
- @ar_object = @model.ar_model.name.classify.constantize.find(params[:id])
64
+ @ar_object = fetch_ar_object(@model.ar_model.name.classify.constantize, params[:id])
65
65
  @ar_object.assign_attributes(resource_params(params))
66
66
  resource_identifier
67
67
  resource_responder
@@ -74,7 +74,7 @@ module CmAdmin
74
74
  end
75
75
 
76
76
  def cm_destroy(params)
77
- @ar_object = @model.ar_model.name.classify.constantize.find(params[:id])
77
+ @ar_object = fetch_ar_object(@model.ar_model.name.classify.constantize, params[:id])
78
78
  redirect_url = request.referrer || cm_admin.send("#{@model.name.underscore}_index_path")
79
79
  respond_to do |format|
80
80
  if @ar_object.destroy
@@ -185,7 +185,7 @@ module CmAdmin
185
185
  @ar_object, @associated_model, @associated_ar_object = custom_controller_action(action_name, params.permit!) if !@ar_object.present? && params[:id].present?
186
186
  authorize @ar_object, policy_class: "CmAdmin::#{controller_name.classify}Policy".constantize if defined? "CmAdmin::#{controller_name.classify}Policy".constantize
187
187
  aar_model = request.url.split('/')[-2].classify.constantize if params[:aar_id]
188
- @associated_ar_object = aar_model.find(params[:aar_id]) if params[:aar_id]
188
+ @associated_ar_object = fetch_ar_object(aar_model, params[:aar_id]) if params[:aar_id]
189
189
  nested_fields = get_nested_table_fields(@model.available_fields[:new])
190
190
  nested_fields += get_nested_table_fields(@model.available_fields[:edit])
191
191
  @reflections = @model.ar_model.reflect_on_all_associations
@@ -202,12 +202,12 @@ module CmAdmin
202
202
 
203
203
  def resource_responder
204
204
  respond_to do |format|
205
- if params["referrer"]
206
- redirect_url = params["referrer"]
207
- else
208
- redirect_url = CmAdmin::Engine.mount_path + "/#{@model.name.underscore.pluralize}/#{@ar_object.id}"
209
- end
210
205
  if @ar_object.save
206
+ redirect_url = if params['referrer']
207
+ params['referrer']
208
+ else
209
+ cm_admin.send("#{@model.name.underscore}_show_path", @ar_object)
210
+ end
211
211
  if params['attachment_destroy_ids'].present?
212
212
  ActiveStorage::Attachment.where(id: params['attachment_destroy_ids']).destroy_all
213
213
  end
@@ -222,7 +222,7 @@ module CmAdmin
222
222
  @current_action = CmAdmin::Models::Action.find_by(@model, name: action_name.to_s)
223
223
  return unless @current_action
224
224
 
225
- @ar_object = @model.ar_model.name.classify.constantize.find(params[:id])
225
+ @ar_object = fetch_ar_object(@model.ar_model.name.classify.constantize, params[:id])
226
226
  return @ar_object unless @current_action.child_records
227
227
 
228
228
  child_records = @ar_object.send(@current_action.child_records)
@@ -353,7 +353,10 @@ module CmAdmin
353
353
  params.require(@model.name.underscore.to_sym).permit(*permittable_fields)
354
354
  end
355
355
 
356
-
356
+ def fetch_ar_object(model_object, id)
357
+ return model_object.friendly.find(id) if model_object.respond_to?(:friendly)
357
358
 
359
+ model_object.find(id)
360
+ end
358
361
  end
359
362
  end
@@ -11,9 +11,9 @@
11
11
  .popup-card.table-export-popup.hidden
12
12
  - if edit_action.present?
13
13
  - if @associated_model
14
- - path = cm_admin.send("#{current_model.name.underscore}_edit_path", ar_object.id, referrer: request.path)
14
+ - path = cm_admin.send("#{current_model.name.underscore}_edit_path", ar_object, referrer: request.path)
15
15
  - else
16
- - path = cm_admin.send("#{current_model.name.underscore}_edit_path", ar_object.id)
16
+ - path = cm_admin.send("#{current_model.name.underscore}_edit_path", ar_object)
17
17
  = link_to path do
18
18
  .popup-option
19
19
  span
@@ -21,13 +21,13 @@
21
21
  | Edit
22
22
  - if destroy_action.present?
23
23
  - if @associated_model
24
- = button_to cm_admin.send("#{current_model.name.underscore}_destroy_path", ar_object.id, referrer: request.path), method: :delete, form: { data: { turbo_confirm: 'Are you sure?' } } do
24
+ = button_to cm_admin.send("#{current_model.name.underscore}_destroy_path", ar_object, referrer: request.path), method: :delete, form: { data: { turbo_confirm: 'Are you sure?' } } do
25
25
  .popup-option
26
26
  span
27
27
  i.fa.fa-trash
28
28
  | Destroy
29
29
  - else
30
- = link_to '', data: { bs_toggle: 'modal', bs_target: "##{@model.name.classify}DestroyModal-#{ar_object.id.to_s}" } do
30
+ = link_to '', data: { bs_toggle: 'modal', bs_target: "##{@model.name.classify}DestroyModal-#{ar_object.id.to_s}" } do
31
31
  .popup-option
32
32
  span
33
33
  i.fa.fa-trash
@@ -5,7 +5,7 @@
5
5
  p.table-top__total-count = "#{humanized_ar_collection_count(@associated_ar_object.pagy.count, @action.child_records.to_s)}"
6
6
  .table-top__column-action
7
7
  - if @associated_model && @associated_model.available_actions.map(&:name).include?('new') && has_valid_policy(@associated_ar_object, 'new')
8
- - association = @ar_object.class.reflect_on_all_associations.select{|x| x.name == @associated_model.name.tableize.to_sym }.first
8
+ - association = @ar_object.class.reflect_on_all_associations.select{|x| x.name == @associated_model.name.tableize.to_sym }.first
9
9
  - polymorphic_name = (association && association.inverse_of && association.inverse_of.options[:polymorphic]) ? association.inverse_of.name : ''
10
10
  a href="#{CmAdmin::Engine.mount_path}/#{@associated_model.name.tableize}/new?associated_id=#{@ar_object.id}&associated_class=#{@ar_object.class.name.underscore}&polymorphic_name=#{polymorphic_name}&referrer=#{request.path}"
11
11
  button.btn-secondary Add
@@ -45,7 +45,7 @@
45
45
  - if column.display_if.call(Current.user) && column.viewable
46
46
  td.text-ellipsis data-field-type="#{column.field_type || 'string'}"
47
47
  - if index == 0 && is_show_action_available(@model, ar_object) && !([:link, :custom, :attachment, :drawer, :image].include?(column.field_type))
48
- = link_to ar_object.send(column.field_name), cm_admin.send("#{ar_object.model_name.singular}_show_path", ar_object.id)
48
+ = link_to ar_object.send(column.field_name), cm_admin.send("#{ar_object.model_name.singular}_show_path", ar_object)
49
49
  - else
50
50
  = show_field_value(ar_object, column)
51
51
  - if column.field_type == :drawer
@@ -5,10 +5,10 @@ ul.tabs
5
5
  li.nav-item
6
6
  - nav_item_action_name = nav_item.custom_action.present? ? nav_item.custom_action : 'show'
7
7
  - if via_xhr
8
- = link_to tab_display_name(nav_item.nav_item_name), cm_admin.send("#{@ar_object.model_name.singular}_#{nav_item_action_name}_path", @ar_object.id), class: "nav-link #{ nav_item_action_name == action_name ? 'active' : ''}", target: '_blank'
8
+ = link_to tab_display_name(nav_item.nav_item_name), cm_admin.send("#{@ar_object.model_name.singular}_#{nav_item_action_name}_path", @ar_object), class: "nav-link #{ nav_item_action_name == action_name ? 'active' : ''}", target: '_blank'
9
9
  - else
10
- = link_to tab_display_name(nav_item.nav_item_name), cm_admin.send("#{@ar_object.model_name.singular}_#{nav_item_action_name}_path", @ar_object.id), class: "nav-link #{ nav_item_action_name == action_name ? 'active' : ''}"
10
+ = link_to tab_display_name(nav_item.nav_item_name), cm_admin.send("#{@ar_object.model_name.singular}_#{nav_item_action_name}_path", @ar_object), class: "nav-link #{ nav_item_action_name == action_name ? 'active' : ''}"
11
11
  // current_action_name is defined when action trail is added to that model
12
12
  - if policy([:cm_admin, @model.name.classify.constantize]).send(:history?)
13
13
  li.nav-item
14
- = link_to 'History', cm_admin.send("#{@ar_object.model_name.singular}_history_path", @ar_object.id), class: "nav-link #{ action_name == 'history' ? 'active' : ''}"
14
+ = link_to 'History', cm_admin.send("#{@ar_object.model_name.singular}_history_path", @ar_object), class: "nav-link #{ action_name == 'history' ? 'active' : ''}"
@@ -1,16 +1,15 @@
1
- .modal.fade id="#{@model.name.classify}DestroyModal-#{ar_object.id}" aria-hidden="true" aria-labelledby="#{@model.name.classify}DestroyModalLabel" tabindex="1"
1
+ .modal.fade id="#{@model.name.classify}DestroyModal-#{ar_object.id}" aria-hidden="true" aria-labelledby="#{@model.name.classify}DestroyModalLabel" tabindex="1"
2
2
  .modal-dialog
3
3
  .modal-content
4
4
  .modal-header
5
5
  h5.modal-title id="#{@model.name.classify}DestroyModalLabel" = "#{@model.name.classify} Destroy"
6
- button.btn-close aria-label="Close" data-bs-dismiss="modal" type="button"
6
+ button.btn-close aria-label="Close" data-bs-dismiss="modal" type="button"
7
7
  .modal-body
8
8
  .custom-modal-body
9
9
  .modal-info data-section="bulk-action"
10
10
  | Are you sure you want to delete this #{@model.name.classify}
11
11
  .modal-footer
12
- = button_to cm_admin.send("#{@model.name.underscore}_destroy_path", ar_object.id), method: :delete, class: "btn btn-primary" do
12
+ = button_to cm_admin.send("#{@model.name.underscore}_destroy_path", ar_object), method: :delete, class: "btn btn-primary" do
13
13
  span
14
14
  i.fa.fa-trash
15
- | Destroy
16
-
15
+ |  Destroy
@@ -1,3 +1,3 @@
1
1
  module CmAdmin
2
- VERSION = '1.4.5'
2
+ VERSION = '1.4.6'
3
3
  end
@@ -102,9 +102,9 @@ module CmAdmin
102
102
  if field.association_type.to_s == 'polymorphic'
103
103
  association_name = ar_object.send(field.association_name).class.to_s.underscore
104
104
  field_name = find_field_name(field, association_name)
105
- 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)
105
+ link_to ar_object.send(field.association_name).send(field_name), cm_admin.send("#{association_name}_show_path", ar_object.send(field.association_name))
106
106
  elsif ['belongs_to', 'has_one'].include? field.association_type.to_s
107
- 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)
107
+ 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))
108
108
  end
109
109
  end
110
110
  end
@@ -142,7 +142,7 @@ module CmAdmin
142
142
 
143
143
  def attachment_list(form_obj, cm_field, _value, required_class, _target_action)
144
144
  attached = form_obj.object.send(cm_field.field_name)
145
- return if defined?(::Paperclip) && attached.instance_of?(::Paperclip::Attachment)
145
+ return if attached.instance_of?(Paperclip::Attachment)
146
146
 
147
147
  content_tag(:div) do
148
148
  if attached.class == ActiveStorage::Attached::Many
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.4.5
4
+ version: 1.4.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: 2024-03-01 00:00:00.000000000 Z
13
+ date: 2024-03-24 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: caxlsx_rails
@@ -498,7 +498,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
498
498
  - !ruby/object:Gem::Version
499
499
  version: '0'
500
500
  requirements: []
501
- rubygems_version: 3.2.3
501
+ rubygems_version: 3.5.4
502
502
  signing_key:
503
503
  specification_version: 4
504
504
  summary: CmAdmin is a robust gem designed to assist in creating admin panels for Rails