cm-admin 1.4.5 → 1.4.7

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: 0616f7649aac8382d9b74d034ff4bb55287f911cdfc5316be4fa9f33ccfc26a5
4
+ data.tar.gz: 02ea79e4c6e59777013276da852a30e476a5e847ff7eac90702908dc4c759656
5
5
  SHA512:
6
- metadata.gz: 02c38abf40ff1651525e1b103bafaf920e18a320abd5fc631779fa6b5d99944bc9546c1145ddfa2a0cd2ef5b78b94eab45fb06b012d66fc74e64e3550d24b8ad
7
- data.tar.gz: 63051f6070b8ab489b3d6e55b397cdb7e7e8402284d3436c80cb46d821613a62303544acee2fd0c9bc876bd3631062f9191d3d11334cd50d2b0b461aabe9dc8f
6
+ metadata.gz: c5f68ebbb03c82e19b7f262c70006f4edf096073013e6c422eb20b43096fbdda004d37e537fd0ffe46c0f8f376442b0c3314b32d0227c21bc0bd5377b4a6e848
7
+ data.tar.gz: f836df493c54f15c8267b8a9458c67a7844489539274655648aef4cde0caf1250e12f1a9bb6b889a7244d21e21579908f0de7e75f5091f0643f6a294281a7e4f
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.7)
5
5
  caxlsx_rails
6
6
  cocoon (~> 1.2.15)
7
7
  csv-importer (~> 0.8.2)
@@ -87,7 +87,7 @@ GEM
87
87
  ice_nine (~> 0.11.0)
88
88
  thread_safe (~> 0.3, >= 0.3.1)
89
89
  builder (3.2.4)
90
- caxlsx (4.0.0)
90
+ caxlsx (4.1.0)
91
91
  htmlentities (~> 4.3, >= 4.3.4)
92
92
  marcel (~> 1.0)
93
93
  nokogiri (~> 1.10, >= 1.10.4)
@@ -127,11 +127,11 @@ GEM
127
127
  net-imap
128
128
  net-pop
129
129
  net-smtp
130
- marcel (1.0.2)
130
+ marcel (1.0.4)
131
131
  method_source (1.0.0)
132
132
  mini_mime (1.1.5)
133
133
  minitest (5.18.1)
134
- net-imap (0.4.9.1)
134
+ net-imap (0.4.10)
135
135
  date
136
136
  net-protocol
137
137
  net-pop (0.1.2)
@@ -140,8 +140,8 @@ GEM
140
140
  timeout
141
141
  net-smtp (0.4.0.1)
142
142
  net-protocol
143
- nio4r (2.7.0)
144
- nokogiri (1.16.0-arm64-darwin)
143
+ nio4r (2.7.1)
144
+ nokogiri (1.16.3-arm64-darwin)
145
145
  racc (~> 1.4)
146
146
  pagy (4.11.0)
147
147
  parallel (1.22.1)
@@ -226,7 +226,7 @@ GEM
226
226
  temple (>= 0.7.6, < 0.9)
227
227
  tilt (>= 2.0.6, < 2.1)
228
228
  temple (0.8.2)
229
- thor (1.3.0)
229
+ thor (1.3.1)
230
230
  thread_safe (0.3.6)
231
231
  tilt (2.0.10)
232
232
  timeout (0.4.1)
@@ -245,7 +245,7 @@ GEM
245
245
  websocket-driver (0.7.6)
246
246
  websocket-extensions (>= 0.1.0)
247
247
  websocket-extensions (0.1.5)
248
- zeitwerk (2.6.12)
248
+ zeitwerk (2.6.13)
249
249
 
250
250
  PLATFORMS
251
251
  arm64-darwin-20
@@ -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,8 @@ document.addEventListener("turbo:load", function () {
39
38
  $('.select-2').select2({
40
39
  theme: "bootstrap-5",
41
40
  });
42
-
41
+ jqueryJgrowl()
42
+ setup_select_2_ajax();
43
43
  });
44
44
 
45
45
  $(document).on('click', '.menu-item', function(e) {
@@ -52,4 +52,21 @@ $(document).on('click', '.destroy-attachment', function(e) {
52
52
  $(this).append('<input type="text" name="attachment_destroy_ids[]" value="' + ar_id + '"/>')
53
53
  })
54
54
 
55
- window.addEventListener('popstate', e => window.location.reload() );
55
+ window.addEventListener('popstate', e => window.location.reload() );
56
+
57
+ function setup_select_2_ajax(){
58
+ $(".select-2-ajax").each(function(index, element){
59
+ $(element).select2({
60
+ ajax: {
61
+ url: $(element)[0]['dataset'].ajaxUrl,
62
+ dataType: 'json',
63
+ processResults: (data, params) => {
64
+ return {
65
+ results: data.results,
66
+ }
67
+ },
68
+ },
69
+ minimumInputLength: 0
70
+ });
71
+ });
72
+ }
@@ -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
@@ -35,4 +35,4 @@ $(document).on('turbolinks:load', function () {
35
35
  var headerElemHeight = $('.page-top-bar').height() + 64
36
36
  var calculatedHeight = "calc(100vh - " + headerElemHeight+"px"+")"
37
37
  $('.table-wrapper').css("maxHeight", calculatedHeight);
38
- });
38
+ });
@@ -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
+ | &nbsp;Destroy
@@ -6,7 +6,7 @@ module CmAdmin
6
6
  include Utils::Helpers
7
7
 
8
8
  attr_accessor :field_name, :label, :header, :input_type, :collection, :disabled, :helper_method,
9
- :placeholder, :display_if, :html_attr, :target, :col_size
9
+ :placeholder, :display_if, :html_attr, :target, :col_size, :ajax_url
10
10
 
11
11
  VALID_INPUT_TYPES = %i[
12
12
  integer decimal string single_select multi_select date date_time text
@@ -1,3 +1,3 @@
1
1
  module CmAdmin
2
- VERSION = '1.4.5'
2
+ VERSION = '1.4.7'
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
@@ -14,10 +14,10 @@ module CmAdmin
14
14
  is_required = form_obj.object._validators[cm_field.field_name].map(&:kind).include?(:presence)
15
15
  required_class = is_required ? 'required' : ''
16
16
  target_action = @model.available_actions.select { |x| x.name == cm_field.target[:action_name].to_s }.first if cm_field.target.present?
17
- send("cm_#{cm_field.input_type}_field", form_obj, cm_field, value, required_class, target_action)
17
+ send("cm_#{cm_field.input_type}_field", form_obj, cm_field, value, required_class, target_action, cm_field.ajax_url)
18
18
  end
19
19
 
20
- def cm_integer_field(form_obj, cm_field, value, required_class, _target_action)
20
+ def cm_integer_field(form_obj, cm_field, value, required_class, _target_action, _ajax_url)
21
21
  form_obj.text_field cm_field.field_name,
22
22
  class: "field-control #{required_class}",
23
23
  disabled: cm_field.disabled.call(form_obj.object),
@@ -26,7 +26,7 @@ module CmAdmin
26
26
  data: { behaviour: 'integer-only' }
27
27
  end
28
28
 
29
- def cm_decimal_field(form_obj, cm_field, value, required_class, _target_action)
29
+ def cm_decimal_field(form_obj, cm_field, value, required_class, _target_action, _ajax_url)
30
30
  form_obj.text_field cm_field.field_name,
31
31
  class: "field-control #{required_class}",
32
32
  disabled: cm_field.disabled.call(form_obj.object),
@@ -35,7 +35,7 @@ module CmAdmin
35
35
  data: { behaviour: 'decimal-only' }
36
36
  end
37
37
 
38
- def cm_string_field(form_obj, cm_field, value, required_class, _target_action)
38
+ def cm_string_field(form_obj, cm_field, value, required_class, _target_action, _ajax_url)
39
39
  form_obj.text_field cm_field.field_name,
40
40
  class: "field-control #{required_class}",
41
41
  disabled: cm_field.disabled.call(form_obj.object),
@@ -50,16 +50,18 @@ module CmAdmin
50
50
  placeholder: cm_field.placeholder
51
51
  end
52
52
 
53
- def cm_single_select_field(form_obj, cm_field, value, required_class, target_action)
53
+ def cm_single_select_field(form_obj, cm_field, value, required_class, target_action, ajax_url)
54
+ class_name = ajax_url.present? ? 'select-2-ajax' : 'select-2'
54
55
  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)),
55
56
  { include_blank: cm_field.placeholder },
56
- class: "field-control #{required_class} select-2",
57
+ class: "field-control #{required_class} #{class_name}",
57
58
  disabled: cm_field.disabled.call(form_obj.object),
58
59
  data: {
59
60
  field_name: cm_field.field_name,
60
61
  field_type: 'linked-field',
61
62
  target_action: target_action&.name,
62
- target_url: target_action&.name ? cm_admin.send("#{@model.name.underscore}_#{target_action&.name}_path") : ''
63
+ target_url: target_action&.name ? cm_admin.send("#{@model.name.underscore}_#{target_action&.name}_path") : '',
64
+ ajax_url: ajax_url
63
65
  }
64
66
  end
65
67
 
@@ -87,7 +89,7 @@ module CmAdmin
87
89
  disabled: cm_field.disabled.call(form_obj.object), multiple: true
88
90
  end
89
91
 
90
- def cm_date_field(form_obj, cm_field, value, required_class, _target_action)
92
+ def cm_date_field(form_obj, cm_field, value, required_class, _target_action, _ajax_url)
91
93
  form_obj.text_field cm_field.field_name,
92
94
  class: "field-control #{required_class}",
93
95
  disabled: cm_field.disabled.call(form_obj.object),
@@ -105,7 +107,7 @@ module CmAdmin
105
107
  data: { behaviour: 'date-only' }
106
108
  end
107
109
 
108
- def cm_date_time_field(form_obj, cm_field, value, required_class, _target_action)
110
+ def cm_date_time_field(form_obj, cm_field, value, required_class, _target_action, _ajax_url)
109
111
  form_obj.text_field cm_field.field_name,
110
112
  class: "field-control #{required_class}",
111
113
  disabled: cm_field.disabled.call(form_obj.object),
@@ -114,13 +116,13 @@ module CmAdmin
114
116
  data: { behaviour: 'date-time' }
115
117
  end
116
118
 
117
- def cm_text_field(form_obj, cm_field, value, required_class, _target_action)
119
+ def cm_text_field(form_obj, cm_field, value, required_class, _target_action, _ajax_url)
118
120
  form_obj.text_area cm_field.field_name,
119
121
  class: "field-control #{required_class}",
120
122
  placeholder: cm_field.placeholder
121
123
  end
122
124
 
123
- def cm_rich_text_field(form_obj, cm_field, value, required_class, _target_action)
125
+ def cm_rich_text_field(form_obj, cm_field, value, required_class, _target_action, _ajax_url)
124
126
  form_obj.rich_text_area cm_field.field_name,
125
127
  class: "field-control #{required_class}",
126
128
  placeholder: cm_field.placeholder
@@ -164,15 +166,15 @@ module CmAdmin
164
166
  end
165
167
  end
166
168
 
167
- def cm_check_box_field(form_obj, cm_field, value, required_class, target_action)
169
+ def cm_check_box_field(form_obj, cm_field, value, required_class, target_action, _ajax_url)
168
170
  format_check_box_options(value, form_obj, cm_field, required_class, target_action)
169
171
  end
170
172
 
171
- def cm_radio_button_field(form_obj, cm_field, value, required_class, _target_action)
173
+ def cm_radio_button_field(form_obj, cm_field, value, required_class, _target_action, _ajax_url)
172
174
  format_radio_button_options(value, form_obj)
173
175
  end
174
176
 
175
- def cm_hidden_field(form_obj, cm_field, value, required_class, _target_action)
177
+ def cm_hidden_field(form_obj, cm_field, value, required_class, _target_action, _ajax_url)
176
178
  form_obj.hidden_field cm_field.field_name,
177
179
  value: value,
178
180
  name: cm_field.html_attr[:name] || "#{form_obj.object_name}[#{cm_field.field_name}]"
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.7
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-04-02 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: caxlsx_rails