Maintain size of sponsor logos

Places logo on a white background if image is smaller than the given
constrains.
Resizes the logo if image is larger than constrains.
Validation of presence of logo was moved cause file field wasn't getting
marked as required field ('*' thingy) in form.
`- if logo presence` was removed cause logo is mandatory field.
This commit is contained in:
Aditya Prakash 2016-04-20 12:13:07 +05:30
parent 647a40be63
commit af08d843a8
3 changed files with 26 additions and 7 deletions

View file

@ -0,0 +1,12 @@
module SponsorsHelper
# returns the url to be used for logo on basis of sponsorship level position
def get_logo(sponsor)
if sponsor.sponsorship_level.position == 1
sponsor.logo.url(:first)
elsif sponsor.sponsorship_level.position == 2
sponsor.logo.url(:second)
else
sponsor.logo.url(:others)
end
end
end

View file

@ -2,12 +2,20 @@ class Sponsor < ActiveRecord::Base
belongs_to :sponsorship_level
belongs_to :conference
has_attached_file :logo,
styles: { thumb: '100x100>', large: '300x300>' }
styles: { thumb: '100x100>',
first: '320x180>',
second: '320x150>',
others: '320x120>' },
# places logo on a white background to maintain size
convert_options: {
first: '-background white -gravity center -extent 320x180',
second: '-background white -gravity center -extent 320x150',
others: '-background white -gravity center -extent 320x120'
}
validates_attachment_content_type :logo,
content_type: [/jpg/, /jpeg/, /png/, /gif/],
size: { in: 0..500.kilobytes },
presence: true
size: { in: 0..500.kilobytes }
validates_presence_of :name, :website_url, :sponsorship_level
validates_presence_of :name, :website_url, :sponsorship_level, :logo
end

View file

@ -14,9 +14,8 @@
.row
- slice.each do |sponsor|
.col-md-4.col-sm-4.col-top
- if sponsor.logo.present?
= link_to(sponsor.website_url, class: 'thumbnail') do
= image_tag sponsor.logo, class: "img-responsive img-sponsor img-sponsor-#{sponsorship_level.position}", title: "#{sponsor.description}"
= link_to(sponsor.website_url, class: 'thumbnail') do
= image_tag get_logo(sponsor), class: "img-responsive img-sponsor img-sponsor-#{sponsorship_level.position}", title: "#{sponsor.description}"
-if @conference.contact and !@conference.contact.sponsor_email.blank?
.row
.col-md-12