class PettanrSheeter @pettanr_current_sheet_id = 0 @new_element_index = {} @new_element_index[PettanrSheeter.pettanr_current_sheet_id] = 0 @current_sheet = () -> $('#sheet' + PettanrSheeter.pettanr_current_sheet_id.toString()) @set_tree_value = (keys, last_attr, value) -> key = keys.shift() if keys.length <= 0 last_attr[key] = value else last_attr[key] = last_attr[key] || {} PettanrSheeter.set_tree_value(keys, last_attr[key], value) @is_editting = () -> trace = '#sheet' + PettanrSheeter.pettanr_current_sheet_id.toString() + 'wrapper' if $(trace) and $(trace).attr('editable') return true else return false @is_editable = (p) -> if p.parent().attr('editable') return true else return false @is_var = (o) -> if parseInt(o.attr('no_attr')) > 0 return false else if o.attr('column') if o.attr('column') == '_destroy' and o.val().length < 1 return false else return true else return false @is_element = (o) -> if o.attr('element_type') return true else return false @is_element_part = (o) -> if o.attr('element_part_type') return true else return false @element_is = (element_type, o) -> if PettanrSheeter.is_element(o) and o.attr('element_type') == element_type return true else return false @element_types = {'sheet_panel': 'sheet_panels'} @element_type_to_table = (element_type) -> PettanrSheeter.element_types[element_type] @make_tree = (attr, o) -> if PettanrSheeter.is_var(o) tree = 'sheets-' + o.attr('sheet_id') + '-' if PettanrSheeter.is_element(o) tree = tree + PettanrSheeter.element_type_to_table(o.attr('element_type')) + '_attributes-' + o.attr('element_id') + '-' if PettanrSheeter.is_element_part(o) tree = tree + o.attr('element_part_type') + '_attributes-' tree = tree + o.attr('column') keys = tree.split('-') PettanrSheeter.set_tree_value(keys, attr, o.val()) @sheet_tag_id = (element) -> '#sheet' + element.attr('sheet_id') @element_tag_id = (element) -> '#sheet' + element.attr('sheet_id') + element.attr('element_type') + element.attr('element_id') @element_part_tag_id = (element_part) -> '#sheet' + element_part.attr('sheet_id') + element_part.attr('element_type') + element_part.attr('element_id') + element_part.attr('element_part_type') + element_part.attr('element_part_id') @refresh_attribute = (field) -> attr = {} $('input').map -> PettanrSheeter.make_tree(attr, $(@)) $('textarea').map -> PettanrSheeter.make_tree(attr, $(@)) $('select').map -> PettanrSheeter.make_tree(attr, $(@)) field.val(JSON.stringify(attr['sheets'][PettanrSheeter.pettanr_current_sheet_id.toString() ])) @PettanrSheeter = PettanrSheeter