avo 3.6.3 → 3.7.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: 0c1a1850dcbe5a9b1d2756241fe2983fb8d89a1dfecffb99bedefdb5d1cf93f9
4
- data.tar.gz: a246d51c7555b95a849077fb5a727751c0def5f08dd18b92ee559c591404177e
3
+ metadata.gz: 0eccb23370cf981398626b999f8f330adb6574025cf3ebc5280db1e003d5be84
4
+ data.tar.gz: 51b8e80d74267ad7a7c4d4207b0290c45a439c96d184e0489b3870ca8d74d809
5
5
  SHA512:
6
- metadata.gz: 837aecd1b17eb2cd2b20448ee9826ea82ad72c6dbc754bf37dbf797f3f72be54c88b97b8efe70991ab00a6bc8a5e129caed5fff2fd97f8dfe22c4087380032d2
7
- data.tar.gz: caa6839f4f059e8e2ee596f1df9b8a02780c1b59dc5f540a2963305e6cfd00f811850157d550a200808b2b98680ff992b9144242db36c8860d0f0a3973597374
6
+ metadata.gz: f5aa905525606ec8fac630fec53aa11ab66cf1e1a6dadb47064bc9cb3083fb0804f7eef1e3335a5960500dcbbd33fd63474b8ca9294b2d18baa8133ced753804
7
+ data.tar.gz: 0cccbeb4c71c3ebab915444b06bb9c6faf8e0bd057eea028c21b4067e0d2a475b5bb0cf5297ffcf9f558b5fb3cdcda4034806581f16b0f0d6a00f1eb4bfd3dd3
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- avo (3.6.3)
4
+ avo (3.7.0)
5
5
  actionview (>= 6.1)
6
6
  active_link_to
7
7
  activerecord (>= 6.1)
@@ -7252,6 +7252,11 @@ tag.tagify__tag{
7252
7252
  margin-right:1.5rem
7253
7253
  }
7254
7254
 
7255
+ .mx-auto{
7256
+ margin-left:auto;
7257
+ margin-right:auto
7258
+ }
7259
+
7255
7260
  .my-0{
7256
7261
  margin-top:0px;
7257
7262
  margin-bottom:0px
@@ -7791,6 +7796,10 @@ tag.tagify__tag{
7791
7796
  max-width:32rem
7792
7797
  }
7793
7798
 
7799
+ .max-w-screen-xl{
7800
+ max-width:1280px
7801
+ }
7802
+
7794
7803
  .max-w-xs{
7795
7804
  max-width:20rem
7796
7805
  }
@@ -11082,6 +11091,17 @@ trix-editor {
11082
11091
  }
11083
11092
  }
11084
11093
 
11094
+ .rtl\:space-x-reverse:where([dir="rtl"], [dir="rtl"] *) > :not([hidden]) ~ :not([hidden]){
11095
+ --tw-space-x-reverse:1
11096
+ }
11097
+
11098
+ @media (prefers-color-scheme: dark){
11099
+ .dark\:bg-gray-900{
11100
+ --tw-bg-opacity:1;
11101
+ background-color:rgb(23 25 28 / var(--tw-bg-opacity))
11102
+ }
11103
+ }
11104
+
11085
11105
  @media print{
11086
11106
  .print\:hidden{
11087
11107
  display:none
@@ -1,5 +1,5 @@
1
- <div class="space-x-2 flex flex-row justify-between">
1
+ <%= content_tag :div, class: "space-x-2 flex flex-row justify-between ml-2 has-record-selector:ml-0" do %>
2
2
  <% @resource.render_row_controls(item: singular_resource_name).each do |control| %>
3
3
  <%= render_control control %>
4
4
  <% end %>
5
- </div>
5
+ <% end %>
@@ -4,7 +4,9 @@ class Avo::Index::ResourceTableComponent < Avo::BaseComponent
4
4
  include Avo::ApplicationHelper
5
5
  attr_reader :pagy, :query
6
6
 
7
- def before_render = cache_table_rows
7
+ def before_render
8
+ @header_fields, @table_row_components = cache_table_rows
9
+ end
8
10
 
9
11
  def initialize(resources: nil, resource: nil, reflection: nil, parent_record: nil, parent_resource: nil, pagy: nil, query: nil, actions: nil)
10
12
  @resources = resources
@@ -45,33 +47,33 @@ class Avo::Index::ResourceTableComponent < Avo::BaseComponent
45
47
  def cache_table_rows
46
48
  # Cache the execution of the following block if caching is enabled in Avo configuration
47
49
  cache_if Avo.configuration.cache_resources_on_index_view, @resource.cache_hash(@parent_record), expires_in: 1.day do
48
- # Initialize arrays to hold header fields and table row components
49
- @header_fields = []
50
- @table_row_components = []
51
-
52
- generate_table_row_components
53
-
54
- # Remove duplicate header fields based on table_header_label
55
- @header_fields.uniq!(&:table_header_label)
50
+ header_fields, table_row_components = generate_table_row_components
56
51
 
57
52
  # Create an array of header field labels used for each row to render values on the right column
58
- @header_fields_ids = @header_fields.map(&:table_header_label)
53
+ header_fields_ids = header_fields.map(&:table_header_label)
59
54
 
60
55
  # Assign header field IDs to each TableRowComponent
61
56
  # We assign it here because only complete header fields array after last table row.
62
- @table_row_components.map { |table_row_component| table_row_component.header_fields = @header_fields_ids }
57
+ table_row_components.map { |table_row_component| table_row_component.header_fields = header_fields_ids }
58
+
59
+ # Return header fields and table row components
60
+ return [header_fields, table_row_components]
63
61
  end
64
62
  end
65
63
 
66
64
  def generate_table_row_components
65
+ # Initialize arrays to hold header fields and table row components
66
+ header_fields = []
67
+ table_row_components = []
68
+
67
69
  # Loop through each resource in @resources
68
70
  @resources.each do |resource|
69
71
  # Get fields for the current resource and concat them to the @header_fields
70
72
  row_fields = resource.get_fields(reflection: @reflection, only_root: true)
71
- @header_fields.concat row_fields
73
+ header_fields.concat row_fields
72
74
 
73
75
  # Create a TableRowComponent instance for the resource and add it to @table_row_components
74
- @table_row_components << Avo::Index::TableRowComponent.new(
76
+ table_row_components << Avo::Index::TableRowComponent.new(
75
77
  resource: resource,
76
78
  fields: row_fields,
77
79
  reflection: @reflection,
@@ -80,5 +82,10 @@ class Avo::Index::ResourceTableComponent < Avo::BaseComponent
80
82
  actions: @actions
81
83
  )
82
84
  end
85
+
86
+ # Remove duplicate header fields based on table_header_label
87
+ header_fields.uniq!(&:table_header_label)
88
+
89
+ [header_fields, table_row_components]
83
90
  end
84
91
  end
@@ -1,4 +1,5 @@
1
1
  <%= content_tag :div,
2
+ class: class_names('has-record-selector': @resource.record_selector),
2
3
  data: {
3
4
  component_name: self.class.to_s.underscore,
4
5
  model_name: @resource.model_name.to_s,
@@ -23,7 +23,7 @@ module Avo
23
23
 
24
24
  # Identify if field is bonded to a rich text model attribute
25
25
  def is_action_text?
26
- return false if record.nil? || !record.respond_to?(id)
26
+ return false if !defined?(ActionText::RichText) || record.nil? || !record.respond_to?(id)
27
27
 
28
28
  record.send(id).is_a?(ActionText::RichText)
29
29
  end
data/lib/avo/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Avo
2
- VERSION = "3.6.3" unless const_defined?(:VERSION)
2
+ VERSION = "3.7.0" unless const_defined?(:VERSION)
3
3
  end
@@ -10733,6 +10733,10 @@ trix-editor {
10733
10733
  width:100%
10734
10734
  }
10735
10735
 
10736
+ .has-record-selector .has-record-selector\:ml-0{
10737
+ margin-left:0px
10738
+ }
10739
+
10736
10740
  @media (min-width: 495px){
10737
10741
  .xs\:grid-cols-2{
10738
10742
  grid-template-columns:repeat(2, minmax(0, 1fr))
data/tailwind.preset.js CHANGED
@@ -147,9 +147,11 @@ module.exports = {
147
147
  },
148
148
  }
149
149
 
150
+ addUtilities(newUtilities, ['group-hover'])
151
+
150
152
  // Add has-sidebar variant to make it easier to target fields in panels and use the full-width
151
153
  addVariant('has-sidebar', '.has-sidebar & ')
152
- addUtilities(newUtilities, ['group-hover'])
154
+ addVariant('has-record-selector', '.has-record-selector & ')
153
155
  }),
154
156
  ],
155
157
  }
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: avo
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.6.3
4
+ version: 3.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Adrian Marin
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2024-05-01 00:00:00.000000000 Z
13
+ date: 2024-05-07 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: activerecord