changes for ad_banner

This commit is contained in:
chris committed 2013-10-19 19:17:04 +08:00
1 parent 19bf2f2be5
commit 92d2af13f2
45 files changed
+500 -794

No files matched your search

+13 -53
View File
@@ -5,67 +5,27 @@ class AdBanner
include OrbitTag::Taggable
include OrbitModel::Authorizable
field :title
field :transition_msec,type: Integer
field :ad_fx #TODO Design should explain
field :best_size,:default => ''
field :height, type: Integer
field :speed, type: Integer
field :title
field :timeout, type: Integer
field :width, type: Integer
before_save :save_or_destroy
validates_uniqueness_of :title
validates :title , :length => { :minimum => 2 }
has_many :ad_images , dependent: :delete
validates_uniqueness_of :title
validates :title, :length => { :minimum => 2 }
validates :height, :speed, :timeout, :width, :presence => true
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"]
attr_writer :transition_sec
AfterObjectAuthUrl = '/panel/page_content/back_end/page_contexts'
APP_NAME = 'ad_banners'
ObjectAuthTitlesOptions = %W{edit}
def pp_object
title
def size
"#{self.width} x #{self.height}"
end
def transition_sec
self.transition_msec/1000 rescue nil
def timeout_in_min
self.timeout*1000 rescue 0
end
def transition_sec=(sec)
self.transition_msec = sec.to_i*1000
end
def preview_clone
preview_banner = self.clone
preview_banner.ad_images = self.ad_images
preview_banner
end
# def new_ad_images(*attrs)
# debugger
# a=1
# 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
+7 -31
View File
@@ -1,53 +1,29 @@
class AdImage
include Mongoid::Document
include Mongoid::Timestamps
include OrbitModel::TimeFrame
include OrbitTag::Taggable
mount_uploader :file, ImageUploader
field :title, localize: true
field :context, localize: true
field :to_save, :type => Boolean
field :to_destroy, :type => Boolean
field :direct_to_after_click,type: Boolean
field :weight ,type: Integer ,default: 1
field :context, localize: true
field :weight, type: Integer, default: 1
field :out_link #the link itself
field :link_open #how will the link be opened
LINK_OPEN_TYPES = ["new_window","local"]
field :post_date,type: Date
field :unpost_date,type: Date
LINK_OPEN_TYPES = ["local", "new_window"]
belongs_to :ad_banner
before_validation :add_http
validates :file, :presence => true
validates :out_link, :format => /^(http|https):\/\/(([a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5})|((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?))(:[0-9]{1,5})?(\/.*)?/i, :allow_blank => true
def display?
if (self.post_date <= Date.today && (self.unpost_date.nil? || self.unpost_date>= Date.today) rescue false)
return true
end
return false
end
def get_delay_time
time = ''
if self.time_to_next.nil?
time = '1000'
else
time = (self.time_to_next.to_i * 1000).to_s
end
time
end
validates :title, :at_least_one => true
protected
def add_http
unless self.out_link[/^http:\/\//] || self.out_link[/^https:\/\//] || self.out_link.blank?
unless self.out_link.blank? || self.out_link[/^http:\/\//] || self.out_link[/^https:\/\//]
self.out_link = 'http://' + self.out_link
end
end