avo 3.6.3 → 3.7.0

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: 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