BindaCMS/binda

View on GitHub
app/views/binda/fieldable/_form_item_relation.html.erb

Summary

Maintainability
Test Coverage
<div id="standard-form--relation-<%= field_setting.id %>" class="standard-form--relation form-item">

<%# TODO: refactor in order to have a single depenedent field, not one per instance type %>

    <% if field_setting.accepted_structures.select{|s| s.instance_type == "component"}.any? %>
        <%= ff.input :dependent_component_ids, collection: get_relationable_components(field_setting), 
            as: :select,
            input_html: { multiple: true, class: 'select2-item' },
            label: field_setting.name,
            hint: field_setting.description.nil? ? false : field_setting.description.html_safe,
            value_method: :id,
            checked: ff.object.dependent_component_ids, 
            include_blank: true, 
            include_hidden: true,
            placeholder: t('binda.select_placeholder') %>
    <% end %>

    <% if field_setting.accepted_structures.select{|s| s.instance_type == "board"}.any? %>
        <%= ff.input :dependent_board_ids, collection: get_relationable_boards(field_setting), 
            as: :select, 
            input_html: { multiple: true, class: 'select2-item' }, 
            label: field_setting.name,
            hint: field_setting.description.nil? ? false : field_setting.description.html_safe,
            value_method: :id, 
            checked: ff.object.dependent_board_ids, 
            include_blank: true, 
            include_hidden: true,
            placeholder: t('binda.select_placeholder') %>
    <% end %>

    <% unless field_setting.accepted_structures.any? %>
        <div class="form-group">
            <div class="control-label-wrap">
                <label class="control-label"><%= field_setting.name %></label>
            </div>
            <p><%= t('binda.relation_warning') %></p>
        </div>
    <% end %>

    <%= ff.input :field_setting_id, as: :hidden, input_html: { value: field_setting.id } %>
    <%= ff.input :id, as: :hidden, input_html: { value: ff.object.id } %>
    <%= ff.input :fieldable_id, as: :hidden %>
    <%= ff.input :fieldable_type, as: :hidden %>
</div>