81 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Ruby
		
	
	
	
			
		
		
	
	
			81 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Ruby
		
	
	
	
| class PagePart
 | |
|   include Mongoid::Document
 | |
|   include Mongoid::Timestamps
 | |
| 
 | |
|   field :name
 | |
|   field :content, localize: true
 | |
|   field :kind, default: "none"
 | |
|   field :public_r_tag
 | |
|   field :public_r_tag_object_id, :default => nil
 | |
|   field :public_r_tag_option, :default => nil
 | |
|   field :page_title, localize: true
 | |
|   field :widget_path
 | |
|   field :category,type: Array, :default => []
 | |
|   field :tag, type: Array,:default => []
 | |
|   
 | |
|   field :widget_style
 | |
|   field :widget_field , :type => Array,:default => []
 | |
| 
 | |
|   field :widget_field_name , :type => Array,:default => []
 | |
|   field :widget_class , :type => Array,:default => []
 | |
|   field :widget_sat_to_link , :type => Array,:default => []
 | |
|   
 | |
|   field :widget_options ,:type=>Hash
 | |
|   field :widget_data_count
 | |
| 
 | |
|   belongs_to :page
 | |
|   belongs_to :module_app
 | |
| 
 | |
|   before_save :delete_empty_widget_field
 | |
|   after_save :update_parent
 | |
| 
 | |
|   def default_widget_field_sat_to_link?(i)
 | |
|     case widget_sat_to_link[i]
 | |
|       when 'true'
 | |
|         true
 | |
|       when 'false'
 | |
|         false
 | |
|       else
 | |
|         nil
 | |
|     end
 | |
|   end
 | |
| 
 | |
|   def default_widget_field_name
 | |
|     return widget_field_name
 | |
|   end
 | |
| 
 | |
|   def widget_field=(settings)
 | |
|     settings.each_with_index do |setting,index|
 | |
|       self.widget_field_name[index] =  setting["field_name"]
 | |
|       self.widget_class[index] = setting["class"]
 | |
|       self.widget_sat_to_link[index] = setting["sat_to_link"]
 | |
|     end
 | |
|   end
 | |
| 
 | |
|   def edit_title
 | |
|     case self.kind
 | |
|     when 'text'
 | |
|       I18n.t(:text)
 | |
|     when 'public_r_tag'
 | |
|       self.public_r_tag.humanize
 | |
|     when 'module_widget'
 | |
|       self.module_app.title rescue I18n.t(:undefined)
 | |
|     else
 | |
|       I18n.t(:undefined)
 | |
|     end
 | |
|   end
 | |
| 
 | |
|   protected
 | |
|   
 | |
|   def delete_empty_widget_field
 | |
|   	if self.widget_field
 | |
|         self.widget_field.reject! { |wf| (wf[0].blank? || wf[1].blank?) }
 | |
|   	end
 | |
|     # self.widget_field.delete("") if self.widget_field
 | |
|   end
 | |
| 
 | |
|   def update_parent
 | |
|     self.page.save
 | |
|   end
 | |
| 
 | |
| end |