Skip to content

Instantly share code, notes, and snippets.

@clyfe
Created October 1, 2011 17:18
Show Gist options
  • Save clyfe/1256348 to your computer and use it in GitHub Desktop.
Save clyfe/1256348 to your computer and use it in GitHub Desktop.
diferentiate create/update subform columns
<thead>
<tr>
<%
readonly = (@record.readonly? or not @record.authorized_for?(:crud_type => :update))
crud_type = @record.new_record? ? :create : (readonly ? :read : :update)
config = active_scaffold_config_for(record.class)
columns = @record.new_record? ? config.create.columns : config.update.columns
columns.each :for => record.class, :crud_type => crud_type, :flatten => true do |column|
hidden = column_renders_as(column) == :hidden
next unless in_subform?(column, parent_record)
-%>
<th class="<%= "#{'required' if column.required?} #{'hidden' if hidden}" %>"><label><%= column.label unless hidden %></label></th>
<% end -%>
</tr>
</thead>
<%
record_column = column
readonly = (@record.readonly? or not @record.authorized_for?(:crud_type => :update))
crud_type = @record.new_record? ? :create : (readonly ? :read : :update)
show_actions = false
config = active_scaffold_config_for(@record.class)
options = active_scaffold_input_options(config.columns[@record.class.primary_key], scope)
tr_id = "association-#{options[:id]}"
%>
<tr id="<%= tr_id %>" class="association-record <%= 'association-record-new' if @record.new_record? -%> <%= 'locked' if locked -%>">
<% columns = @record.new_record? ? config.create : config.update %>
<% columns.columns.each :for => @record.class, :crud_type => crud_type, :flatten => true do |column| %>
<%
next unless in_subform?(column, parent_record)
show_actions = true
column = column.clone
column.form_ui ||= :select if column.association
-%>
<td<%= ' class="hidden"'.html_safe if column_renders_as(column) == :hidden %>>
<% unless readonly and not @record.new_record? or not @record.authorized_for?(:crud_type => crud_type, :column => column.name) -%>
<%= render :partial => form_partial_for_column(column), :locals => { :column => column, :scope => scope } -%>
<% else -%>
<p><%= get_column_value(@record, column) -%></p>
<% end -%>
</td>
<% end -%>
<% if show_actions -%>
<td class="actions">
<% if record_column.plural_association? and (@record.authorized_for?(:crud_type => :delete) or not [:destroy, :delete_all].include?(record_column.association.options[:dependent])) %>
<% destroy_id = "#{options[:id]}-destroy" %>
<%= link_to as_(:remove), '#', :class => 'destroy', :id => destroy_id , :onclick => "ActiveScaffold.delete_subform_record(\"#{tr_id}\"); return false;", :style=> "display: none;" %>
<%= javascript_tag("ActiveScaffold.show('#{destroy_id}');") if !locked %>
<% end %>
<% unless @record.new_record? %>
<input type="hidden" name="<%= options[:name] -%>" id="<%= options[:id] -%>" value="<%= @record.id -%>" />
<% end -%>
</td>
<% end -%>
</tr>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment