orbit-basic/app/models/ad_banner.rb

53 lines
1.5 KiB
Ruby
Raw Normal View History

2012-01-31 10:31:31 +00:00
class AdBanner
include Mongoid::Document
include Mongoid::Timestamps
include Mongoid::MultiParameterAttributes
field :title
field :picture_position
field :post_date,type: Date
field :unpost_date,type: Date
field :context
field :direct_to_after_click,type: Boolean
2012-02-02 01:55:09 +00:00
field :ad_fx #TODO Design should explain
2012-01-31 10:31:31 +00:00
before_save :save_or_destroy
embeds_many :ad_images, :cascade_callbacks => true
2012-02-02 01:55:09 +00:00
FX_TYPES = ["blindX","blindY","blindZ","cover","curtainX","curtainY","fade","fadeZoom","growX","growY","scrollUp","scrollDown","scrollLeft","scrollRight","scrollHorz","scrollVert","shuffle","slideX","slideY","toss","turnUp","turnDown","turnLeft","turnRight","uncover","wipe","zoom"]
def display?
if (self.post_date <= Date.today && (self.unpost_date.nil? || self.unpost_date>= Date.today))
return true
end
return false
end
2012-01-31 10:31:31 +00:00
def new_ad_images=(*attrs)
attrs[0].each do |attr| #Loop by JSs,Themes,Imgs
unless attr[:file].nil?
self.ad_images << AdImage.new(attr)
end
end
end
def existing_ad_images=(*attrs)
attrs[0].each do |attr| #Loop by JSs,Themes,Imgs
ad_image = self.ad_images.find attr[0]
ad_image.update_attributes(attr[1])
end
end
def save_or_destroy
self.ad_images.each do |ad_image|
if ad_image.to_save?
ad_image.save
end
if ad_image.to_destroy?
ad_image.destroy
end
end
end
end