Module: Cocooned::Helpers::Tags::Add
- Defined in:
- lib/cocooned/helpers/tags/add.rb
Overview
Helpers to generate action triggers to add items in a nested form.
Signatures
{method}(label, form, association, options = {})
# Explicit name
{method}(form, association, options = {}) do
# Name as a block
end
{method}(form, association, options = {})
# Use default name
Parameters
‘label` is the text to be used as the link label. See the main documentation for Cocooned::Helpers::Tags for more about labelling.
‘form` is your form builder. Can be a SimpleForm::Builder, Formtastic::Builder or a standard Rails FormBuilder.
‘association` is the name of the nested association. Ex: cocooned_add_item_link “Add an item”, form, :items
Options
‘options` can be any of the following.
Association options:
-
insertion_method : the method to be used to insert new items. Can be any of ‘before`, `after`, `append`, `prepend`, `replaceWith`. Defaults to `before`
-
insertion_node : a CSS selector to match new items insertion node. Can be any CSS selector supported by ‘document.querySelector`. For compatibility with the original Cocoon:
-
‘this’ is supported as a special value to use the trigger itself as insertion node.
-
If no value is specified, the trigger’s parent will be used.
-
-
count: how many item will be inserted on click. Defaults to 1.
Rendering options:
-
partial: the nested form partial. Defaults to ‘associationassociation.singular_name_fields`.
-
form_name: name used to access the form builder in the nested form partial. Defaults to ‘:f`.
-
form_options: options to be passed to the nested form builder. Can be used to specify a wrapper for simple_form_fields if you use its Bootstrap setup, for example. No defaults.
-
locals: a hash of local variables to forward to the partial. No default.
Building options:
-
wrap_object: anything responding to ‘call` to be used to wrap the newly build item instance. Can be useful with decorators or special initialisations. No default. Ex:
cocooned_add_item_link "Add an item", form, :items, wrap_object: Proc.new { |comment| CommentDecorator.new(comment) })
-
force_non_association_create: force to build instances of the nested model without calling association build methods (‘build_association` or `association.build`). Can be usefull if, for some specific reason, you need an object to not be created on the association, for example if you did not want `after_add` callbacks to be triggered. Defaults to false.
Compatibility options:
These options are supported for backward compatibility with the original Cocoon. **Support for these options will be removed in the next major release !**.
-
insertion_traversal: a jQuery DOM traversal method name to use in combination with insertion_node to find the insertion node from the trigger. Can be any of ‘closest`, `parent`, `prev`, `next` or `siblings`. Expressed in jQuery pseudo-code, the insertion node will be determined as the result of `$(trigger).traversal(insertion_node)`.
-
render_options: A nested Hash originally used to pass locals and form builder options.
Instance Method Summary collapse
-
#cocooned_add_item_button(*args, &block) ⇒ Object
Output a button to add an item in a nested form.
-
#cocooned_add_item_link(*args, &block) ⇒ Object
Output a link to add an item in a nested form.
Instance Method Details
#cocooned_add_item_button(*args, &block) ⇒ Object
Output a button to add an item in a nested form.
Signatures
(label, form, association, = {})
# Explicit name
(form, association, = {}) do
# Name as a block
end
(form, association, = {})
# Use default name
See Cocooned::Helpers::Tags::Add main documentation for a reference of supported options.
130 131 132 |
# File 'lib/cocooned/helpers/tags/add.rb', line 130 def (*args, &block) (Cocooned::Tags::Add, *args, &block) end |
#cocooned_add_item_link(*args, &block) ⇒ Object
Output a link to add an item in a nested form.
Signatures
cocooned_add_item_link(label, form, association, = {})
# Explicit name
cocooned_add_item_link(form, association, = {}) do
# Name as a block
end
cocooned_add_item_link(form, association, = {})
# Use default name
See Cocooned::Helpers::Tags::Add main documentation for a reference of supported parameters.
See the documentation of ActionView::Base#link_to for additional options.
110 111 112 |
# File 'lib/cocooned/helpers/tags/add.rb', line 110 def cocooned_add_item_link(*args, &block) cocooned_link(Cocooned::Tags::Add, *args, &block) end |