activeadmin 3.2.4 → 3.3.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 96cc413b7ce2a101b6d54a8d4e8c31a6bb4bb8bd9ba8078252e7210088d6eddc
4
- data.tar.gz: cfefd3ac1c3a6d60eed87faf31be9fb04980fcb91d6a4f9bc1533702a5c44887
3
+ metadata.gz: e080845beb483b8364c49bb199ac8b4ba61975854316d053df39b39208d863bf
4
+ data.tar.gz: c30bcfde594fb30c2a8796741451f245b77ddeaa66c6a66ecbfbcbec3064918a
5
5
  SHA512:
6
- metadata.gz: 8d3a3562deed7b19ff4ac7230810de7a270deaf9449026bb80f2a4b0b62fe98093b8c0948f2ebb236a6fe18c5d6d0122a94207a697c861ec029491ce421033fc
7
- data.tar.gz: c67fd515ee902ffa551bea1a5b0b01e9c6ef84704dae5966892dadf2af69baf593d1f5f35f44d2b7638afbd5eee5ff2af79465efe6d90c539b3ad4bbfb37ef33
6
+ metadata.gz: fe64d783c2ac39dbbc74df16985dabcbee5e300039f8b703df6ccedf7dee24dcda09dd59b154383ba0dc593310f163dd6ca51af5f59d26b11646683158eeae4a
7
+ data.tar.gz: f4e988b7bf89e2cb291822c62d891d958ec48400e3ccee31fc2480b47ee1c8ab80608c939abb80733378c2f27a245044d1f89c68fe04c8fd850264df072ae8d1
data/CHANGELOG.md CHANGED
@@ -2,6 +2,34 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## 3.3.0 [☰](https://github.com/activeadmin/activeadmin/compare/v3.2.5..v3.3.0)
6
+
7
+ ### Enhancements
8
+
9
+ * Improve v3 docs regarding compatibility with vite_rails [#8548] by [@mattbrictson]
10
+ * Backport test against Rails 8.0 [#8556] by [@mgrunberg] and [@tagliala]
11
+ * Test against Ruby 3.4 [#8614] by [@tagliala]
12
+ * Backport Support sortable argument in id_column [#8650] by [@jaynetics]
13
+ * Backport Support title for id_column [#8652] by [@mgrunberg]
14
+
15
+ ### Bug Fixes
16
+
17
+ * Backport Fix attributes passed to form has_many not being set on new record form items [#8551] by [@Fs00]
18
+ * Backport Fix deprecation warning in Ruby 3.4 [#8596] by [@tagliala]
19
+ * Backport Fix circular require warning in belongs_to.rb [#8601] by [@tagliala]
20
+
21
+ ## 3.2.5 [☰](https://github.com/activeadmin/activeadmin/compare/v3.2.4..v3.2.5)
22
+
23
+ ### Enhancements
24
+
25
+ * Backport Add favicon to template app to fix Rails 7.2 test suite run [#8468] by [@mgrunberg]
26
+ * Backport Use attribute_types instead of columns_hash to determine type [#8469] by [@mgrunberg]
27
+ * Backport Optimize count query for pagination_total: false option [#8470] by [@mgrunberg]
28
+
29
+ ### Bug Fixes
30
+
31
+ * Restore inner span tag to form inputs legend [#8467] by [@denisahearn]
32
+
5
33
  ## 3.2.4 [☰](https://github.com/activeadmin/activeadmin/compare/v3.2.3..v3.2.4)
6
34
 
7
35
  ### Enhancements
@@ -944,6 +972,18 @@ Please check [0-6-stable] for previous changes.
944
972
  [#8412]: https://github.com/activeadmin/activeadmin/pull/8412
945
973
  [#8434]: https://github.com/activeadmin/activeadmin/pull/8434
946
974
  [#8446]: https://github.com/activeadmin/activeadmin/pull/8446
975
+ [#8467]: https://github.com/activeadmin/activeadmin/pull/8467
976
+ [#8468]: https://github.com/activeadmin/activeadmin/pull/8468
977
+ [#8469]: https://github.com/activeadmin/activeadmin/pull/8469
978
+ [#8470]: https://github.com/activeadmin/activeadmin/pull/8470
979
+ [#8548]: https://github.com/activeadmin/activeadmin/pull/8548
980
+ [#8551]: https://github.com/activeadmin/activeadmin/pull/8551
981
+ [#8556]: https://github.com/activeadmin/activeadmin/pull/8556
982
+ [#8596]: https://github.com/activeadmin/activeadmin/pull/8596
983
+ [#8601]: https://github.com/activeadmin/activeadmin/pull/8601
984
+ [#8614]: https://github.com/activeadmin/activeadmin/pull/8614
985
+ [#8650]: https://github.com/activeadmin/activeadmin/pull/8650
986
+ [#8652]: https://github.com/activeadmin/activeadmin/pull/8652
947
987
 
948
988
  [@1000ship]: https://github.com/1000ship
949
989
  [@5t111111]: https://github.com/5t111111
@@ -972,6 +1012,7 @@ Please check [0-6-stable] for previous changes.
972
1012
  [@craigmcnamara]: https://github.com/craigmcnamara
973
1013
  [@DanielHeath]: https://github.com/DanielHeath
974
1014
  [@deivid-rodriguez]: https://github.com/deivid-rodriguez
1015
+ [@denisahearn]: https://github.com/denisahearn
975
1016
  [@dennisvdvliet]: https://github.com/dennisvdvliet
976
1017
  [@dhyegofernando]: https://github.com/dhyegofernando
977
1018
  [@dkniffin]: https://github.com/dkniffin
@@ -1023,6 +1064,7 @@ Please check [0-6-stable] for previous changes.
1023
1064
  [@Looooong]: https://github.com/Looooong
1024
1065
  [@lubosch]: https://github.com/lubosch
1025
1066
  [@markstory]: https://github.com/markstory
1067
+ [@mattbrictson]: https://github.com/mattbrictson
1026
1068
  [@mauriciopasquier]: https://github.com/mauriciopasquier
1027
1069
  [@mconiglio]: https://github.com/mconiglio
1028
1070
  [@mgrunberg]: https://github.com/mgrunberg
@@ -95,7 +95,7 @@ module ActiveAdmin
95
95
  contents = without_wrapper { inputs(options, &form_block) }
96
96
  contents ||= "".html_safe
97
97
 
98
- js = new_record ? js_for_has_many(options[:class], &form_block) : ""
98
+ js = new_record ? js_for_has_many(&form_block) : ""
99
99
  contents << js
100
100
  end
101
101
 
@@ -159,14 +159,13 @@ module ActiveAdmin
159
159
  end
160
160
 
161
161
  # Capture the ADD JS
162
- def js_for_has_many(class_string, &form_block)
162
+ def js_for_has_many(&form_block)
163
163
  assoc_name = assoc_klass.model_name
164
- placeholder = "NEW_#{assoc_name.to_s.underscore.upcase.gsub(/\//, '_')}_RECORD"
165
- opts = {
164
+ placeholder = "NEW_#{assoc_name.to_s.underscore.upcase.tr('/', '_')}_RECORD"
165
+ opts = options.merge(
166
166
  for: [assoc, assoc_klass.new],
167
- class: class_string,
168
167
  for_options: { child_index: placeholder }
169
- }
168
+ )
170
169
  html = template.capture { __getobj__.send(:inputs_for_nested_attributes, opts, &form_block) }
171
170
  text = new_record.is_a?(String) ? new_record : I18n.t("active_admin.has_many_new", model: assoc_name.human)
172
171
 
@@ -15,9 +15,7 @@ module ActiveAdmin
15
15
  if searchable_has_many_through?
16
16
  "#{reflection.through_reflection.name}_#{reflection.foreign_key}"
17
17
  else
18
- name = method.to_s
19
- name.concat "_#{reflection.association_primary_key}" if reflection_searchable?
20
- name
18
+ reflection_searchable? ? "#{method}_#{reflection.association_primary_key}" : method.to_s
21
19
  end
22
20
  end
23
21
 
@@ -1,5 +1,4 @@
1
1
  # frozen_string_literal: true
2
- require "active_admin/resource"
3
2
 
4
3
  module ActiveAdmin
5
4
  class Resource
@@ -61,7 +61,7 @@ module ActiveAdmin
61
61
  def self.wrap!(parent, name)
62
62
  ::Class.new parent do
63
63
  delegate :reorder, :page, :current_page, :total_pages, :limit_value,
64
- :total_count, :total_pages, :offset, :to_key, :group_values,
64
+ :total_count, :offset, :to_key, :group_values,
65
65
  :except, :find_each, :ransack, to: :object
66
66
 
67
67
  define_singleton_method(:name) { name }
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
  module ActiveAdmin
3
- VERSION = "3.2.4"
3
+ VERSION = "3.3.0"
4
4
  end
@@ -108,8 +108,8 @@ module ActiveAdmin
108
108
  when TrueClass, FalseClass
109
109
  true
110
110
  else
111
- if resource.class.respond_to? :columns_hash
112
- column = resource.class.columns_hash[attr.to_s] and column.type == :boolean
111
+ if resource.class.respond_to? :attribute_types
112
+ resource.class.attribute_types[attr.to_s].is_a?(ActiveModel::Type::Boolean)
113
113
  end
114
114
  end
115
115
  end
@@ -127,7 +127,7 @@ module ActiveAdmin
127
127
  html_options[:class] ||= "inputs"
128
128
  legend = args.shift if args.first.is_a?(::String)
129
129
  legend = html_options.delete(:name) if html_options.key?(:name)
130
- legend_tag = legend ? helpers.tag.legend(legend, class: "fieldset-title") : ""
130
+ legend_tag = legend ? helpers.tag.legend(helpers.tag.span(legend), class: "fieldset-title") : ""
131
131
  fieldset_attrs = tag_attributes html_options
132
132
  @opening_tag = "<fieldset #{fieldset_attrs}>#{legend_tag}<ol>"
133
133
  @closing_tag = "</ol></fieldset>"
@@ -103,7 +103,10 @@ module ActiveAdmin
103
103
  # you pass in the :total_pages option. We issue a query to determine
104
104
  # if there is another page or not, but the limit/offset make this
105
105
  # query fast.
106
- offset = collection.offset(collection.current_page * collection.limit_value).limit(1).count
106
+ offset_scope = collection.offset(collection.current_page * collection.limit_value)
107
+ # Support array collections. Kaminari::PaginatableArray does not respond to except
108
+ offset_scope = offset_scope.except(:select, :order) if offset_scope.respond_to?(:except)
109
+ offset = offset_scope.limit(1).count
107
110
  options[:total_pages] = collection.current_page + offset
108
111
  options[:right] = 0
109
112
  end
@@ -291,9 +291,14 @@ module ActiveAdmin
291
291
  end
292
292
 
293
293
  # Display a column for the id
294
- def id_column
294
+ def id_column(*args)
295
295
  raise "#{resource_class.name} has no primary_key!" unless resource_class.primary_key
296
- column(resource_class.human_attribute_name(resource_class.primary_key), sortable: resource_class.primary_key) do |resource|
296
+
297
+ options = args.extract_options!
298
+ title = args[0].presence || resource_class.human_attribute_name(resource_class.primary_key)
299
+ sortable = options.fetch(:sortable, resource_class.primary_key)
300
+
301
+ column(title, sortable: sortable) do |resource|
297
302
  if controller.action_methods.include?("show")
298
303
  link_to resource.id, resource_path(resource), class: "resource_id_link"
299
304
  elsif controller.action_methods.include?("edit")
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: activeadmin
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.2.4
4
+ version: 3.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Charles Maresh
@@ -15,7 +15,7 @@ authors:
15
15
  autorequire:
16
16
  bindir: bin
17
17
  cert_chain: []
18
- date: 2024-08-24 00:00:00.000000000 Z
18
+ date: 2025-03-08 00:00:00.000000000 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  name: arbre
@@ -533,7 +533,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
533
533
  - !ruby/object:Gem::Version
534
534
  version: '0'
535
535
  requirements: []
536
- rubygems_version: 3.5.11
536
+ rubygems_version: 3.5.22
537
537
  signing_key:
538
538
  specification_version: 4
539
539
  summary: Active Admin is a Ruby on Rails plugin for generating administration style