OSDN Git Service

t#31650:move tree
authoryasushiito <yas@pen-chan.jp>
Sat, 3 Aug 2013 02:46:21 +0000 (11:46 +0900)
committeryasushiito <yas@pen-chan.jp>
Sat, 3 Aug 2013 02:46:21 +0000 (11:46 +0900)
app/assets/javascripts/panels.js.coffee

index b52fde9..3c23064 100644 (file)
@@ -19,15 +19,37 @@ $ ->
       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
@@ -38,17 +60,11 @@ $ ->
   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