68 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Ruby
		
	
	
	
			
		
		
	
	
			68 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Ruby
		
	
	
	
| class AdBanner
 | |
|   include Mongoid::Document
 | |
|   include Mongoid::Timestamps
 | |
|   include Mongoid::MultiParameterAttributes
 | |
|   include OrbitCoreLib::ObjectAuthable
 | |
| 
 | |
|   field :title
 | |
|   field :transition_msec,type: Integer
 | |
|   field :ad_fx  #TODO Design should explain
 | |
|   field :best_size,:default => ''
 | |
| 
 | |
|   before_save :save_or_destroy
 | |
|   validates_uniqueness_of :title
 | |
|   validates :title , :length => { :minimum => 2 }
 | |
|   has_many :ad_images , dependent: :delete
 | |
|   
 | |
|   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
 | |
|   end
 | |
| 
 | |
|   def transition_sec
 | |
|     self.transition_msec/1000 rescue nil
 | |
|   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 |