Class: FlexiAdmin::Components::Resources::BulkAction::ModalComponent

Inherits:
FlexiAdmin::Components::Resource::FormComponent show all
Extended by:
Helpers::ActionButtonHelper
Includes:
FlexiAdmin::Components::Resource::FormMixin
Defined in:
lib/flexi_admin/components/resources/bulk_action/modal_component.rb

Class Attribute Summary collapse

Instance Attribute Summary collapse

Attributes included from FlexiAdmin::Components::Resource::FormMixin

#disabled, #inline, #parent_resource, #resource

Attributes inherited from FlexiAdmin::Components::Resource::FormComponent

#resource

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Helpers::ActionButtonHelper

button, button_icon, button_icon_class, button_text, title, title_text

Methods included from FlexiAdmin::Components::Resource::FormMixin

#button_select_field, #checkbox_field, #checkbox_field_tag, #custom_field, #date_field, #datetime_field, #header, #hidden_field, #html_field, #number_field, #select_field, #submit, #text_field, #text_field_tag, #with_resource

Methods included from Helpers::ResourceHelper

#autocomplete_path, #bulk_action_path, #datalist_path, #edit_resource_path, #paginate, #resource__path, #resource_input_name, #resource_path, #resources_path, #scope, #scope_plural, #scope_singular

Methods inherited from FlexiAdmin::Components::Resource::FormComponent

#disabled

Constructor Details

#initialize(context = nil) ⇒ ModalComponent

Returns a new instance of ModalComponent.



16
17
18
19
20
21
# File 'lib/flexi_admin/components/resources/bulk_action/modal_component.rb', line 16

def initialize(context = nil)
  @context = context

  add_context_options(@context)
  super(nil, disabled: false)
end

Class Attribute Details

.class_nameObject

Returns the value of attribute class_name.



9
10
11
# File 'lib/flexi_admin/components/resources/bulk_action/modal_component.rb', line 9

def class_name
  @class_name
end

Instance Attribute Details

#contextObject (readonly)

Returns the value of attribute context.



12
13
14
# File 'lib/flexi_admin/components/resources/bulk_action/modal_component.rb', line 12

def context
  @context
end

Class Method Details



39
40
41
# File 'lib/flexi_admin/components/resources/bulk_action/modal_component.rb', line 39

def self.modal_id
  to_s.underscore.gsub('/', '-')
end

.pathObject

/observation_images/bulk_action



34
35
36
37
# File 'lib/flexi_admin/components/resources/bulk_action/modal_component.rb', line 34

def self.path
  resource = (self.class_name&.to_s || to_s).split('::').first.underscore.gsub('/', '-')
  "/#{resource.pluralize}/bulk_action"
end

Instance Method Details

#add_context_options(context) ⇒ Object



43
44
45
46
47
48
49
50
51
52
# File 'lib/flexi_admin/components/resources/bulk_action/modal_component.rb', line 43

def add_context_options(context)
  # Means it's been already added by the parent component
  return if context.options[:title].present?

  context.options ||= {}
  context.options[:title] = self.class.title_text
  context.options[:modal_id] = self.class.modal_id
  context.options[:action_path] = self.class.path
  context.options[:class_name] = self.class.to_s
end

#form(url: self.class.path, method: :post, **html_options, &block) ⇒ Object



29
30
31
# File 'lib/flexi_admin/components/resources/bulk_action/modal_component.rb', line 29

def form(url: self.class.path, method: :post, **html_options, &block)
  super(url:, css_class: 'modalForm section', method:, **html_options, &block)
end


23
24
25
26
27
# File 'lib/flexi_admin/components/resources/bulk_action/modal_component.rb', line 23

def modal(context, &block)
  render FlexiAdmin::Components::Resources::BulkAction::ModalComponent.new(context) do |component|
    component.with_modal_form(&block)
  end
end