orbit-basic/app/models/page_part.rb

81 lines
1.8 KiB
Ruby
Raw Normal View History

2011-05-18 02:00:00 +00:00
class PagePart
include Mongoid::Document
include Mongoid::Timestamps
field :name
field :content, localize: true
field :kind
field :public_r_tag
2012-04-23 18:30:40 +00:00
field :public_r_tag_object_id, :default => nil
2012-05-08 20:15:45 +00:00
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 => []
2012-08-09 07:25:30 +00:00
2012-07-16 08:13:38 +00:00
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 => []
2012-12-28 07:30:46 +00:00
field :widget_options ,:type=>Hash
2012-07-16 08:13:38 +00:00
field :widget_data_count
2011-05-18 02:00:00 +00:00
belongs_to :page
belongs_to :module_app
2011-05-18 02:00:00 +00:00
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
2012-12-28 07:30:46 +00:00
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
else
I18n.t(:undefined)
end
end
protected
2012-08-09 07:25:30 +00:00
def delete_empty_widget_field
if self.widget_field
self.widget_field.reject! { |wf| (wf[0].blank? || wf[1].blank?) }
end
2012-08-09 07:25:30 +00:00
# self.widget_field.delete("") if self.widget_field
end
def update_parent
self.page.save
end
2011-05-18 02:00:00 +00:00
end