From 6eb50ea93414b41c0ea7cb860f394c29fd3e372f Mon Sep 17 00:00:00 2001
From: danielvincent <danielgrippi@gmail.com>
Date: Fri, 29 Oct 2010 14:11:20 -0700
Subject: [PATCH] profile photo uploader is now a standard form file element. 
 Upload new image through people#update, which calls current_user.post to do
 so.

---
 app/controllers/people_controller.rb              | 9 +++++++++
 app/controllers/photos_controller.rb              | 5 -----
 app/controllers/users_controller.rb               | 1 -
 app/views/people/_profile_photo_upload.html.haml  | 2 +-
 app/views/people/edit.html.haml                   | 4 ++--
 app/views/users/getting_started/_step_1.html.haml | 4 ++--
 6 files changed, 14 insertions(+), 11 deletions(-)

diff --git a/app/controllers/people_controller.rb b/app/controllers/people_controller.rb
index 791d532b7b..25fb5d0e40 100644
--- a/app/controllers/people_controller.rb
+++ b/app/controllers/people_controller.rb
@@ -46,6 +46,15 @@ class PeopleController < ApplicationController
       params[:person][:profile][:birthday] ||= Date.parse("#{birthday[:year]}-#{birthday[:month]}-#{birthday[:day]}")
     end
 
+    # upload and set new profile photo
+    if params[:person][:profile][:image]
+      raw_image = params[:person][:profile].delete(:image)
+      params[:profile_image_hash] = { :user_file => raw_image, :to => "all" }
+
+      photo = current_user.post(:photo, params[:profile_image_hash])
+      params[:person][:profile][:image_url] = photo.url(:thumb_medium)
+    end
+
     prep_image_url(params[:person])
 
     if current_user.update_profile params[:person][:profile]
diff --git a/app/controllers/photos_controller.rb b/app/controllers/photos_controller.rb
index c9671ac7f2..3216fdf4cf 100644
--- a/app/controllers/photos_controller.rb
+++ b/app/controllers/photos_controller.rb
@@ -51,11 +51,6 @@ class PhotosController < ApplicationController
 
       @photo = current_user.post(:photo, params[:photo])
 
-      # set image as profile photo
-      if params[:set_profile_image] && !params[:set_profile_image].empty?
-        current_user.update_profile(:image_url=>@photo.url(:thumb_medium))
-      end
-
       respond_to do |format|
         format.json{render(:layout => false , :json => {"success" => true, "data" => @photo}.to_json )}
       end
diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb
index 45182cd882..36f31c6b86 100644
--- a/app/controllers/users_controller.rb
+++ b/app/controllers/users_controller.rb
@@ -75,7 +75,6 @@ class UsersController < ApplicationController
     @user     = current_user
     @person   = @user.person
     @profile  = @user.profile
-    @photos   = @user.visible_posts(:person_id => current_user.person.id, :_type => 'Photo').paginate :page => params[:page], :order => 'created_at DESC'
     @services = @user.services
 
     @step = ((params[:step].to_i>0)&&(params[:step].to_i<5)) ? params[:step].to_i : 1
diff --git a/app/views/people/_profile_photo_upload.html.haml b/app/views/people/_profile_photo_upload.html.haml
index b65672a102..cd9577abeb 100644
--- a/app/views/people/_profile_photo_upload.html.haml
+++ b/app/views/people/_profile_photo_upload.html.haml
@@ -5,7 +5,7 @@
 
 #profile_photo_upload
   = owner_image_tag
-  = render 'photos/new_photo', :album_id => nil, :aspect_id => 'all', :set_profile_image => true
+  = form.file_field :image
 
   %p
     \...or select one from your already existing
diff --git a/app/views/people/edit.html.haml b/app/views/people/edit.html.haml
index 18d08a542c..19d1bafb7d 100644
--- a/app/views/people/edit.html.haml
+++ b/app/views/people/edit.html.haml
@@ -12,7 +12,7 @@
     %li=link_to 'Services', services_path
 
 .span-19.prepend-5.last
-  = form_for @person do |person|
+  = form_for @person, :html => { :multipart => true } do |person|
     %h3
       Your Profile
       .description
@@ -42,7 +42,7 @@
 
       %h4
         Your photo
-        = render 'people/profile_photo_upload'
+        = render 'people/profile_photo_upload', :form => profile
 
     .submit_block
       = link_to t('.cancel'), edit_user_path(current_user)
diff --git a/app/views/users/getting_started/_step_1.html.haml b/app/views/users/getting_started/_step_1.html.haml
index 1bb45760f9..6ee9002117 100644
--- a/app/views/users/getting_started/_step_1.html.haml
+++ b/app/views/users/getting_started/_step_1.html.haml
@@ -3,7 +3,7 @@
 -#   the COPYRIGHT file.
 
 
-= form_for @person do |person|
+= form_for @person, :html => { :multipart => true } do |person|
   %h3
     Your Profile
     .description
@@ -33,7 +33,7 @@
 
     %h4
       Your photo
-      = render 'people/profile_photo_upload'
+      = render 'people/profile_photo_upload', :form => profile
 
     = hidden_field_tag :getting_started, @step
 
-- 
GitLab