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