app/views/active_scaffold_overrides/_form_association_record.html.erb
<%
record_column = column
record = form_association_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)
columns ||= config.subform.columns
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]}"
layout ||= config.subform.layout
if 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 = []
-%>
<%= content_tag record_tag, :class => "sub-form-record" do %>
<% 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 => record) %>
<%= 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 %>
<% columns.each_column(for: record.class, crud_type: :read, flatten: flatten) do |column| %>
<%
if column.respond_to? :each_column
columns_groups << column
next
end
next unless in_subform?(column, parent_record, record_column)
columns_length += 1
show_actions = true
if !ActiveScaffold.nested_subforms && !readonly && column.association && column.form_ui.nil?
ActiveSupport::Deprecation.warn "Nested subforms are allowed now, set form_ui = :select for #{column.name} in controller for #{config.model.name}"
column = column.dup unless ActiveScaffold.threadsafe
column.form_ui = :select
end
col_class = default_col_class.clone
col_class << 'required' if column.required?(action_for_validation?(record))
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.association.collection? && !locked %>
<%
auth = [:destroy, :delete_all, :delete].exclude?(record_column.association.dependent)
auth, reason = record.authorized_for?(:crud_type => :delete, :reason => true) unless auth
%>
<%= auth ? link_to(as_(:remove), '#', :class => 'destroy', :id => "#{options[:id]}-destroy" , :data => {:delete_id => tr_id}) : reason %>
<% end %>
<% unless record.new_record? %>
<input type="hidden" name="<%= options[:name] -%>" id="<%= options[:id] -%>" value="<%= record.id -%>" />
<% end -%>
<% end %>
<% end -%>
<% end %>
<% columns_groups.each do |columns_group| %>
<%= content_tag row_tag, :class => 'associated-record' do %>
<% if layout == :vertical %>
<% columns_group.each_column(for: record.class, crud_type: :read, flatten: true) do |col| %>
<%
col_class = default_col_class.clone
col_class << 'required' if col.required?(action_for_validation?(record))
col_class << col.css_class unless col.css_class.nil? || col.css_class.is_a?(Proc)
col_class << 'hidden' if column_renders_as(col) == :hidden
%>
<%= content_tag column_tag, :class => col_class, :colspan => (columns_length if column_tag == :td) do %>
<%= active_scaffold_render_subform_column(col, scope, crud_type, readonly, false, record) %>
<% end %>
<% end %>
<% else %>
<%= content_tag column_tag, :colspan => (columns_length if column_tag == :td) do %>
<% columns_group.each_column(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 %>
<% end %>
<% end %>