<% record_column = column ActiveSupport::Deprecation.warn "Relying on @record to render form_asssociation_record partial with no :object is deprecated", caller(1) unless local_assigns[:form_association_record] record = form_association_record ||= @record # TODO: remove me, backwards compatibility, no :collection neither object in render @record = record # TODO: remove me, backward compatibility, helpers using @record readonly = (record.readonly? or not record.authorized_for?(:crud_type => :update)) crud_type = record.new_record? ? :create : (readonly ? :read : :update) show_actions = false locked ||= false config = active_scaffold_config_for(record.class) scope = column_scope(record_column, scope, record) options = active_scaffold_input_options(config.columns[record.class.primary_key], scope, :object => record) tr_id = "association-#{options[:id]}" if config.subform.layout == :vertical record_tag ||= :div row_tag ||= :ol column_tag ||= :li error_tag ||= :div error_inner_tag ||= nil default_col_class = ['form-element'] flatten ||= false else record_tag ||= :tbody row_tag ||= :tr column_tag ||= :td error_tag ||= :tr error_inner_tag ||= :td default_col_class = [] flatten ||= false end index ||= form_association_record_counter ||= nil columns_length = 0 columns_groups = [] -%> <<%= record_tag %> class="sub-form-record"> <% unless record.errors.empty? -%> <%= content_tag error_tag, :class => "association-record-errors", :id => element_messages_id(:action => record.class.name.underscore, :id => "#{parent_record.id}-#{index}") do %> <% errors = active_scaffold_error_messages_for(:record, :object_name => record.class.model_name.human.downcase) %> <%= error_inner_tag ? content_tag(error_inner_tag, errors, :colspan => (active_scaffold_config_for(record.class).subform.columns.length + 1 if error_inner_tag == :td)) : errors %> <% end %> <% end %> <%= content_tag row_tag, :id => tr_id, :class => "association-record#{' association-record-new' if record.new_record?}#{' locked' if locked}" do %> <% config.subform.columns.each :for => record.class, :crud_type => :read, :flatten => flatten do |column| %> <% if column.respond_to? :each columns_groups << column next end next unless in_subform?(column, parent_record) columns_length += 1 show_actions = true if column.association && column.form_ui.nil? column = column.clone column.form_ui ||= :select end col_class = default_col_class.clone col_class << 'required' if column.required? col_class << column.css_class unless column.css_class.nil? || column.css_class.is_a?(Proc) col_class << 'hidden' if column_renders_as(column) == :hidden -%> <%= content_tag column_tag, :class => col_class.join(' ') do %> <%= active_scaffold_render_subform_column(column, scope, crud_type, readonly, false, record) %> <% end %> <% end -%> <% if show_actions -%> <%= content_tag column_tag, :class => "actions" do %> <% if record_column.plural_association? and (record.authorized_for?(:crud_type => :delete) or not [:destroy, :delete_all].include?(record_column.association.options[:dependent])) %> <%= link_to as_(:remove), '#', :class => 'destroy', :id => "#{options[:id]}-destroy" , :data => {:delete_id => tr_id} unless locked %> <% end %> <% unless record.new_record? %> <% end -%> <% end %> <% end -%> <% end %> <% columns_groups.each do |column| %> <%= content_tag row_tag, :class => 'associated-record' do %> <%= content_tag column_tag, :colspan => (columns_length if column_tag == :td) do %> <% column.each :for => record.class, :crud_type => :read, :flatten => true do |col| %> <%= active_scaffold_render_subform_column(col, scope, crud_type, readonly, true, record) %> <% end %> <% end %> <% end %> <% end %> >