activeadmin 3.2.2 → 3.2.5

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: a0548655f225688960699146ba45dcacd0b22375225cd51a835e0226a9347c0a
4
- data.tar.gz: accc8e86bd98b8c7d2f1dca258f528e6a36941e3c7cc8633605cfbb05fd652d6
3
+ metadata.gz: 99b9db7d0e925b5764b5141008734fa147cbb742e0f3e62476a7dcc8fb1f0485
4
+ data.tar.gz: b0f5aa9c2dc4c1923e7cac2b893a0a2d871ddb67cdec7183dc7886b5adea97e6
5
5
  SHA512:
6
- metadata.gz: 9fdd7e6072424d783695be0cf5887800d894bd83a18511177d06bd16604b99b04ae491bcd281efb4acffd425b95fc747e2ede748574c07adc507a18380096184
7
- data.tar.gz: 3756bf37298eab6a6227e56a76cf4ebfa4563f718a9f8c67feeb34446c56e1b2bce8243cbf5f267801e3aa42ff12f56acf01e37bef409a80a1f6180072c2aa38
6
+ metadata.gz: efa9d0ded1ac54f680ab3409019cf425a578d18bd89c73b4a39cc219cbbb50e25abeb294d771724394648432704e5bbcb10729ea5aa4e89150c00c3de876755d
7
+ data.tar.gz: c85cd6bfc4f4cbaa4345d960c8c797ab4066d58f131116b79100195edd6e269ac8f1867441442801c7a7eea4cefebe36506db373284d28b7ee48fa826d05bdcc
data/CHANGELOG.md CHANGED
@@ -2,6 +2,38 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## 3.2.5 [☰](https://github.com/activeadmin/activeadmin/compare/v3.2.4..v3.2.5)
6
+
7
+ ### Enhancements
8
+
9
+ * Backport Add favicon to template app to fix Rails 7.2 test suite run [#8468] by [@mgrunberg]
10
+ * Backport Use attribute_types instead of columns_hash to determine type [#8469] by [@mgrunberg]
11
+ * Backport Optimize count query for pagination_total: false option [#8470] by [@mgrunberg]
12
+
13
+ ### Bug Fixes
14
+
15
+ * Restore inner span tag to form inputs legend [#8467] by [@denisahearn]
16
+
17
+ ## 3.2.4 [☰](https://github.com/activeadmin/activeadmin/compare/v3.2.3..v3.2.4)
18
+
19
+ ### Enhancements
20
+
21
+ * Test against Rails 7.2 [#8434] by [@mgrunberg]
22
+
23
+ ### Bug Fixes
24
+
25
+ * Backport Improve form f.inputs attributes rendering [#8446] by [@amiel]
26
+
27
+ ## 3.2.3 [☰](https://github.com/activeadmin/activeadmin/compare/v3.2.2..v3.2.3)
28
+
29
+ ### Enhancements
30
+
31
+ * Backport better implementation of counter-cache-column check [#8412] by [@plashchynski]
32
+
33
+ ### Bug Fixes
34
+
35
+ * Remove deprecation warnings when building with dart sass >= 1.77.7 [#8405] by [@mgrunberg]
36
+
5
37
  ## 3.2.2 [☰](https://github.com/activeadmin/activeadmin/compare/v3.2.1..v3.2.2)
6
38
 
7
39
  ### Security Fixes
@@ -920,6 +952,14 @@ Please check [0-6-stable] for previous changes.
920
952
  [#8311]: https://github.com/activeadmin/activeadmin/pull/8311
921
953
  [#8329]: https://github.com/activeadmin/activeadmin/pull/8329
922
954
  [#8349]: https://github.com/activeadmin/activeadmin/pull/8349
955
+ [#8405]: https://github.com/activeadmin/activeadmin/pull/8405
956
+ [#8412]: https://github.com/activeadmin/activeadmin/pull/8412
957
+ [#8434]: https://github.com/activeadmin/activeadmin/pull/8434
958
+ [#8446]: https://github.com/activeadmin/activeadmin/pull/8446
959
+ [#8467]: https://github.com/activeadmin/activeadmin/pull/8467
960
+ [#8468]: https://github.com/activeadmin/activeadmin/pull/8468
961
+ [#8469]: https://github.com/activeadmin/activeadmin/pull/8469
962
+ [#8470]: https://github.com/activeadmin/activeadmin/pull/8470
923
963
 
924
964
  [@1000ship]: https://github.com/1000ship
925
965
  [@5t111111]: https://github.com/5t111111
@@ -948,6 +988,7 @@ Please check [0-6-stable] for previous changes.
948
988
  [@craigmcnamara]: https://github.com/craigmcnamara
949
989
  [@DanielHeath]: https://github.com/DanielHeath
950
990
  [@deivid-rodriguez]: https://github.com/deivid-rodriguez
991
+ [@denisahearn]: https://github.com/denisahearn
951
992
  [@dennisvdvliet]: https://github.com/dennisvdvliet
952
993
  [@dhyegofernando]: https://github.com/dhyegofernando
953
994
  [@dkniffin]: https://github.com/dkniffin
@@ -1014,6 +1055,7 @@ Please check [0-6-stable] for previous changes.
1014
1055
  [@orkhan]: https://github.com/orkhan
1015
1056
  [@panasyuk]: https://github.com/panasyuk
1016
1057
  [@PChambino]: https://github.com/PChambino
1058
+ [@plashchynski]: https://github.com/plashchynski
1017
1059
  [@potatosalad]: https://github.com/potatosalad
1018
1060
  [@pranas]: https://github.com/pranas
1019
1061
  [@ray-curran]: https://github.com/ray-curran
data/README.md CHANGED
@@ -85,8 +85,8 @@ Thanks to [Tidelift][tidelift] and all our Tidelift subscribers.
85
85
  Thanks to [Open Collective][opencollective contributors] and all our Open Collective contributors.
86
86
 
87
87
  [Arbre]: https://github.com/activeadmin/arbre
88
- [Devise]: https://github.com/plataformatec/devise
89
- [Formtastic]: https://github.com/justinfrench/formtastic
88
+ [Devise]: https://github.com/heartcombo/devise
89
+ [Formtastic]: https://github.com/formtastic/formtastic
90
90
  [Inherited Resources]: https://github.com/activeadmin/inherited_resources
91
91
  [Kaminari]: https://github.com/kaminari/kaminari
92
92
  [Ransack]: https://github.com/activerecord-hackery/ransack
@@ -220,9 +220,8 @@ form {
220
220
  /* Buttons */
221
221
 
222
222
  input[type=submit], input[type=button], button {
223
- @include dark-button;
224
223
  cursor: pointer;
225
-
224
+ @include dark-button;
226
225
  }
227
226
 
228
227
  .buttons, .actions {
@@ -2,10 +2,10 @@
2
2
  .comments {
3
3
 
4
4
  .active_admin_comment {
5
- @include clearfix;
6
5
  margin-top: 10px;
7
6
  margin-bottom: 20px;
8
7
  max-width: 700px;
8
+ @include clearfix;
9
9
 
10
10
  .active_admin_comment_meta {
11
11
  width: 130px;
@@ -3,9 +3,12 @@
3
3
 
4
4
  .dropdown_menu_button {
5
5
  @include light-button;
6
- position: relative;
7
- padding-right: 22px !important;
8
- cursor: pointer;
6
+
7
+ & {
8
+ position: relative;
9
+ padding-right: 22px !important;
10
+ cursor: pointer;
11
+ }
9
12
 
10
13
  &:before {
11
14
  content: ' ';
@@ -139,11 +142,11 @@
139
142
  }
140
143
 
141
144
  &:last-child {
145
+ border: none;
142
146
  a {
143
147
  border-bottom-left-radius: 2px;
144
148
  border-bottom-right-radius: 2px;
145
149
  }
146
- border: none;
147
150
  }
148
151
  }
149
152
  }
@@ -38,8 +38,11 @@
38
38
  margin-left: 4px;
39
39
  select {
40
40
  @include light-button;
41
- @include rounded(0px);
42
- padding: 1px 5px;
41
+
42
+ & {
43
+ @include rounded(0px);
44
+ padding: 1px 5px;
45
+ }
43
46
  }
44
47
  }
45
48
 
@@ -1,6 +1,6 @@
1
1
  .table_tools {
2
- @include clearfix;
3
2
  margin-bottom: 16px;
3
+ @include clearfix;
4
4
  }
5
5
 
6
6
  .table_tools .dropdown_menu {
@@ -9,11 +9,14 @@
9
9
 
10
10
  a.table_tools_button, .table_tools .dropdown_menu_button {
11
11
  @include light-button;
12
- @include gradient(#FFFFFF, #F0F0F0);
13
- @include border-colors(#d9d9d9, #d0d0d0, #c5c5c5);
14
- font-size: 0.9em;
15
- padding: 4px 14px 4px;
16
- margin: 0;
12
+
13
+ & {
14
+ @include gradient(#FFFFFF, #F0F0F0);
15
+ @include border-colors(#d9d9d9, #d0d0d0, #c5c5c5);
16
+ font-size: 0.9em;
17
+ padding: 4px 14px 4px;
18
+ margin: 0;
19
+ }
17
20
 
18
21
  &:not(.disabled) {
19
22
  &:hover {
@@ -28,13 +28,16 @@
28
28
 
29
29
  a {
30
30
  @include light-button;
31
- @include gradient(#FFFFFF, #F0F0F0);
32
- @include border-colors(#d9d9d9, #d0d0d0, #c5c5c5);
33
- text-decoration: none;
34
- border-radius: 0;
35
- border-width: 1px .5px 1px .5px;
36
- margin-right: 0;
37
- padding: 4px 14px 4px;
31
+
32
+ & {
33
+ @include gradient(#FFFFFF, #F0F0F0);
34
+ @include border-colors(#d9d9d9, #d0d0d0, #c5c5c5);
35
+ text-decoration: none;
36
+ border-radius: 0;
37
+ border-width: 1px .5px 1px .5px;
38
+ margin-right: 0;
39
+ padding: 4px 14px 4px;
40
+ }
38
41
 
39
42
  &:not(.disabled) {
40
43
  &:hover {
@@ -17,13 +17,13 @@
17
17
  }
18
18
 
19
19
  @mixin default-button {
20
- @include basic-button;
21
20
  @include gradient(lighten($primary-color, 15%), darken($primary-color, 12%));
22
21
  @include text-shadow(#000);
23
22
  box-shadow: 0 1px 1px rgba(0,0,0,0.10), 0 1px 0 0px rgba(255,255,255, 0.2) inset;
24
23
  border: solid 1px #484e53;
25
24
  @include border-colors(#616a71, #484e53, #363b3f);
26
25
  color: #efefef;
26
+ @include basic-button;
27
27
 
28
28
  &:not(.disabled) {
29
29
  &:hover{
@@ -38,13 +38,13 @@
38
38
  }
39
39
 
40
40
  @mixin light-button {
41
- @include basic-button;
42
41
  @include gradient(#FFFFFF, #E7E7E7);
43
42
  box-shadow: 0 1px 1px rgba(0,0,0,0.10), 0 1px 0 0 rgba(255,255,255, 0.8) inset;
44
43
  border: solid 1px #c7c7c7;
45
44
  @include border-colors(#d3d3d3, #c7c7c7, #c2c2c2);
46
45
  @include text-shadow;
47
46
  color: $primary-color;
47
+ @include basic-button;
48
48
 
49
49
  &:not(.disabled) {
50
50
  &:hover {
@@ -28,13 +28,13 @@ body.logged_out {
28
28
  @include no-shadow;
29
29
  background: none;
30
30
  padding: 0;
31
+ margin-bottom: 0;
31
32
  li { padding: 10px 0; }
32
33
 
33
34
  input[type=text], input[type=email], input[type=password] {
34
35
  width: 70%;
35
36
  }
36
37
  &.buttons { margin-left: 20%; }
37
- margin-bottom: 0;
38
38
  }
39
39
  }
40
40
 
@@ -10,10 +10,10 @@
10
10
 
11
11
  // -------------------------------------- Index Footer (Under Table)
12
12
  #index_footer {
13
- @include clearfix;
14
13
  padding-top: 5px;
15
14
  text-align: right;
16
15
  font-size: 0.85em;
16
+ @include clearfix;
17
17
  }
18
18
 
19
19
  .index_content { clear: both; }
@@ -1,6 +1,5 @@
1
1
  #title_bar {
2
2
  @include section-header;
3
- @include clearfix;
4
3
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.37);
5
4
  display: table;
6
5
  border-bottom-color: #EEE;
@@ -9,6 +8,7 @@
9
8
  margin: 0;
10
9
  padding: 10px $horizontal-page-margin;
11
10
  z-index: 800;
11
+ @include clearfix;
12
12
 
13
13
  #titlebar_left, #titlebar_right {
14
14
  height: 50px;
@@ -32,8 +32,11 @@
32
32
  span.action_item {
33
33
  & > a, & > .dropdown_menu > a {
34
34
  @include light-button;
35
- padding: 12px 17px 10px;
36
- margin: 0px;
35
+
36
+ & {
37
+ padding: 12px 17px 10px;
38
+ margin: 0px;
39
+ }
37
40
  }
38
41
  }
39
42
  }
@@ -42,7 +42,7 @@ module ActiveAdmin
42
42
  end
43
43
 
44
44
  def format_action(action, subject)
45
- # https://github.com/varvet/pundit/blob/master/lib/generators/pundit/install/templates/application_policy.rb
45
+ # https://github.com/varvet/pundit/blob/main/lib/generators/pundit/install/templates/application_policy.rb
46
46
  case action
47
47
  when Auth::READ then subject.is_a?(Class) ? :index? : :show?
48
48
  when Auth::DESTROY then subject.is_a?(Class) ? :destroy_all? : :destroy?
@@ -37,7 +37,14 @@ module ActiveAdmin
37
37
  end
38
38
 
39
39
  def counter_cache_col?(c)
40
- c.name.end_with?("_count")
40
+ # This helper is called inside a loop. Let's memoize the result.
41
+ @counter_cache_columns ||= begin
42
+ resource_class.reflect_on_all_associations(:has_many)
43
+ .select(&:has_cached_counter?)
44
+ .map(&:counter_cache_column)
45
+ end
46
+
47
+ @counter_cache_columns.include?(c.name)
41
48
  end
42
49
 
43
50
  def filtered_col?(c)
@@ -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.2"
3
+ VERSION = "3.2.5"
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,12 +127,24 @@ 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 ? "<legend><span>#{ERB::Util.html_escape(legend)}</span></legend>" : ""
131
- fieldset_attrs = html_options.map { |k, v| %Q{#{k}="#{v}"} }.join(" ")
130
+ legend_tag = legend ? helpers.tag.legend(helpers.tag.span(legend), class: "fieldset-title") : ""
131
+ fieldset_attrs = tag_attributes html_options
132
132
  @opening_tag = "<fieldset #{fieldset_attrs}>#{legend_tag}<ol>"
133
133
  @closing_tag = "</ol></fieldset>"
134
134
  super(*(args << html_options), &block)
135
135
  end
136
+
137
+ private
138
+
139
+ def tag_attributes(html_options)
140
+ if Rails::VERSION::MAJOR <= 6
141
+ # Reimplement tag.attributes to backport support for Rails 6.1.
142
+ # TODO: this can be removed when support for Rails 6.x is dropped
143
+ helpers.tag.tag_options(html_options.to_h).to_s.strip.html_safe
144
+ else
145
+ helpers.tag.attributes html_options
146
+ end
147
+ end
136
148
  end
137
149
 
138
150
  class SemanticActionsProxy < FormtasticProxy
@@ -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
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.2
4
+ version: 3.2.5
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-05-31 00:00:00.000000000 Z
18
+ date: 2024-09-05 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.16
537
537
  signing_key:
538
538
  specification_version: 4
539
539
  summary: Active Admin is a Ruby on Rails plugin for generating administration style