63 lines
1.9 KiB
Plaintext
63 lines
1.9 KiB
Plaintext
<%= form_with(model: project) do |form| %>
|
|
<% if project.errors.any? %>
|
|
<div style="color: red">
|
|
<h2><%= pluralize(project.errors.count, "error") %> prohibited this project from being saved:</h2>
|
|
|
|
<ul>
|
|
<% project.errors.each do |error| %>
|
|
<li><%= error.full_message %></li>
|
|
<% end %>
|
|
</ul>
|
|
</div>
|
|
<% end %>
|
|
|
|
<% project_form_fields.each do |attrib| %>
|
|
<div>
|
|
<%= form.label attrib, style: "display: block" %>
|
|
<%= form.text_field attrib, value: project.send(attrib) %>
|
|
</div>
|
|
<% end %>
|
|
|
|
<h3>Subprojects</h3>
|
|
<%= form.fields_for :subprojects do |sp_form| %>
|
|
<div class="subproject-fields">
|
|
<%= sp_form.label :subproject_name %>
|
|
<%= sp_form.text_field :subproject_name %>
|
|
|
|
<% [:client, :owner, :builder].each do |role| %>
|
|
<div>
|
|
<%= sp_form.label "#{role}_id", "Select Existing #{role.capitalize}" %>
|
|
<%= sp_form.collection_select "#{role}_id", clients, :id, :display_name, prompt: "Select #{role.capitalize}" %>
|
|
|
|
<fieldset>
|
|
<legend>Or Create New <%= role.capitalize %></legend>
|
|
<%= sp_form.fields_for role do |c_form| %>
|
|
<% [:company_name, :firstname, :lastname, :streetname, :zipcode, :city, :country, :email, :phone].each do |attrib| %>
|
|
<%= c_form.label attrib %>
|
|
<%= c_form.text_field attrib %><br>
|
|
<% end %>
|
|
<% end %>
|
|
</fieldset>
|
|
</div>
|
|
<% end %>
|
|
</div>
|
|
<div class="subproject-address-fields">
|
|
|
|
<fieldset>
|
|
<legend>Address</legend>
|
|
<%= sp_form.fields_for :subproject_address do |spaddress_form| %>
|
|
<% [:streetname, :zipcode, :city, :country].each do |attrib| %>
|
|
<%= spaddress_form.label attrib %>
|
|
<%= spaddress_form.text_field attrib %><br>
|
|
<% end %>
|
|
<% end %>
|
|
</fieldset>
|
|
|
|
</div>
|
|
<% end %>
|
|
|
|
<div>
|
|
<%= form.submit %>
|
|
</div>
|
|
<% end %>
|