diff --git a/app/controllers/people_controller.rb b/app/controllers/people_controller.rb index f76f1c6e64c356683c3741bea1f937145e9d37c3..791d532b7b1110105789772b3a9f06e7fee01462 100644 --- a/app/controllers/people_controller.rb +++ b/app/controllers/people_controller.rb @@ -37,7 +37,6 @@ class PeopleController < ApplicationController @aspect = :person_edit @person = current_user.person @profile = @person.profile - @photos = current_user.visible_posts(:person_id => @person.id, :_type => 'Photo').paginate :page => params[:page], :order => 'created_at DESC' end def update @@ -64,15 +63,17 @@ class PeopleController < ApplicationController private def prep_image_url(params) - url = APP_CONFIG[:pod_url].dup - url.chop! if APP_CONFIG[:pod_url][-1,1] == '/' - if params[:profile][:image_url].empty? - params[:profile].delete(:image_url) - else - if /^http:\/\// =~ params[:profile][:image_url] - params[:profile][:image_url] = params[:profile][:image_url] + if params[:profile] && params[:profile][:image_url] + url = APP_CONFIG[:pod_url].dup + url.chop! if APP_CONFIG[:pod_url][-1,1] == '/' + if params[:profile][:image_url].empty? + params[:profile].delete(:image_url) else - params[:profile][:image_url] = url + params[:profile][:image_url] + if /^http:\/\// =~ params[:profile][:image_url] + params[:profile][:image_url] = params[:profile][:image_url] + else + params[:profile][:image_url] = url + params[:profile][:image_url] + end end end end diff --git a/app/controllers/photos_controller.rb b/app/controllers/photos_controller.rb index 3216fdf4cf8579e651641276a6f8b0677cf10276..c9671ac7f214f32f6aa6fa5e2f0114b300ebdf4b 100644 --- a/app/controllers/photos_controller.rb +++ b/app/controllers/photos_controller.rb @@ -51,6 +51,11 @@ 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/views/people/_profile_photo_upload.html.haml b/app/views/people/_profile_photo_upload.html.haml new file mode 100644 index 0000000000000000000000000000000000000000..b65672a102f5a50b0ad813858745d4d07c162277 --- /dev/null +++ b/app/views/people/_profile_photo_upload.html.haml @@ -0,0 +1,13 @@ +-# Copyright (c) 2010, Diaspora Inc. This file is +-# licensed under the Affero General Public License version 3 or later. See +-# the COPYRIGHT file. + + +#profile_photo_upload + = owner_image_tag + = render 'photos/new_photo', :album_id => nil, :aspect_id => 'all', :set_profile_image => true + + %p + \...or select one from your already existing + = link_to 'photos', person_photos_path(@person) + \. diff --git a/app/views/people/edit.html.haml b/app/views/people/edit.html.haml index 29e10d7575ccda33233fcccfbdd7e9a36fc04a9b..18d08a542c7e8124799248e056da60dac3b520ef 100644 --- a/app/views/people/edit.html.haml +++ b/app/views/people/edit.html.haml @@ -42,26 +42,7 @@ %h4 Your photo - %div#image_picker - = profile.hidden_field :image_url, :value => (@profile.image_url if @profile.image_url), :id => 'image_url_field' - - - unless @photos.nil? || @photos.empty? - - for photo in @photos - - if @profile.image_url && @profile.image_url.include?(photo.url(:thumb_medium)) - %div.small_photo{:id => photo.url(:thumb_medium), :class=>'selected'} - = check_box_tag 'checked_photo', true, true - = link_to image_tag(photo.url(:thumb_medium)), "#" - - else - %div.small_photo{:id => photo.url(:thumb_medium)} - = check_box_tag 'checked_photo' - = link_to image_tag(photo.url(:thumb_medium)), "#" - - - else - =t('.you_dont_have_any_photos') - = link_to t('.albums'), albums_path(:aspect => 'all') - =t('.page_to_upload_some') - - =will_paginate @photos + = render 'people/profile_photo_upload' .submit_block = link_to t('.cancel'), edit_user_path(current_user) diff --git a/app/views/photos/_new_photo.haml b/app/views/photos/_new_photo.haml index a5efe45daeddfe07da2922550cd564e8d544aa24..dd029008e811389cc5c01f53aa6510f871de53b8 100644 --- a/app/views/photos/_new_photo.haml +++ b/app/views/photos/_new_photo.haml @@ -6,7 +6,7 @@ function createUploader(){ var uploader = new qq.FileUploader({ element: document.getElementById('file-upload'), - params: {'photo' : { 'album_id' : "#{album_id}", 'to' : "#{aspect_id}"}}, + params: {'photo' : { 'album_id' : "#{album_id}", 'to' : "#{aspect_id}"}, 'set_profile_image' : "#{set_profile_image if defined?(set_profile_image)}"}, allowedExtensions: ['jpg', 'jpeg', 'png', 'gif'], action: "#{photos_path}" }); diff --git a/app/views/users/getting_started/_step_1.html.haml b/app/views/users/getting_started/_step_1.html.haml index 7778a39f8204a1baaa05a176f6a90ef8c7f45de1..1bb45760f94222f89f1bc74f42c961ab4de1476e 100644 --- a/app/views/users/getting_started/_step_1.html.haml +++ b/app/views/users/getting_started/_step_1.html.haml @@ -33,26 +33,7 @@ %h4 Your photo - %div#image_picker - = profile.hidden_field :image_url, :value => (@profile.image_url if @profile.image_url), :id => 'image_url_field' - - - unless @photos.nil? || @photos.empty? - - for photo in @photos - - if @profile.image_url && @profile.image_url.include?(photo.url(:thumb_medium)) - %div.small_photo{:id => photo.url(:thumb_medium), :class=>'selected'} - = check_box_tag 'checked_photo', true, true - = link_to image_tag(photo.url(:thumb_medium)), "#" - - else - %div.small_photo{:id => photo.url(:thumb_medium)} - = check_box_tag 'checked_photo' - = link_to image_tag(photo.url(:thumb_medium)), "#" - - - else - =t('.you_dont_have_any_photos') - = link_to t('.albums'), albums_path(:aspect => 'all') - =t('.page_to_upload_some') - - =will_paginate @photos + = render 'people/profile_photo_upload' = hidden_field_tag :getting_started, @step diff --git a/public/stylesheets/sass/application.sass b/public/stylesheets/sass/application.sass index 16b8b4fc33f242dbea2c1676e9233422b467af77..96fb467ed6d162279339b5e52e1172af2f979cce 100644 --- a/public/stylesheets/sass/application.sass +++ b/public/stylesheets/sass/application.sass @@ -1377,3 +1377,17 @@ ul.aspects :display inline :left 600px :top 0 + +#profile_photo_upload + :margin + :top 5px + img + :position absolute + :left 0 + :height 100px + :width 100px + :border-radius 5px + :-webkit-box-shadow 0 1px 2px #666 + + :padding + :left 120px