Support selecting various sizes of profile pics

This commit is contained in:
Michael Ball 2020-07-15 23:27:22 -07:00
parent 3883188dcd
commit 10d58ef050
5 changed files with 26 additions and 8 deletions

View file

@ -51,6 +51,11 @@ body {
margin: 0 auto; margin: 0 auto;
} }
nav #current-user-detail .profile-thumnail {
max-height: 20px;
max-width: 20px;
}
/* centered columns styles */ /* centered columns styles */
.row-centered { .row-centered {
text-align:center; text-align:center;

View file

@ -158,9 +158,17 @@ class User < ApplicationRecord
## ##
# Returns a user's profile picture URL. # Returns a user's profile picture URL.
# Partials should *not* directly call `gravatar_url` # Partials should *not* directly call `gravatar_url`
def profile_picture(opts) def profile_picture(opts = {})
# TODO: Figure out how to align sizes? return gravatar_url(opts) unless picture.present?
picture.thumb.url || gravatar_url(opts) puts "ASKED FOR PROFILE PIC!! #{opts[:size]}"
size = (opts[:size] || 0).to_i
if size < 50
picture.tiny.url
elsif size <= 100
picture.thumb.url
else
picture.large.url
end
end end
def self.for_ichain_username(username, attributes) def self.for_ichain_username(username, attributes)

View file

@ -62,6 +62,10 @@ class PictureUploader < CarrierWave::Uploader::Base
process resize_to_fit: [100, 100] process resize_to_fit: [100, 100]
end end
version :tiny do
process resize_to_fit: [32, 32]
end
version :first, if: :sponsor? version :first, if: :sponsor?
version :first do version :first do
process resize_and_pad: [320, 180, 'white'] process resize_and_pad: [320, 180, 'white']

View file

@ -29,7 +29,7 @@
%li.dropdown %li.dropdown
%a.dropdown-toggle{"data-toggle" => "dropdown", href: '#', id: "current-user-detail"} %a.dropdown-toggle{"data-toggle" => "dropdown", href: '#', id: "current-user-detail"}
= current_user.name = current_user.name
= image_tag(current_user.profile_picture(size: '18'), title: "Yo #{current_user.name}!", alt: '') = image_tag(current_user.profile_picture(size: '18'), class: 'profile-thumbnail', alt: '')
%b.caret %b.caret
%ul.dropdown-menu %ul.dropdown-menu
= render 'layouts/user_menu' = render 'layouts/user_menu'

View file

@ -12,13 +12,14 @@
= "Avatar" = "Avatar"
= image_tag(@user.profile_picture(size: '48'), title: "Yo #{@user.name}!", alt: '') = image_tag(@user.profile_picture(size: '48'), title: "Yo #{@user.name}!", alt: '')
= link_to 'Change your avatar here', 'https://gravatar.com' = link_to 'Change your avatar here', 'https://gravatar.com'
%br
%p %p
Or upload a picture. Or upload a picture.
= image_tag f.object.picture.thumb.url if f.object.picture?
- if @user.picture?
= image_tag(@user.picture.thumb.url, width: '20%')
= f.input :picture, hint: 'If you upload a picture, it will be used in place of Gravatar.' = f.input :picture, hint: 'If you upload a picture, it will be used in place of Gravatar.'
- if @user.picture?
%p
Current Picture
%br
= image_tag(@user.picture.thumb.url, width: '20%')
= f.input :affiliation, as: :string, = f.input :affiliation, as: :string,
hint: 'This could be a company, a user group, or nothing at all.' hint: 'This could be a company, a user group, or nothing at all.'