<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>app/models/contact.rb</filename>
    </added>
    <added>
      <filename>app/views/contact/from_site.erb</filename>
    </added>
    <added>
      <filename>config/initializers/smtp_gmail.rb</filename>
    </added>
    <added>
      <filename>config/mailer.yml.sample</filename>
    </added>
    <added>
      <filename>test/unit/contact_test.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/action_mailer_optional_tls/README</filename>
    </added>
    <added>
      <filename>vendor/plugins/action_mailer_optional_tls/Rakefile</filename>
    </added>
    <added>
      <filename>vendor/plugins/action_mailer_optional_tls/init.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/action_mailer_optional_tls/lib/action_mailer_tls.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/action_mailer_optional_tls/lib/smtp_tls.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/action_mailer_optional_tls/test/tls_test.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/exception_notification/README</filename>
    </added>
    <added>
      <filename>vendor/plugins/exception_notification/init.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/exception_notification/lib/exception_notifiable.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/exception_notification/lib/exception_notifier.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/exception_notification/lib/exception_notifier_helper.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/exception_notification/test/exception_notifier_helper_test.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/exception_notification/test/test_helper.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/exception_notification/views/exception_notifier/_backtrace.rhtml</filename>
    </added>
    <added>
      <filename>vendor/plugins/exception_notification/views/exception_notifier/_environment.rhtml</filename>
    </added>
    <added>
      <filename>vendor/plugins/exception_notification/views/exception_notifier/_inspect_model.rhtml</filename>
    </added>
    <added>
      <filename>vendor/plugins/exception_notification/views/exception_notifier/_request.rhtml</filename>
    </added>
    <added>
      <filename>vendor/plugins/exception_notification/views/exception_notifier/_session.rhtml</filename>
    </added>
    <added>
      <filename>vendor/plugins/exception_notification/views/exception_notifier/_title.rhtml</filename>
    </added>
    <added>
      <filename>vendor/plugins/exception_notification/views/exception_notifier/exception_notification.rhtml</filename>
    </added>
    <added>
      <filename>vendor/plugins/spawn/CHANGELOG</filename>
    </added>
    <added>
      <filename>vendor/plugins/spawn/LICENSE</filename>
    </added>
    <added>
      <filename>vendor/plugins/spawn/README</filename>
    </added>
    <added>
      <filename>vendor/plugins/spawn/init.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/spawn/lib/patches.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/spawn/lib/spawn.rb</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -3,3 +3,4 @@ tmp
 config/database.yml
 .DS_Store
 public/images/speakers
+config/mailer.yml</diff>
      <filename>.gitignore</filename>
    </modified>
    <modified>
      <diff>@@ -2,6 +2,8 @@
 # Likewise, all the methods added will be available for all controllers.
 
 class ApplicationController &lt; ActionController::Base
+  include ExceptionNotifiable
+  
   helper :all # include all helpers, all the time
   protect_from_forgery # See ActionController::RequestForgeryProtection for details
   
@@ -12,7 +14,7 @@ class ApplicationController &lt; ActionController::Base
   helper_method :class_selected
 
   # Scrub sensitive parameters from your log
-  # filter_parameter_logging :password
+  filter_parameter_logging :password, :password_confirmation
   
   private
     def class_selected(current_controller_name, current_action_name)</diff>
      <filename>app/controllers/application_controller.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,3 +1,5 @@
+require &quot;ostruct&quot;
+
 class PagesController &lt; ApplicationController
   # caches_action :index, :banners, :talker
   
@@ -5,6 +7,24 @@ class PagesController &lt; ApplicationController
   end
 
   def contact
+    @contact = OpenStruct.new
+    
+    load_contact_with_params
+    
+    if request.post?
+      if contact_valid?(@contact)
+        spawn do
+          logger.info &quot;Trying send email from #{@contact.inspect}&quot;
+          Contact.deliver_from_site(@contact, params[:contact][:receive_a_copy] == &quot;1&quot;)
+        end
+
+        flash[:notice] = &quot;Sua mensagem foi encaminhada.&quot;
+        @contact.subject = &quot;&quot;
+        @contact.description = &quot;&quot;
+      else
+        flash[:error] = &quot;N&#227;o foi poss&#237;vel enviar seu email.&quot;
+      end
+    end
   end
   
   def banners
@@ -15,5 +35,50 @@ class PagesController &lt; ApplicationController
   
   def register
   end
-
+  
+  private
+    def contact_valid?(contact)
+      contact.errors = []
+      contact.errors &lt;&lt; :name unless valid_contact_name?(contact)
+      contact.errors &lt;&lt; :email unless valid_contact_email?(contact)
+      contact.errors &lt;&lt; :subject unless valid_contact_subject?(contact)
+      contact.errors &lt;&lt; :description unless valid_contact_description?(contact)
+      contact.errors.size == 0
+    end
+    
+    def valid_contact_name?(contact)
+      return false unless contact
+      return false if contact.name.blank?
+      true
+    end
+    
+    def valid_contact_email?(contact)
+      return false unless contact
+      return false if contact.email.blank?
+      return false unless User::EMAIL_REGEX.match(contact.email)
+      true
+    end
+    
+    def valid_contact_subject?(contact)
+      return false unless contact
+      return false if contact.subject.blank?
+      true
+    end
+    
+    def valid_contact_description?(contact)
+      return false unless contact
+      return false if contact.description.blank?
+      true
+    end
+    
+    def load_contact_with_params
+      if params[:contact]
+        contact = params[:contact]
+        @contact.name = contact[:name] unless contact[:name].blank?
+        @contact.email = contact[:email] unless contact[:email].blank?
+        @contact.subject = contact[:subject] unless contact[:subject].blank?
+        @contact.description = contact[:description] unless contact[:description].blank?
+      end
+    end
+  
 end</diff>
      <filename>app/controllers/pages_controller.rb</filename>
    </modified>
    <modified>
      <diff>@@ -4,7 +4,7 @@
     &lt;li class=&quot;&lt;%= class_selected(&quot;pages&quot;, &quot;register&quot;) %&gt;&quot;&gt;&lt;%= link_to &quot;Inscri&#231;&#227;o&quot;, register_path %&gt;&lt;/li&gt;
     &lt;!-- &lt;li class=&quot;&lt;%#= class_selected(&quot;speakers&quot;, &quot;index&quot;) %&gt;&quot;&gt;&lt;%#= link_to &quot;Palestrantes&quot;, speakers_path %&gt;&lt;/li&gt; --&gt;
     &lt;li class=&quot;&lt;%= class_selected(&quot;agenda&quot;, &quot;index&quot;) %&gt;&quot;&gt;&lt;%= link_to &quot;Programa&#231;&#227;o&quot;, agenda_path %&gt;&lt;/li&gt;
-    &lt;!-- &lt;li class=&quot;&lt;%#= class_selected(&quot;pages&quot;, &quot;contact&quot;) %&gt;&quot;&gt;&lt;%#= link_to &quot;Contato&quot;, contact_path %&gt;&lt;/li&gt; --&gt;
     &lt;li class=&quot;&lt;%= class_selected(&quot;pages&quot;, &quot;banners&quot;) %&gt;&quot;&gt;&lt;%= link_to &quot;Divulgar&quot;, banners_path %&gt;&lt;/li&gt;
+    &lt;li class=&quot;&lt;%= class_selected(&quot;pages&quot;, &quot;contact&quot;) %&gt;&quot;&gt;&lt;%= link_to &quot;Contato&quot;, contact_path %&gt;&lt;/li&gt;
   &lt;/ul&gt;
 &lt;/div&gt;</diff>
      <filename>app/views/layouts/_menu.html.erb</filename>
    </modified>
    <modified>
      <diff>@@ -6,9 +6,7 @@
   &lt;h3&gt;Patroc&#237;nio&lt;/h3&gt;
   
 	&lt;div id=&quot;i-want&quot;&gt;
-		&lt;a href=&quot;mailto:devinsampa@gmail.com?subject=Quero patrocinar!&quot; title=&quot;Quero Patrocinar!&quot;&gt;
-			&lt;%= image_tag 'ico_patrocinio.jpg', :alt =&gt; 'Quero patrocinar!' %&gt;
-		&lt;/a&gt;
+	  &lt;%= link_to image_tag('ico_patrocinio.jpg', :alt =&gt; 'Quero patrocinar!'), contact_path %&gt;
 	&lt;/div&gt;
 	
   &lt;h3&gt;Apoio&lt;/h3&gt;</diff>
      <filename>app/views/layouts/_sidebar.html.erb</filename>
    </modified>
    <modified>
      <diff>@@ -1,11 +1,36 @@
-&lt;% title &quot;Contato&quot; %&gt;
+&lt;% title &quot;Contato&quot;, false %&gt;
 
-&lt;p&gt;
-Lorem ipsum dolor sit amet, consectetur adipisicing elit, 
-sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. 
-Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris 
-nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in 
-reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla 
-pariatur. Excepteur sint occaecat cupidatat non proident, sunt in 
-culpa qui officia deserunt mollit anim id est laborum.
-&lt;/p&gt;
\ No newline at end of file
+&lt;div class=&quot;box&quot;&gt;
+  &lt;h2&gt;Contato&lt;/h2&gt;  
+
+  &lt;p&gt;No formul&#225;rio abaixo voc&#234; pode nos mandar uma mensagem, que ser&#225; enviado para &lt;a href=&quot;mailto:devisampa@gmail.com&quot;&gt;devinsampa@gmail.com&lt;/a&gt;&lt;/p&gt;
+  
+  &lt;p&gt;
+    &lt;strong&gt;Todos os campos s&#227;o obrigat&#243;rios.&lt;/strong&gt;
+    &lt;% form_for :contact do |f| %&gt;
+      &lt;p&gt;
+        &lt;%= f.label :name, &quot;Nome&quot; %&gt;&lt;br /&gt;
+        &lt;%= f.text_field :name %&gt;
+      &lt;/p&gt;
+      &lt;p&gt;
+        &lt;%= f.label :email, &quot;E-mail&quot; %&gt;&lt;br /&gt;
+        &lt;%= f.text_field :email %&gt;
+      &lt;/p&gt;
+      &lt;p&gt;
+        &lt;%= f.label :subject, &quot;Assunto&quot; %&gt;&lt;br /&gt;
+        &lt;%= f.text_field :subject %&gt;
+      &lt;/p&gt;
+      &lt;p&gt;
+        &lt;%= f.label :description, &quot;Mensagem&quot; %&gt;&lt;br /&gt;
+        &lt;%= f.text_area :description %&gt;
+      &lt;/p&gt;
+      
+      &lt;p&gt;
+        &lt;%= f.label :receive_a_copy, &quot;Quero receber uma c&#243;pia&quot; %&gt;
+        &lt;%= f.check_box :receive_a_copy %&gt;
+      &lt;/p&gt;
+      &lt;p&gt;&lt;%= f.submit &quot;Submit&quot; %&gt;&lt;/p&gt;
+    &lt;% end %&gt;
+    
+  &lt;/p&gt;
+&lt;/div&gt;</diff>
      <filename>app/views/pages/contact.html.erb</filename>
    </modified>
    <modified>
      <diff>@@ -41,4 +41,7 @@ Rails::Initializer.run do |config|
   # config.i18n.default_locale = :de
   
   config.cache_store = :file_store, &quot;#{Rails.root}/tmp/cache&quot;
-end
\ No newline at end of file
+end
+
+ExceptionNotifier.exception_recipients = %w(tinorj+devisampa@gmail.com lfcipriani@gmail.com nuxlli@gmail.com devinsampa@gmail.com)
+ExceptionNotifier.sender_address = %(&quot;Exception Notification&quot; &lt;devinsampa@gmail.com&gt;)
\ No newline at end of file</diff>
      <filename>config/environment.rb</filename>
    </modified>
    <modified>
      <diff>@@ -11,8 +11,8 @@ config.whiny_nils = true
 # Show full error reports and disable caching
 config.action_controller.consider_all_requests_local = true
 config.action_view.debug_rjs                         = true
-config.action_controller.perform_caching             = true #false
+config.action_controller.perform_caching             = false
 
 # Don't care if the mailer can't send
-config.action_mailer.raise_delivery_errors = false
+config.action_mailer.raise_delivery_errors = true#false
 </diff>
      <filename>config/environments/development.rb</filename>
    </modified>
    <modified>
      <diff>@@ -12,7 +12,7 @@ ActionController::Routing::Routes.draw do |map|
   map.home &quot;/&quot;,                  :controller =&gt; &quot;pages&quot;, :action =&gt; &quot;index&quot;
   # map.speakers &quot;/palestrantes&quot;, :controller =&gt; &quot;speakers&quot;, :action =&gt; &quot;index&quot;
   map.agenda &quot;/programacao&quot;,    :controller =&gt; &quot;agenda&quot;,   :action =&gt; &quot;index&quot;
-  # map.contact &quot;/contato&quot;,       :controller =&gt; &quot;pages&quot;,   :action =&gt; &quot;contact&quot;
+  map.contact &quot;/contato&quot;,       :controller =&gt; &quot;pages&quot;,   :action =&gt; &quot;contact&quot;
   
   map.banners &quot;/divulgar&quot;, :controller =&gt; &quot;pages&quot;, :action =&gt; &quot;banners&quot;
   </diff>
      <filename>config/routes.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>db7fcc0c418b66d60d725914b81eb6a49df948c9</id>
    </parent>
  </parents>
  <author>
    <name>tinogomes</name>
    <email>tinorj@gmail.com</email>
  </author>
  <url>http://github.com/tinogomes/devinsampa/commit/d9e5d76580ab544b65430f5486d96a4d745d0f50</url>
  <id>d9e5d76580ab544b65430f5486d96a4d745d0f50</id>
  <committed-date>2009-11-02T12:57:51-08:00</committed-date>
  <authored-date>2009-11-02T12:57:51-08:00</authored-date>
  <message>contact form and mailer, using gmail</message>
  <tree>924c3e61a5f20f7cc57ae7a810ece972af093586</tree>
  <committer>
    <name>tinogomes</name>
    <email>tinorj@gmail.com</email>
  </committer>
</commit>
