$ ->\r
confirm_confirm_confirm = () ->\r
confirm( )\r
+ new_element_index = {}\r
+ new_element_index[pettanr_current_panel_id] = 0\r
+ \r
+ escapeHTML = (t) ->\r
+ $("<div/>").text(t).html()\r
\r
set_tree_value = (keys, last_attr, value) ->\r
key = keys.shift()\r
return true\r
else\r
return false\r
- is_tree = (o) ->\r
- if o.attr('tree') \r
+ is_var = (o) ->\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_types = {'panel_picture': 'panel_pictures', 'speech_balloon': 'speech_balloons', 'ground_picture': 'ground_pictures', 'ground_color': 'ground_colors'}\r
+ element_type_to_table = (element_type) ->\r
+ element_types[element_type]\r
+ make_tree = (attr, o) ->\r
+ if is_var(o)\r
+ tree = 'panels-' + o.attr('panel_id') + '-'\r
+ if is_element(o)\r
+ tree = tree + element_type_to_table(o.attr('element_type')) + '_attributes-' + o.attr('element_id') + '-'\r
+ if is_element_part(o)\r
+ tree = tree + o.attr('element_part_type') + '_attributes-'\r
+ tree = tree + o.attr('column')\r
+ keys = tree.split('-')\r
+ set_tree_value(keys, attr, o.val())\r
\r
panel_tag_id = (element) ->\r
'#panel' + element.attr('panel_id')\r
refresh_attribute = () ->\r
attr = {}\r
$('input').map ->\r
- if is_tree($(@)) \r
- keys = $(@).attr('tree').split('-')\r
- set_tree_value(keys, attr, $(this).val())\r
+ make_tree(attr, $(@))\r
$('textarea').map ->\r
- if is_tree($(@)) \r
- keys = $(@).attr('tree').split('-')\r
- set_tree_value(keys, attr, $(this).val())\r
+ make_tree(attr, $(@))\r
$('select').map ->\r
- if is_tree($(@)) \r
- keys = $(@).attr('tree').split('-')\r
- set_tree_value(keys, attr, $(this).val())\r
+ make_tree(attr, $(@))\r
$('#pettanr-panel-json').val(JSON.stringify(attr['panels'][pettanr_current_panel_id.toString() ]))\r
\r
$('#tabs').tabs()\r
$('#elements-tabs').tabs()\r
+ $('#new-element-tabs').tabs()\r
+ $('#new-speech_balloon-tabs').tabs()\r
$('#elements-tabs').addClass( "ui-tabs-vertical ui-helper-clearfix" )\r
$("#elements-tabs li").removeClass("ui-corner-top")\r
$("#elements-tabs li").addClass("ui-corner-left")\r
+ $("#elements-tabs li").map ->\r
+ $(@).mouseover -> \r
+ switch $(@).attr('element_type')\r
+ when 'speech_balloon'\r
+ trace = element_tag_id($(@)) \r
+ t = $('img', $(trace))\r
+ when 'panel_picture'\r
+ trace = element_tag_id($(@)) + 'img'\r
+ t = $(trace)\r
+ else\r
+ t = null\r
+ if t\r
+ $('.ui-resizable-handle', t.parent()).map ->\r
+ $(@).css('display', 'block')\r
+ $(@).mouseout -> \r
+ switch $(@).attr('element_type')\r
+ when 'speech_balloon'\r
+ trace = element_tag_id($(@)) \r
+ t = $('img', $(trace))\r
+ when 'panel_picture'\r
+ trace = element_tag_id($(@)) + 'img'\r
+ t = $(trace)\r
+ else\r
+ t = null\r
+ if t\r
+ $('.ui-resizable-handle', t.parent()).map ->\r
+ $(@).css('display', 'none')\r
\r
#destroy button\r
$('.ui-icon-destroy').map ->\r
when 'content'\r
trace = element_tag_id($(@))\r
speech_trace = '#panel' + $(@).attr('panel_id') + 'speech_balloon' + $(@).attr('element_id') + 'speech' + $(@).attr('element_part_id')\r
- v = $(@).val()\r
+ v = escapeHTML($(@).val())\r
$(speech_trace).html(v)\r
\r
# ground-picture\r
d = $(@).parent()\r
trace = element_tag_id(d)\r
f = $(trace + 'width')\r
- w = f.val() / 2\r
+ w = Math.floor(f.val() / 2)\r
f.val(w)\r
$(trace + 'img').width(Math.abs(w))\r
$(trace + 'img').parent().width(Math.abs(w))\r
d = $(@).parent()\r
trace = element_tag_id(d)\r
f = $(trace + 'height')\r
- h = f.val() / 2\r
+ h = Math.floor(f.val() / 2)\r
f.val(h)\r
$(trace + 'img').height(Math.abs(h))\r
$(trace + 'img').parent().height(Math.abs(h))\r
$(@).hide()\r
$(@).parent().hide() #label\r
\r
+ # add button on new form\r
+ $('.submit-new-form').map ->\r
+ $(@).html('<button class="new-element">add</button>')\r
+ \r
+ $('.new-element').map ->\r
+ $(@).click -> \r
+ false\r
+ \r