2 class Element < ElementNestableContent
3 self.abstract_class = true
9 return nil if self._skip_load?
11 pm = Manifest.manifest.models[self.my_peta.parent_item_name].classify
12 define_singleton_method("parent_model") do
15 pfk = self.my_peta.parent_item_name + '_id'
16 define_singleton_method("parent_key") do
28 if self.parent_model.element?
29 self.parent_model.root_model
41 pi = self.__send__ self.class.parent_model.item_name
50 self.root.own? operators
53 def visible? operators
54 return false unless self.user_visible? operators
55 self.root.visible? operators
58 def self.list_opt_for_panel
62 def self.show_opt_for_panel
66 def self.json_opt_for_panel
90 def extend_element_name
91 self.extend_column ? self.attributes[extend_column] : self.element_name
94 def scenario_template with_engine = false
95 self.path_name(with_engine) + '/scenario'
98 def element_face_template with_engine = false
99 self.path_name(with_engine) + '/element_face'
102 def tag_attributes column = nil, opt = {}
104 r.merge({'data-parent_dom_id' => self.parent.dom_item_id}) if self.editize?
108 def merge_opacity s, opacity
110 'opacity' => opacity.to_f/100,
111 'filter' => "alpha(opacity=#{opacity})"
115 def copy_attributes opt = {}
118 r.delete self.parent_key
119 r.delete 't' unless opt[:all] # no problem at balloon, speech
120 r.delete 'z' unless opt[:all] # no problem at balloon, speech
121 r.delete 'created_at'
122 r.delete 'updated_at'