avo 3.5.7 → 3.6.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: 69bdf3209c63771bace6e51362f1d569640f62f06e997dd0b5d8c2a605619846
4
- data.tar.gz: d78d3c50bab5be7bac39e2f1ec5ba99db8f6aaf8c563cf9210445f92afa18678
3
+ metadata.gz: b24b80baf28fe7848e431079b17b9384ad5f4369e65a4c81bce9f1af68776d1f
4
+ data.tar.gz: '08b79a4f7fe3c462937099421fc4d90c5b02ce54a6903eaa5cf5b525e56d9f8e'
5
5
  SHA512:
6
- metadata.gz: 8c740f0a1453120877a435fa43d137a877d2e023d9514cda7f4a09080cec7eb7ec2e1d47067246bf2a8a0820a05c4c87be3af22e64711b00bfc1c4e4cd104d24
7
- data.tar.gz: 3a4c45b65648541f82cd350bf5fae3275041c82383967b99824f4952428f7b2946698057a7d99c77071ba8c57f0609f534c55fb4137643be1b020bd8f8c904bb
6
+ metadata.gz: 71eaebcef5037f4ad99a49c8da1231c40e9aee6279cffc7083ba9f4f16ef344ccfeac970bbbe5358dc576703cb1196180338c18b0b788c1c50ab5c22f09ddc8a
7
+ data.tar.gz: c5b562841cc86aa1063e393b59a5145018808dbdb524e8e5e5c0e38b99a32893f9349b2cd286c2cded8c237379b6f065bc1b42d669bc01799d58d7aeaeeeb4b3
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- avo (3.5.7)
4
+ avo (3.6.0)
5
5
  actionview (>= 6.1)
6
6
  active_link_to
7
7
  activerecord (>= 6.1)
@@ -8222,10 +8222,6 @@ tag.tagify__tag{
8222
8222
  border-top-width:0px
8223
8223
  }
8224
8224
 
8225
- .border-solid{
8226
- border-style:solid
8227
- }
8228
-
8229
8225
  .border-dashed{
8230
8226
  border-style:dashed
8231
8227
  }
@@ -1,5 +1,5 @@
1
1
  <% if @field.value %>
2
- <turbo-frame id="<%= @field.turbo_frame %>" src="<%= @field.frame_url %>" loading=<%= turbo_frame_loading %> target="_top" class="block">
2
+ <turbo-frame id="<%= @field.turbo_frame %>" src="<%= @field.frame_url %>" loading=<%= turbo_frame_loading %> target="_top" class="block">
3
3
  <%= render(Avo::LoadingComponent.new(title: @field.name)) %>
4
4
  </turbo-frame>
5
5
  <% else %>
@@ -10,7 +10,7 @@ class Avo::Fields::HasOneField::ShowComponent < Avo::Fields::ShowComponent
10
10
  if @field.present?
11
11
  reflection_resource = @field.target_resource
12
12
  if reflection_resource.present? && @resource.present?
13
- method_name = "attach_#{@field.id}?".to_sym
13
+ method_name = :"attach_#{@field.id}?"
14
14
 
15
15
  if @resource.authorization.has_method?(method_name, raise_exception: false)
16
16
  policy_result = @resource.authorization.authorize_action(method_name, raise_exception: false)
@@ -1,3 +1,3 @@
1
- <%= field_wrapper **field_wrapper_args do %>
2
- <%= @field.label %>
1
+ <%= field_wrapper **field_wrapper_args.merge(dash_if_blank: false) do %>
2
+ <%= @field.value.nil? ? "—" : @field.label %>
3
3
  <% end %>
@@ -135,9 +135,6 @@ class Avo::Views::ResourceIndexComponent < Avo::ResourceComponent
135
135
 
136
136
  def authorized_to_search?
137
137
  # Hide the search if the authorization prevents it
138
- return true unless resource.authorization.respond_to?(:has_action_method?)
139
- return false unless resource.authorization.has_action_method?("search")
140
-
141
138
  resource.authorization.authorize_action("search", raise_exception: false)
142
139
  end
143
140
 
@@ -12,6 +12,8 @@ module Avo
12
12
  before_action :set_action, only: [:show, :handle]
13
13
  before_action :verify_authorization, only: [:show, :handle]
14
14
 
15
+ layout "avo/blank"
16
+
15
17
  def show
16
18
  # Se the view to :new so the default value gets prefilled
17
19
  @view = Avo::ViewInquirer.new("new")
@@ -51,6 +51,10 @@ module Avo
51
51
  super
52
52
  end
53
53
 
54
+ def hello
55
+ puts "Nobody tested me :("
56
+ end
57
+
54
58
  private
55
59
 
56
60
  # Get the pluralized resource name for this request
@@ -142,7 +146,13 @@ module Avo
142
146
  end
143
147
 
144
148
  def set_record
145
- @record = @resource.find_record(params[:id], query: model_scope, params: params)
149
+ id = if @resource.model_class.primary_key.is_a?(Array) && params.respond_to?(:extract_value)
150
+ params.extract_value(:id)
151
+ else
152
+ params[:id]
153
+ end
154
+
155
+ @record = @resource.find_record(id, query: model_scope, params:)
146
156
  @resource.hydrate(record: @record)
147
157
  end
148
158
 
@@ -16,6 +16,8 @@ module Avo
16
16
  before_action :authorize_attach_action, only: :new
17
17
  before_action :authorize_detach_action, only: :destroy
18
18
 
19
+ layout "avo/blank"
20
+
19
21
  def index
20
22
  @parent_resource = @resource.dup
21
23
  @resource = @related_resource
@@ -63,7 +65,7 @@ module Avo
63
65
  if reflection_class == "HasManyReflection"
64
66
  @record.send(association_name) << @attachment_record
65
67
  else
66
- @record.send("#{association_name}=", @attachment_record)
68
+ @record.send(:"#{association_name}=", @attachment_record)
67
69
  end
68
70
 
69
71
  respond_to do |format|
@@ -516,7 +516,7 @@ module Avo
516
516
  redirect_path_from_resource_option(:after_update_path) || resource_view_response_path
517
517
  end
518
518
 
519
- # Needs a different name, otwherwise, in some places, this can be called instead helpers.resource_view_path
519
+ # Requires a different/special name, otherwise, in some places, this can be called instead helpers.resource_view_path
520
520
  def resource_view_response_path
521
521
  helpers.resource_view_path(record: @record, resource: @resource)
522
522
  end
@@ -81,7 +81,7 @@ module Avo
81
81
  rescue
82
82
  end
83
83
 
84
- avo.resources_associations_index_path(parent_record.model_name.route_key, record.id, **existing_params, **args)
84
+ avo.resources_associations_index_path(parent_record.model_name.route_key, record.to_param, **existing_params, **args)
85
85
  end
86
86
 
87
87
  def resource_view_path(**args)
@@ -41,7 +41,7 @@
41
41
  </div>
42
42
 
43
43
  <% c.with_controls do %>
44
- <%= a_button 'data-action': 'click->modal#close', size: :sm, style: :outline, color: :gray do %>
44
+ <%= a_button 'data-action': 'click->modal#close', type: :button, size: :sm, style: :outline, color: :gray do %>
45
45
  <%= t('avo.cancel') %>
46
46
  <% end %>
47
47
  <%= a_button type: :submit, style: :primary, color: :green, size: :sm do %>
@@ -0,0 +1,9 @@
1
+ <%= turbo_frame_tag :alerts, class: "fixed inset-0 bottom-0 flex flex-col space-y-4 items-end justify-right px-4 py-6 sm:p-6 justify-end z-[100] pointer-events-none" do %>
2
+ <%= render Avo::FlashAlertsComponent.new flashes: flash %>
3
+ <% # In case we have other general error messages %>
4
+ <% if @errors.present? %>
5
+ <% @errors.each do |message| %>
6
+ <%= render Avo::AlertComponent.new :error, message %>
7
+ <% end %>
8
+ <% end %>
9
+ <% end %>
@@ -0,0 +1 @@
1
+ <%= turbo_frame_tag 'attach_modal' %>
@@ -51,17 +51,9 @@
51
51
  </div>
52
52
  </div>
53
53
  <%= turbo_frame_tag Avo::ACTIONS_TURBO_FRAME_ID, data: {turbo_temporary: 1} %>
54
- <%= turbo_frame_tag 'attach_modal' %>
55
- <%= turbo_frame_tag 'alerts', class: "fixed inset-0 bottom-0 flex flex-col space-y-4 items-end justify-right px-4 py-6 sm:p-6 justify-end z-[100] pointer-events-none" do %>
56
- <%= render Avo::FlashAlertsComponent.new flashes: flash %>
57
- <% # In case we have other general error messages %>
58
- <% if @errors.present? %>
59
- <% @errors.each do |message| %>
60
- <%= render Avo::AlertComponent.new :error, message %>
61
- <% end %>
62
- <% end %>
63
- <% end %>
64
- <%= render partial: "avo/partials/scripts" %>
54
+ <%= render partial: 'avo/partials/attach_modal' %>
55
+ <%= render partial: 'avo/partials/alerts' %>
56
+ <%= render partial: 'avo/partials/scripts' %>
65
57
  <!-- Avo version: <%= Avo::VERSION %> -->
66
58
  <!-- Environment: <%= Rails.env %> -->
67
59
  <!-- License ID: <%= Avo.license.id %> -->
@@ -3,5 +3,6 @@
3
3
  <html>
4
4
  <body>
5
5
  <%= yield.force_encoding('UTF-8') %>
6
+ <%= render partial: 'avo/partials/alerts' %>
6
7
  </body>
7
8
  </html>
@@ -33,7 +33,7 @@ module Avo
33
33
  related_record = related_resource.find_record value
34
34
  end
35
35
 
36
- model.public_send("#{key}=", related_record)
36
+ model.public_send(:"#{key}=", related_record)
37
37
 
38
38
  model
39
39
  end
data/lib/avo/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Avo
2
- VERSION = "3.5.7" unless const_defined?(:VERSION)
2
+ VERSION = "3.6.0" unless const_defined?(:VERSION)
3
3
  end
@@ -0,0 +1,20 @@
1
+ module Generators
2
+ module Avo
3
+ module Concerns
4
+ module OverrideController
5
+ extend ActiveSupport::Concern
6
+
7
+ def override_controller?
8
+ return false unless controller_name.in? controllers_list
9
+
10
+ say("Avo uses #{controller_class} internally, overriding it would cause malfunctions.", :red)
11
+ true
12
+ end
13
+
14
+ def controllers_list
15
+ Dir["app/controllers/avo/*.rb"].map { |file_path| File.basename(file_path, ".rb") }
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
@@ -1,16 +1,20 @@
1
1
  require_relative "named_base_generator"
2
2
  require_relative "concerns/parent_controller"
3
+ require_relative "concerns/override_controller"
3
4
 
4
5
  module Generators
5
6
  module Avo
6
7
  class ControllerGenerator < NamedBaseGenerator
7
- include Generators::Avo::Concerns::ParentController
8
+ include Concerns::ParentController
9
+ include Concerns::OverrideController
8
10
 
9
11
  source_root File.expand_path("templates", __dir__)
10
12
 
11
13
  namespace "avo:controller"
12
14
 
13
15
  def create
16
+ return if override_controller?
17
+
14
18
  template "resource/controller.tt", "app/controllers/avo/#{controller_name}.rb"
15
19
  end
16
20
 
@@ -1,10 +1,12 @@
1
1
  require_relative "named_base_generator"
2
2
  require_relative "concerns/parent_controller"
3
+ require_relative "concerns/override_controller"
3
4
 
4
5
  module Generators
5
6
  module Avo
6
7
  class ResourceGenerator < NamedBaseGenerator
7
- include Generators::Avo::Concerns::ParentController
8
+ include Concerns::ParentController
9
+ include Concerns::OverrideController
8
10
 
9
11
  source_root File.expand_path("templates", __dir__)
10
12
 
@@ -16,8 +18,10 @@ module Generators
16
18
  required: false
17
19
 
18
20
  def create
21
+ return if override_controller?
22
+
19
23
  template "resource/resource.tt", "app/avo/resources/#{resource_name}.rb"
20
- template "resource/controller.tt", "app/controllers/avo/#{controller_name}.rb"
24
+ invoke "avo:controller", [resource_name], options
21
25
  end
22
26
 
23
27
  def resource_class
@@ -4,7 +4,7 @@ module Rails
4
4
  module Generators
5
5
  class AvoResourceGenerator < ::Rails::Generators::Base
6
6
  def invoke_avo_command
7
- invoke "avo:resource", @args, {from_model_generator: true}
7
+ invoke "avo:resource", @args, {from_model_generator: true}.merge(options)
8
8
  end
9
9
  end
10
10
  end
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.5.7
4
+ version: 3.6.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-04-04 00:00:00.000000000 Z
13
+ date: 2024-04-09 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: activerecord
@@ -2126,6 +2126,8 @@ files:
2126
2126
  - app/views/avo/home/_resources.html.erb
2127
2127
  - app/views/avo/home/failed_to_load.html.erb
2128
2128
  - app/views/avo/home/index.html.erb
2129
+ - app/views/avo/partials/_alerts.html.erb
2130
+ - app/views/avo/partials/_attach_modal.html.erb
2129
2131
  - app/views/avo/partials/_branding.html.erb
2130
2132
  - app/views/avo/partials/_custom_tools_alert.html.erb
2131
2133
  - app/views/avo/partials/_footer.html.erb
@@ -2309,6 +2311,7 @@ files:
2309
2311
  - lib/generators/avo/action_generator.rb
2310
2312
  - lib/generators/avo/base_generator.rb
2311
2313
  - lib/generators/avo/card_generator.rb
2314
+ - lib/generators/avo/concerns/override_controller.rb
2312
2315
  - lib/generators/avo/concerns/parent_controller.rb
2313
2316
  - lib/generators/avo/controller_generator.rb
2314
2317
  - lib/generators/avo/dashboard_generator.rb