Sha256: d26f6f025dd660c72a0cf784a81b6c67d22fd162a4b8acdda8473d6f66971ed5
Contents?: true
Size: 1.57 KB
Versions: 2
Compression:
Stored size: 1.57 KB
Contents
# frozen_string_literal: true class Avo::Fields::HasOneField::ShowComponent < Avo::Fields::ShowComponent include Avo::ApplicationHelper include Avo::Fields::Concerns::FrameLoading def can_attach? policy_result = true if @field.present? reflection_resource = @field.target_resource if reflection_resource.present? && @resource.present? method_name = :"attach_#{@field.id}?" if @resource.authorization.has_method?(method_name, raise_exception: false) policy_result = @resource.authorization.authorize_action(method_name, raise_exception: false) end end end policy_result end def attach_path helpers.avo.resources_associations_new_path(@resource.singular_model_key, @resource.record.to_param, @field.id) end def can_see_the_create_button? create = "create_#{@field.id}?" authorization_service = @resource.authorization # By default return true if the create method is not defined for this field return true unless authorization_service.has_method?(create, raise_exception: false) authorization_service.authorize_action(create, raise_exception: false) end def create_path association_id = @field.resource.model_class._reflections[@field.id.to_s].inverse_of.name args = { via_relation: association_id, via_relation_class: @resource.model_class.to_s, via_resource_class: @resource.class, via_record_id: @resource.record.to_param, via_association_type: :has_one } helpers.new_resource_path(resource: @field.target_resource, **args) end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
avo-3.6.1 | app/components/avo/fields/has_one_field/show_component.rb |
avo-3.6.0 | app/components/avo/fields/has_one_field/show_component.rb |