self.panel_id = nil
self.x = 15
self.y = 15
- self.z = 1
- self.t = nil
+ if self.sheet
+ self.t = self.sheet.new_t
+ self.z = self.sheet.new_z
+ else
+ self.z = 1
+ self.t = nil
+ end
end
def overwrite au
'[' + ary.map {|i| i.sheet_panel_as_json(au) }.join(',') + ']'
end
- def self.licensed_pictures sheet_panels
- r = {}
- sheet_panels.each do |sheet_panel|
- r.merge!(sheet_panel.panel.licensed_pictures) if sheet_panel.panel
+ def licensed_pictures
+ if self.panel
+ self.panel.licensed_pictures
+ else
+ []
end
- r
end
def self.new_t sheet_id
res
end
+ # element.rb
+ def self.colum_structures
+ @@colum_structures ||= {
+ }
+ end
+
+ def self.path_name with_engine = false
+ self.to_s.tableize
+ end
+
+ def new_index
+ @new_index
+ end
+
+ def new_index= v
+ @new_index = v
+ end
+
+ def new_sheet
+ @new_sheet
+ end
+
+ def new_sheet= v
+ @new_sheet = v
+ end
+
+ def get_sheet
+ self.sheet || @new_sheet
+ end
+
+ def tag_id c = nil
+ 'sheet' + self.tag_sheet_id + self.tag_element_type + self.tag_element_id + c.to_s
+ end
+
+ def field_tag_id f
+ self.tag_id + f.to_s
+ end
+
+ def tag_sheet_id
+ self.get_sheet.new_record? ? '0' : self.get_sheet.id.to_s
+ end
+
+ def tag_element_id
+ self.new_record? ? '0' : self.id.to_s
+ end
+
+ def tag_element_type
+ 'sheet_panel'
+ end
+
+ def tag_new_index
+ self.new_index.to_s
+ end
+
+ def path_name with_engine = false
+ self.class.path_name(with_engine)
+ end
+
+ def form_template with_engine = false
+ self.path_name(with_engine) + '/form'
+ end
+
+ def scenario_template with_engine = false
+ self.path_name(with_engine) + '/scenario'
+ end
+
+ def element_face_template with_engine = false
+ self.path_name(with_engine) + '/element_face'
+ end
+
+ def form_helper_template(colum_name)
+ self.class.colum_structures[colum_name][:helper]
+ end
+
+ def tag_attributes column = nil, opt = {}
+ {
+ :id => self.field_tag_id(column), :sheet_id => self.tag_sheet_id,
+ :element_id => self.tag_element_id, :element_type => self.tag_element_type
+ }.merge(opt)
+ end
+
+ def field_tag_attributes column, no_attr, opt = {}
+ self.tag_attributes(column).merge(
+ {:column => column, :new_index => self.tag_new_index, :no_attr => no_attr}
+ ).merge(opt)
+ end
+
+ #render element by body
+ def any_tag_attributes name = nil, opt = {}
+ r = self.tag_attributes(name)
+ r.merge!(
+ {:new_index => self.tag_new_index}
+ ) if self.new_index
+ r.merge(opt)
+ end
+
+ def select_tag_attributes(selected, column, no_attr)
+ [
+ :last, :first,
+ {:html => {:selected => selected}},
+ self.field_tag_attributes(column, no_attr)
+ ]
+ end
+
+ def tag_attr column = nil, opt = {}
+ self.tag_attributes(column, opt).to_attr
+ end
+
+ def field_tag_attr column, no_attr, opt = {}
+ self.field_tag_attributes(column, no_attr, opt).to_attr
+ end
+
+ def any_tag_attr name = nil, opt = {}
+ self.any_tag_attributes(name, opt).to_attr
+ end
+
end