avo 3.6.3 → 3.6.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/app/components/avo/index/resource_table_component.rb +20 -13
- data/lib/avo/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1686cd42a28d62d2877e3db2582df2ad34a6e30d27002151c1f3cc3b92490ac7
|
4
|
+
data.tar.gz: 319d4b0e6ad38d87e88379cef31c8ec650961643c5268d86b20e5579bb693b35
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6bb3637bf610b0ee8b78642685661015e26371d44e9dd7c31bf3e0796b89c9698f4e026a37f0378c4457e933a381f63040e66cd3dc55f155e7ba74e746b7b743
|
7
|
+
data.tar.gz: '081b731423609d9f8f53dd1fa1866b37674aacf3374f7911d582b426a533ee1caf3d390563c7d2807db52a58db916c6ced8099ec1d703ffc2c13c1d31882b950'
|
data/Gemfile.lock
CHANGED
@@ -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
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
data/lib/avo/version.rb
CHANGED