validates :height, :presence => true, :numericality => true, :natural_number => true
# validates :settings, :presence => true
+ before_validation :valid_encode
+
+ def valid_encode
+ ['content', 'settings'].each do |a|
+ next if attributes[a] == nil
+ raise Pettanr::BadRequest unless attributes[a].valid_encoding?
+ end
+ end
+
+ def supply_default
+ self.x = 0
+ self.y = 0
+ self.width = 100
+ self.height = 100
+ end
+
def visible? roles
if MagicNumber['run_mode'] == 0
return false unless guest_role_check(roles)
self.speech_balloon.panel.visible? roles
end
+ def get_speech_balloon
+ self.speech_balloon
+ end
+
+ def get_panel_id
+ if self.get_speech_balloon == nil or self.get_speech_balloon.panel == nil or self.get_speech_balloon.panel.new_record?
+ 0
+ else
+ self.get_speech_balloon.panel.id
+ end
+ end
+
+ def tag_id c = nil
+ 'panel' + tag_panel_id + tag_element_type + tag_element_id + tag_element_part_type + tag_element_part_id + c.to_s
+ end
+
+ def field_tag_id f
+ self.tag_id + f.to_s
+ end
+
+ def tag_panel_id
+ self.get_panel_id.to_s
+ end
+
+ def tag_element_id
+ r = if self.get_speech_balloon == nil or self.get_speech_balloon.new_record?
+ 0
+ else
+ self.get_speech_balloon.panel.id
+ end
+ r.to_s
+ end
+
+ def tag_element_type
+ 'speech_balloon'
+ end
+
+ def tag_element_part_id
+ self.new_record? ? '0' : self.id.to_s
+ end
+
+ def tag_element_part_type
+ 'speech'
+ end
+
+ def field_tree f
+ 'panels-' + self.tag_panel_id + '-speech_balloons_attributes-' + self.tag_element_id + '-speech_attributes-' + f.to_s
+ end
+
def self.default_page_size
25
end
end
def self.list_opt
- {:include => {:speech_balloon => {:panel => {:author => {}}, :balloons => {}, :speech_balloon_template => {}} }}
+ {:include => {:speech_balloon => {:panel => {:author => {}}, :balloon => {}, :speech_balloon_template => {}} }}
end
def self.list_json_opt
- {:include => {:speech_balloon => {:include => {:panel => {:include => {:author => {} }}, :balloons => {}, :speech_balloon_template => {} }}}}
+ {:include => {:speech_balloon => {:include => {:panel => {:include => {:author => {} }}, :balloon => {}, :speech_balloon_template => {} }}}}
end
def self.show cid, au
end
def self.show_opt
- {:include => {:speech_balloon => {:panel => {:author => {}}, :balloons => {}, :speech_balloon_template => {} }}}
+ {:include => {:speech_balloon => {:panel => {:author => {}}, :balloon => {}, :speech_balloon_template => {} }}}
end
def self.show_json_opt
- {:include => {:speech_balloon => {:include => {:panel => {:include => {:author => {} }}, :balloons => {}, :speech_balloon_template => {} }}}}
+ {:include => {:speech_balloon => {:include => {:panel => {:include => {:author => {} }}, :balloon => {}, :speech_balloon_template => {} }}}}
+ end
+
+ def scenario
+ ERB::Util.html_escape(self.content)
+ end
+
+ def plain_scenario
+ self.content + "\n"
end
end