FogBugz #60: Ermoeglichen der Eingabe von Mails und Telefonen.

This commit is contained in:
gchq 2011-05-20 23:57:32 +02:00
parent 6213fa6312
commit 41f59e08fd
5 changed files with 71 additions and 45 deletions

View file

@ -7,6 +7,9 @@ class ContactsController < ApplicationController
def new
@contact = Contact.new
3.times do
email = @contact.emails.build
end
end
def create
@ -19,6 +22,13 @@ class ContactsController < ApplicationController
c.place = params[:contact][:place]
c.country = params[:contact][:country]
params[:contact][:emails_attributes].each do |e|
unless e.address.blank?
email = c.emails.build
email.address = e.address
end
end
if c.save
flash[:notice] = 'Kontakt hervorragend angelegt!'
redirect_to :action => 'index'

View file

@ -1,7 +1,7 @@
class Contact < ActiveRecord::Base
has_many :emails
has_many :phones
has_many :emails, :dependent => :destroy
has_many :phones, :dependent => :destroy
accepts_nested_attributes_for :emails, :allow_destroy => true
accepts_nested_attributes_for :phones, :allow_destroy => true
accepts_nested_attributes_for :emails, :reject_if => lambda { |a| a[:address].blank? }, :allow_destroy => true
accepts_nested_attributes_for :phones, :reject_if => lambda { |a| a[:nr].blank? }, :allow_destroy => true
end

View file

@ -0,0 +1,10 @@
<tr>
<td align="right"><%= f.label :address, "Mail" %></td>
<td><%= f.text_field :address %></td>
</tr>
<% unless f.object.new_record? %>
<tr>
<td align="right"><%= f.label :_delete, "Remove Mail" %></td>
<td><%= f.check_box :_delete %></td>
</tr>
<% end %>

View file

@ -0,0 +1,46 @@
<%= form_for @contact, :html => {:class => "new_data_form"} do |f| %>
<fieldset>
<legend>Contact details</legend>
<table>
<tr>
<td align="right"><%= label_tag(:firstname, "First name") %></td>
<td><%= f.text_field :firstname %></td>
</tr>
<tr>
<td align="right"><%= label_tag(:lastname, "Last name") %></td>
<td><%= f.text_field :lastname %></td>
</tr>
<tr>
<td align="right"><%= label_tag(:street, "Street name") %></td>
<td><%= f.text_field :street %></td>
<tr>
<td align="right"><%= label_tag(:housenr, "House number") %></td>
<td><%= f.text_field :housenr %></td>
</tr>
<tr>
<td align="right"><%= label_tag(:plz, "Zip code") %></td>
<td><%= f.text_field :plz %></td>
</tr>
<tr>
<td align="right"><%= label_tag(:place, "Place") %></td>
<td><%= f.text_field :place %></td>
</tr>
<tr>
<td align="right"><%= label_tag(:country, "Country") %></td>
<td><%= f.text_field :country %></td>
</tr>
<% f.fields_for :emails do |emails_f| %>
<%= render "email_fields", :f => emails_f %>
<% end %> <%# fields_for :emails %>
<tr>
<td>&nbsp;</td>
<td>
<%= link_to 'Add an email', '#emails', :class => "add_nested_item", :rel => "emails" %>
</td>
</tr>
<tr>
<td align="right"><td><%= f.submit("Save contact") %></td>
</tr>
</table>
</fieldset>
<% end %>

View file

@ -1,44 +1,4 @@
<h1>New Contact</h1>
<%= form_for @contact, :html => {:class => "new_data_form"} do |f| %>
<fieldset>
<legend>Contact details</legend>
<table>
<tr>
<td align="right"><%= label_tag(:firstname, "First name") %></td>
<td><%= f.text_field :firstname %></td>
</tr>
<tr>
<td align="right"><%= label_tag(:lastname, "Last name") %></td>
<td><%= f.text_field :lastname %></td>
</tr>
<tr>
<td align="right"><%= label_tag(:street, "Street name") %></td>
<td><%= f.text_field :street %></td>
<tr>
<td align="right"><%= label_tag(:housenr, "House number") %></td>
<td><%= f.text_field :housenr %></td>
</tr>
<tr>
<td align="right"><%= label_tag(:plz, "Zip code") %></td>
<td><%= f.text_field :plz %></td>
</tr>
<tr>
<td align="right"><%= label_tag(:place, "Place") %></td>
<td><%= f.text_field :place %></td>
</tr>
<tr>
<td align="right"><%= label_tag(:country, "Country") %></td>
<td><%= f.text_field :country %></td>
</tr>
<tr>
<td align="right"><%= label_tag(:email, "Mail") %></td>
<td><%= f.text_field :email %></td>
</tr>
<tr>
<td align="right"><td><%= submit_tag("Save contact") %></td>
</tr>
</table>
</fieldset>
<% end %>
<%= render "form" %>