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;
}
nav #current-user-detail .profile-thumnail {
max-height: 20px;
max-width: 20px;
}
/* centered columns styles */
.row-centered {
text-align:center;

View file

@ -158,9 +158,17 @@ class User < ApplicationRecord
##
# Returns a user's profile picture URL.
# Partials should *not* directly call `gravatar_url`
def profile_picture(opts)
# TODO: Figure out how to align sizes?
picture.thumb.url || gravatar_url(opts)
def profile_picture(opts = {})
return gravatar_url(opts) unless picture.present?
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
def self.for_ichain_username(username, attributes)

View file

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

View file

@ -29,7 +29,7 @@
%li.dropdown
%a.dropdown-toggle{"data-toggle" => "dropdown", href: '#', id: "current-user-detail"}
= 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
%ul.dropdown-menu
= render 'layouts/user_menu'

View file

@ -12,13 +12,14 @@
= "Avatar"
= image_tag(@user.profile_picture(size: '48'), title: "Yo #{@user.name}!", alt: '')
= link_to 'Change your avatar here', 'https://gravatar.com'
%br
%p
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.'
- if @user.picture?
%p
Current Picture
%br
= image_tag(@user.picture.thumb.url, width: '20%')
= f.input :affiliation, as: :string,
hint: 'This could be a company, a user group, or nothing at all.'