OSDN Git Service

t#32066:validate_forms
[pettanr/pettanr.git] / app / assets / javascripts / configurations.js.coffee
index ea2884c..091a42a 100644 (file)
@@ -1,5 +1,68 @@
 @configurations = {\r
   models: {\r
+    Panel: 'panel',\r
+    panel: {\r
+      class_name: 'Panel',\r
+      table_name: 'panels',\r
+      attributes: {\r
+        id: {\r
+          type: 'number',\r
+          primary_key: 1,\r
+          rules : {\r
+            number: true,\r
+          }\r
+        },\r
+        width: {\r
+          type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+            min: 1,\r
+          }\r
+        },\r
+        height: {\r
+          type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+            min: 1,\r
+          }\r
+        },\r
+        border: {\r
+          type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+            min: 0,\r
+          }\r
+        },\r
+        caption: {\r
+          type: 'text',\r
+          rules : {\r
+          }\r
+        },\r
+        publish: {\r
+          type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+          }\r
+        },\r
+        author_id: {\r
+          type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+          }\r
+        },\r
+        created_at: {\r
+          type: 'datetime',\r
+        },\r
+        updated_at: {\r
+          type: 'datetime',\r
+        }\r
+      }\r
+    },\r
     PanelPicture: 'panel_picture',\r
     panel_picture: {\r
       class_name: 'PanelPicture',\r
         id: {\r
           type: 'number',\r
           primary_key: 1,\r
+          rules : {\r
+            number: true,\r
+          }\r
         },\r
         panel_id: {\r
           type: 'number',\r
+          rules : {\r
+            number: true,\r
+          }\r
         },\r
         picture_id: {\r
           type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+          }\r
         },\r
         caption: {\r
           type: 'text',\r
+          rules : {\r
+          }\r
         },\r
         x: {\r
           type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+          }\r
         },\r
         y: {\r
           type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+          }\r
         },\r
         width: {\r
           type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+          }\r
         },\r
         height: {\r
           type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+          }\r
         },\r
         link: {\r
           type: 'text',\r
+          rules : {\r
+            url: true,\r
+          }\r
         },\r
         z: {\r
           type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+            min: 1,\r
+          }\r
         },\r
         t: {\r
           type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+            min: 0,\r
+          }\r
         },\r
         created_at: {\r
           type: 'datetime',\r
         id: {\r
           type: 'number',\r
           primary_key: 1,\r
+          rules : {\r
+            number: true,\r
+          }\r
         },\r
         panel_id: {\r
           type: 'number',\r
+          rules : {\r
+            number: true,\r
+          }\r
         },\r
         speech_balloon_template_id: {\r
           type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+          }\r
         },\r
         classname: {\r
           type: 'text',\r
+          rules : {\r
+            required: true,\r
+          }\r
         },\r
         z: {\r
           type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+            min: 1,\r
+          }\r
         },\r
         t: {\r
           type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+            min: 0,\r
+          }\r
         },\r
         settings: {\r
           type: 'text',\r
+          rules : {\r
+          }\r
         },\r
         caption: {\r
           type: 'text',\r
+          rules : {\r
+          }\r
         },\r
         created_at: {\r
           type: 'datetime',\r
         id: {\r
           type: 'number',\r
           primary_key: 1,\r
+          rules : {\r
+            number: true,\r
+          }\r
         },\r
         speech_balloon_id: {\r
           type: 'number',\r
+          rules : {\r
+            number: true,\r
+          }\r
         },\r
         system_picture_id: {\r
           type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+          }\r
         },\r
         x: {\r
           type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+          }\r
         },\r
         y: {\r
           type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+          }\r
         },\r
         width: {\r
           type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+            min: 1,\r
+          }\r
         },\r
         height: {\r
           type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+            min: 1,\r
+          }\r
         },\r
         r: {\r
           type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+          }\r
         },\r
         settings: {\r
           type: 'text',\r
+          rules : {\r
+          }\r
         },\r
         created_at: {\r
           type: 'datetime',\r
         id: {\r
           type: 'number',\r
           primary_key: 1,\r
+          rules : {\r
+            number: true,\r
+          }\r
         },\r
         speech_balloon_id: {\r
           type: 'number',\r
+          rules : {\r
+            number: true,\r
+          }\r
         },\r
         writing_format_id: {\r
           type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+          }\r
         },\r
         content: {\r
           type: 'text',\r
+          rules : {\r
+          }\r
         },\r
         font_size: {\r
           type: 'float',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+            min: 0,\r
+          }\r
         },\r
         text_align: {\r
           type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+            range: [0, 3],\r
+          }\r
         },\r
         fore_color: {\r
           type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+            range: [0, 0xffffff],\r
+          }\r
         },\r
         x: {\r
           type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+          }\r
         },\r
         y: {\r
           type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+          }\r
         },\r
         width: {\r
           type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+            min: 1,\r
+          }\r
         },\r
         height: {\r
           type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+            min: 1,\r
+          }\r
         },\r
         quotes: {\r
           type: 'text',\r
+          rules : {\r
+          }\r
         },\r
         settings: {\r
           type: 'text',\r
+          rules : {\r
+          }\r
         },\r
         created_at: {\r
           type: 'datetime',\r
         id: {\r
           type: 'number',\r
           primary_key: 1,\r
+          rules : {\r
+            number: true,\r
+          }\r
         },\r
         panel_id: {\r
           type: 'number',\r
+          rules : {\r
+            number: true,\r
+          }\r
         },\r
         picture_id: {\r
           type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+          }\r
         },\r
         caption: {\r
           type: 'text',\r
+          rules : {\r
+          }\r
         },\r
         repeat: {\r
           type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+            range: [0, 3],\r
+          }\r
         },\r
         x: {\r
           type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+          }\r
         },\r
         y: {\r
           type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+          }\r
         },\r
         z: {\r
           type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+            min: 1,\r
+          }\r
         },\r
         t: {\r
           type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+            min: 0,\r
+          }\r
         },\r
         created_at: {\r
           type: 'datetime',\r
         id: {\r
           type: 'number',\r
           primary_key: 1,\r
+          rules : {\r
+            number: true,\r
+          }\r
         },\r
         panel_id: {\r
           type: 'number',\r
+          rules : {\r
+            number: true,\r
+          }\r
         },\r
         caption: {\r
           type: 'text',\r
+          rules : {\r
+          }\r
         },\r
         code: {\r
           type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+            range: [0, 0xffffff],\r
+          }\r
         },\r
         z: {\r
           type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+            min: 1,\r
+          }\r
         },\r
         t: {\r
           type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+            min: 0,\r
+          }\r
         },\r
         created_at: {\r
           type: 'datetime',\r
         id: {\r
           type: 'number',\r
           primary_key: 1,\r
+          rules : {\r
+            number: true,\r
+          }\r
         },\r
         name: {\r
           type: 'text',\r
+          rules : {\r
+            required: true,\r
+          }\r
         },\r
         classname: {\r
           type: 'text',\r
+          rules : {\r
+            required: true,\r
+          }\r
         },\r
         caption: {\r
           type: 'text',\r
+          rules : {\r
+            required: true,\r
+          }\r
         },\r
         system_picture_id: {\r
           type: 'number',\r
+          rules : {\r
+            required: true,\r
+            number: true,\r
+          }\r
         },\r
         settings: {\r
           type: 'text',\r
+          rules : {\r
+            required: true,\r
+          }\r
         },\r
         created_at: {\r
           type: 'datetime',\r
     },\r
   ],\r
   forms: {\r
+    Panel: 'panel',\r
+    panel: {\r
+      attributes: {\r
+        caption: {\r
+          column: 'caption',\r
+          type: 'text',\r
+          label: {\r
+          },\r
+          options: {\r
+            row_break: true\r
+          }\r
+        },\r
+        width: {\r
+          column: 'width',\r
+          type: 'number',\r
+          label: {\r
+          },\r
+          options: {\r
+            size: 5, \r
+          },\r
+        },\r
+        height: {\r
+          column: 'height',\r
+          type: 'number',\r
+          label: {\r
+          },\r
+          options: {\r
+            size: 5, \r
+            row_break: true\r
+          }, \r
+        },\r
+        border: {\r
+          column: 'border',\r
+          type: 'number',\r
+          label: {\r
+          },\r
+          options: {\r
+            size: 5, \r
+          },\r
+        },\r
+        publish: {\r
+          column: 'publish',\r
+          type: 'select',\r
+          label: {\r
+          },\r
+          options: {\r
+            source: 'magic_number',\r
+            key: 'comic_visible_items',\r
+            size: 5, \r
+            row_break: true\r
+          }\r
+        },\r
+        id: {\r
+          column: 'id',\r
+          type: 'hidden',\r
+          label: {\r
+            type: 'hidden'\r
+          },\r
+          options: {\r
+          }\r
+        },\r
+        author_id: {\r
+          column: 'author_id',\r
+          type: 'hidden',\r
+          label: {\r
+            type: 'hidden'\r
+          },\r
+          options: {\r
+          }\r
+        },\r
+      },\r
+      fields: [\r
+        'caption',\r
+        'width',\r
+        'height',\r
+        'border',\r
+        'publish',\r
+        'id',\r
+        'author_id',\r
+      ]\r
+    },\r
     PanelPicture: 'panel_picture',\r
     panel_picture: {\r
-      fields: [\r
-        {\r
+      attributes: {\r
+        caption: {\r
           column: 'caption',\r
           type: 'text',\r
+          label: {\r
+          },\r
           options: {\r
-            label_break: false,\r
             row_break: true\r
           }\r
         },\r
-        {\r
+        x: {\r
           column: 'x',\r
           type: 'number',\r
+          label: {\r
+          },\r
           options: {\r
             size: 5, \r
           }\r
         },\r
-        {\r
+        y: {\r
           column: 'y',\r
           type: 'number',\r
+          label: {\r
+          },\r
           options: {\r
             size: 5, \r
             row_break: true\r
           }\r
         },\r
-        {\r
+        width: {\r
           column: 'width',\r
           type: 'number',\r
+          label: {\r
+          },\r
           options: {\r
             size: 5, \r
             row_break: true\r
             }\r
           },\r
         },\r
-        {\r
+        height: {\r
           column: 'height',\r
           type: 'number',\r
+          label: {\r
+          },\r
           options: {\r
             size: 5, \r
             row_break: true\r
             }\r
           },\r
         },\r
-        {\r
+        link: {\r
           column: 'link',\r
           type: 'text',\r
+          label: {\r
+          },\r
           options: {\r
             row_break: true\r
           }\r
         },\r
-        {\r
+        id: {\r
           column: 'id',\r
           type: 'hidden',\r
+          label: {\r
+            type: 'hidden'\r
+          },\r
           options: {\r
           }\r
         },\r
-        {\r
+        panel_id: {\r
           column: 'panel_id',\r
           type: 'hidden',\r
+          label: {\r
+            type: 'hidden'\r
+          },\r
           options: {\r
           }\r
         },\r
-        {\r
+        picture_id: {\r
           column: 'picture_id',\r
           type: 'hidden',\r
+          label: {\r
+            type: 'hidden'\r
+          },\r
           options: {\r
           }\r
         },\r
-        {\r
+        z: {\r
           column: 'z',\r
           type: 'hidden',\r
+          label: {\r
+            type: 'hidden'\r
+          },\r
           options: {\r
           }\r
         },\r
-        {\r
+        t: {\r
           column: 't',\r
           type: 'hidden',\r
+          label: {\r
+            type: 'hidden'\r
+          },\r
           options: {\r
           }\r
         },\r
+      },\r
+      fields: [\r
+        'caption',\r
+        'x',\r
+        'y',\r
+        'width',\r
+        'height',\r
+        'link',\r
+        'id',\r
+        'panel_id',\r
+        'picture_id',\r
+        'z',\r
+        't',\r
       ]\r
     },\r
-    CircleSpeechBalloon: 'circle_speech_balloon',\r
-    circle_speech_balloon: {\r
-      base: 'speech_balloon',\r
-      fields: [\r
-        {\r
+    speech_balloon: {\r
+      attributes: {\r
+        'speech_balloon.id': {\r
+          column: 'id',\r
+          type: 'hidden',\r
+          label: {\r
+            type: 'hidden'\r
+          },\r
+          options: {\r
+          }\r
+        },\r
+        'speech_balloon.panel_id': {\r
+          column: 'panel_id',\r
+          type: 'hidden',\r
+          label: {\r
+            type: 'hidden'\r
+          },\r
+          options: {\r
+          }\r
+        },\r
+        'speech_balloon.speech_balloon_template_id': {\r
+          column: 'speech_balloon_template_id',\r
+          type: 'hidden',\r
+          label: {\r
+            type: 'hidden'\r
+          },\r
+          options: {\r
+          }\r
+        },\r
+        'speech_balloon.caption': {\r
           column: 'caption',\r
           type: 'text',\r
+          label: {\r
+          },\r
           options: {\r
             row_break: true\r
           }\r
         },\r
-        {\r
+        'speech_balloon.z': {\r
+          column: 'z',\r
+          type: 'hidden',\r
+          label: {\r
+            type: 'hidden'\r
+          },\r
+          options: {\r
+          }\r
+        },\r
+        'speech_balloon.t': {\r
+          column: 't',\r
+          type: 'hidden',\r
+          label: {\r
+            type: 'hidden'\r
+          },\r
+          options: {\r
+          }\r
+        },\r
+        'speech_balloon.classname': {\r
+          column: 'classname',\r
+          type: 'hidden',\r
+          label: {\r
+            type: 'hidden'\r
+          },\r
+          options: {\r
+          }\r
+        },\r
+        'speech_balloon.settings': {\r
+          column: 'settings',\r
+          type: 'hidden',\r
+          label: {\r
+            type: 'hidden'\r
+          },\r
+          options: {\r
+          }\r
+        },\r
+        'balloon.id': {\r
+          model: 'balloon',\r
+          part: 'balloon',\r
+          column: 'id',\r
+          type: 'hidden',\r
+          label: {\r
+            type: 'hidden'\r
+          },\r
+          options: {\r
+          }\r
+        },\r
+        'balloon.speech_balloon_id': {\r
+          model: 'balloon',\r
+          part: 'balloon',\r
+          column: 'speech_balloon_id',\r
+          type: 'hidden',\r
+          label: {\r
+            type: 'hidden'\r
+          },\r
+          options: {\r
+          }\r
+        },\r
+        'balloon.system_picture_id': {\r
+          model: 'balloon',\r
+          part: 'balloon',\r
+          column: 'system_picture_id',\r
+          type: 'hidden',\r
+          label: {\r
+            type: 'hidden'\r
+          },\r
+          options: {\r
+          }\r
+        },\r
+        'balloon.r': {\r
+          model: 'balloon',\r
           part: 'balloon',\r
           column: 'r',\r
           type: 'number',\r
+          label: {\r
+          },\r
           options: {\r
             size: 5, \r
             row_break: true\r
             }\r
           }\r
         },\r
-        {\r
+        'balloon.x': {\r
+          model: 'balloon',\r
           part: 'balloon',\r
           column: 'x',\r
           type: 'number',\r
+          label: {\r
+          },\r
           options: {\r
             size: 5, \r
           }\r
         },\r
-        {\r
+        'balloon.y': {\r
+          model: 'balloon',\r
           part: 'balloon',\r
           column: 'y',\r
           type: 'number',\r
+          label: {\r
+          },\r
           options: {\r
             size: 5, \r
             row_break: true\r
           }\r
         },\r
-        {\r
+        'balloon.width': {\r
+          model: 'balloon',\r
           part: 'balloon',\r
           column: 'width',\r
           type: 'number',\r
+          label: {\r
+          },\r
           options: {\r
             size: 5, \r
           }\r
         },\r
-        {\r
+        'balloon.height': {\r
+          model: 'balloon',\r
           part: 'balloon',\r
           column: 'height',\r
           type: 'number',\r
+          label: {\r
+          },\r
           options: {\r
             size: 5, \r
             row_break: true\r
           }\r
         },\r
-        {\r
+        'balloon.settings': {\r
+          model: 'balloon',\r
           part: 'balloon',\r
-          column: 'id',\r
+          column: 'settings',\r
           type: 'hidden',\r
+          label: {\r
+            type: 'hidden'\r
+          },\r
           options: {\r
           }\r
         },\r
-        {\r
-          part: 'balloon',\r
-          column: 'speech_balloon_id',\r
-          type: 'hidden',\r
-          options: {\r
-          }\r
-        },\r
-        {\r
-          part: 'balloon',\r
-          column: 'system_picture_id',\r
-          type: 'hidden',\r
-          options: {\r
-          }\r
-        },\r
-        {\r
-          part: 'balloon',\r
-          column: 'settings',\r
-          type: 'hidden',\r
-          options: {\r
-          }\r
-        },\r
-        {\r
-          part: 'speech',\r
-          column: 'writing_format_id',\r
-          type: 'select',\r
-          options: {\r
-            source: 'model',\r
-            model: 'writing_format',\r
-            method: 'enable_list',\r
-            caption: 'caption'\r
-          }\r
-        },\r
-        {\r
-          part: 'speech',\r
-          column: 'font_size',\r
-          type: 'select',\r
-          options: {\r
-            source: 'magic_number',\r
-            key: 'speech_font_size_items',\r
-            row_break: true\r
-          }\r
-        },\r
-        {\r
-          part: 'speech',\r
-          column: 'text_align',\r
-          type: 'select',\r
-          options: {\r
-            source: 'magic_number',\r
-            key: 'speech_text_align_items',\r
-          }\r
-        },\r
-        {\r
-          part: 'speech',\r
-          column: 'quotes',\r
-          type: 'text',\r
-          options: {\r
-            size: 5, \r
-          }\r
-        },\r
-        {\r
-          part: 'speech',\r
-          column: 'content',\r
-          type: 'text_area',\r
-          options: {\r
-            label_break: true,\r
-            size: '45x5', \r
-          }\r
-        },\r
-        {\r
-          part: 'speech',\r
-          column: 'fore_color',\r
-          type: 'hidden',\r
-          options: {\r
-            label_break: true,\r
-          },\r
-          helpers: {\r
-            color: {\r
-              path: 'panels/color_helper',\r
-              options: {\r
-              },\r
-              wrapper: 'speech-fore_color-wrap'\r
-            }\r
-          }\r
-        },\r
-        {\r
-          part: 'speech',\r
-          column: 'id',\r
-          type: 'hidden',\r
-          options: {\r
-          }\r
-        },\r
-        {\r
-          part: 'speech',\r
-          column: 'speech_balloon_id',\r
-          type: 'hidden',\r
-          options: {\r
-          }\r
-        },\r
-        {\r
-          part: 'speech',\r
-          column: 'x',\r
-          type: 'hidden',\r
-          options: {\r
-          }\r
-        },\r
-        {\r
-          part: 'speech',\r
-          column: 'y',\r
-          type: 'hidden',\r
-          options: {\r
-          }\r
-        },\r
-        {\r
-          part: 'speech',\r
-          column: 'width',\r
-          type: 'hidden',\r
-          options: {\r
-          }\r
-        },\r
-        {\r
-          part: 'speech',\r
-          column: 'height',\r
-          type: 'hidden',\r
-          options: {\r
-          }\r
-        },\r
-        {\r
-          part: 'speech',\r
-          column: 'settings',\r
-          type: 'hidden',\r
-          options: {\r
-          }\r
-        },\r
-        {\r
-          column: 'id',\r
-          type: 'hidden',\r
-          options: {\r
-          }\r
-        },\r
-        {\r
-          column: 'panel_id',\r
-          type: 'hidden',\r
-          options: {\r
-          }\r
-        },\r
-        {\r
-          column: 'speech_balloon_template_id',\r
-          type: 'hidden',\r
-          options: {\r
-          }\r
-        },\r
-        {\r
-          column: 'classname',\r
-          type: 'hidden',\r
-          options: {\r
-          }\r
-        },\r
-        {\r
-          column: 'z',\r
-          type: 'hidden',\r
-          options: {\r
-          }\r
-        },\r
-        {\r
-          column: 't',\r
-          type: 'hidden',\r
-          options: {\r
-          }\r
-        },\r
-        {\r
-          column: 'settings',\r
-          type: 'hidden',\r
-          options: {\r
-          }\r
-        }\r
-      ]\r
-    },\r
-    PlainSpeechBalloon: 'plain_speech_balloon',\r
-    plain_speech_balloon: {\r
-      base: 'speech_balloon',\r
-      fields: [\r
-        {\r
-          column: 'caption',\r
-          type: 'text',\r
-          options: {\r
-            row_break: true\r
-          }\r
-        },\r
-        {\r
-          part: 'balloon',\r
-          column: 'r',\r
-          type: 'hidden',\r
-          options: {\r
-          },\r
-        },\r
-        {\r
-          part: 'balloon',\r
-          column: 'x',\r
-          type: 'number',\r
-          options: {\r
-            size: 5, \r
-          }\r
-        },\r
-        {\r
-          part: 'balloon',\r
-          column: 'y',\r
-          type: 'number',\r
-          options: {\r
-            size: 5, \r
-            row_break: true\r
-          }\r
-        },\r
-        {\r
-          part: 'balloon',\r
-          column: 'width',\r
-          type: 'number',\r
-          options: {\r
-            size: 5, \r
-          }\r
-        },\r
-        {\r
-          part: 'balloon',\r
-          column: 'height',\r
-          type: 'number',\r
-          options: {\r
-            size: 5, \r
-            row_break: true\r
-          }\r
-        },\r
-        {\r
-          part: 'balloon',\r
-          column: 'id',\r
-          type: 'hidden',\r
-          options: {\r
-          }\r
-        },\r
-        {\r
-          part: 'balloon',\r
-          column: 'speech_balloon_id',\r
-          type: 'hidden',\r
-          options: {\r
-          }\r
-        },\r
-        {\r
-          part: 'balloon',\r
-          column: 'system_picture_id',\r
-          type: 'hidden',\r
-          options: {\r
-          }\r
-        },\r
-        {\r
-          part: 'balloon',\r
-          column: 'settings',\r
-          type: 'hidden',\r
-          options: {\r
-          }\r
-        },\r
-        {\r
-          part: 'speech',\r
-          column: 'writing_format_id',\r
-          type: 'select',\r
-          options: {\r
-            source: 'model',\r
-            model: 'writing_format',\r
-            method: 'enable_list',\r
-            caption: 'caption'\r
-          }\r
-        },\r
-        {\r
-          part: 'speech',\r
-          column: 'font_size',\r
-          type: 'select',\r
-          options: {\r
-            source: 'magic_number',\r
-            key: 'speech_font_size_items',\r
-            row_break: true\r
-          }\r
-        },\r
-        {\r
-          part: 'speech',\r
-          column: 'text_align',\r
-          type: 'select',\r
-          options: {\r
-            source: 'magic_number',\r
-            key: 'speech_text_align_items',\r
-          }\r
-        },\r
-        {\r
-          part: 'speech',\r
-          column: 'quotes',\r
-          type: 'text',\r
-          options: {\r
-            size: 5, \r
-          }\r
-        },\r
-        {\r
-          part: 'speech',\r
-          column: 'content',\r
-          type: 'text_area',\r
-          options: {\r
-            label_break: true,\r
-            size: '45x5', \r
-          }\r
-        },\r
-        {\r
-          part: 'speech',\r
-          column: 'fore_color',\r
-          type: 'hidden',\r
-          options: {\r
-            label_break: true,\r
-          },\r
-          helpers: {\r
-            color: {\r
-              path: 'panels/color_helper',\r
-              options: {\r
-              },\r
-              wrapper: 'speech-fore_color-wrap'\r
-            }\r
-          }\r
-        },\r
-        {\r
-          part: 'speech',\r
-          column: 'id',\r
-          type: 'hidden',\r
-          options: {\r
-          }\r
-        },\r
-        {\r
-          part: 'speech',\r
-          column: 'speech_balloon_id',\r
-          type: 'hidden',\r
-          options: {\r
-          }\r
-        },\r
-        {\r
-          part: 'speech',\r
-          column: 'x',\r
-          type: 'hidden',\r
-          options: {\r
-          }\r
-        },\r
-        {\r
-          part: 'speech',\r
-          column: 'y',\r
-          type: 'hidden',\r
-          options: {\r
-          }\r
-        },\r
-        {\r
-          part: 'speech',\r
-          column: 'width',\r
-          type: 'hidden',\r
-          options: {\r
-          }\r
-        },\r
-        {\r
-          part: 'speech',\r
-          column: 'height',\r
-          type: 'hidden',\r
-          options: {\r
-          }\r
-        },\r
-        {\r
-          part: 'speech',\r
-          column: 'settings',\r
-          type: 'hidden',\r
-          options: {\r
-          }\r
-        },\r
-        {\r
+        'speech.id': {\r
+          model: 'speech',\r
+          part: 'speech',\r
           column: 'id',\r
           type: 'hidden',\r
+          label: {\r
+            type: 'hidden'\r
+          },\r
           options: {\r
           }\r
         },\r
-        {\r
-          column: 'panel_id',\r
-          type: 'hidden',\r
-          options: {\r
-          }\r
-        },\r
-        {\r
-          column: 'speech_balloon_template_id',\r
-          type: 'hidden',\r
-          options: {\r
-          }\r
-        },\r
-        {\r
-          column: 'classname',\r
-          type: 'hidden',\r
-          options: {\r
-          }\r
-        },\r
-        {\r
-          column: 'z',\r
-          type: 'hidden',\r
-          options: {\r
-          }\r
-        },\r
-        {\r
-          column: 't',\r
-          type: 'hidden',\r
-          options: {\r
-          }\r
-        },\r
-        {\r
-          column: 'settings',\r
+        'speech.speech_balloon_id': {\r
+          model: 'speech',\r
+          part: 'speech',\r
+          column: 'speech_balloon_id',\r
           type: 'hidden',\r
+          label: {\r
+            type: 'hidden'\r
+          },\r
           options: {\r
           }\r
-        }\r
-      ]\r
-    },\r
-    SquareSpeechBalloon: 'square_speech_balloon',\r
-    square_speech_balloon: {\r
-      base: 'speech_balloon',\r
-      fields: [\r
-        {\r
-          column: 'caption',\r
-          type: 'text',\r
-          options: {\r
-            row_break: true\r
-          }\r
         },\r
-        {\r
-          part: 'balloon',\r
-          column: 'r',\r
+        'speech.x': {\r
+          model: 'speech',\r
+          part: 'speech',\r
+          column: 'x',\r
           type: 'hidden',\r
-          options: {\r
+          label: {\r
+            type: 'hidden'\r
           },\r
-        },\r
-        {\r
-          part: 'balloon',\r
-          column: 'x',\r
-          type: 'number',\r
           options: {\r
-            size: 5, \r
           }\r
         },\r
-        {\r
-          part: 'balloon',\r
+        'speech.y': {\r
+          model: 'speech',\r
+          part: 'speech',\r
           column: 'y',\r
-          type: 'number',\r
-          options: {\r
-            size: 5, \r
-            row_break: true\r
-          }\r
-        },\r
-        {\r
-          part: 'balloon',\r
-          column: 'width',\r
-          type: 'number',\r
-          options: {\r
-            size: 5, \r
-          }\r
-        },\r
-        {\r
-          part: 'balloon',\r
-          column: 'height',\r
-          type: 'number',\r
-          options: {\r
-            size: 5, \r
-            row_break: true\r
-          }\r
-        },\r
-        {\r
-          part: 'balloon',\r
-          column: 'id',\r
-          type: 'hidden',\r
-          options: {\r
-          }\r
-        },\r
-        {\r
-          part: 'balloon',\r
-          column: 'speech_balloon_id',\r
           type: 'hidden',\r
+          label: {\r
+            type: 'hidden'\r
+          },\r
           options: {\r
           }\r
         },\r
-        {\r
-          part: 'balloon',\r
-          column: 'system_picture_id',\r
+        'speech.width': {\r
+          model: 'speech',\r
+          part: 'speech',\r
+          column: 'width',\r
           type: 'hidden',\r
+          label: {\r
+            type: 'hidden'\r
+          },\r
           options: {\r
           }\r
         },\r
-        {\r
-          part: 'balloon',\r
-          column: 'settings',\r
+        'speech.height': {\r
+          model: 'speech',\r
+          part: 'speech',\r
+          column: 'height',\r
           type: 'hidden',\r
+          label: {\r
+            type: 'hidden'\r
+          },\r
           options: {\r
           }\r
         },\r
-        {\r
+        'speech.writing_format_id': {\r
+          model: 'speech',\r
           part: 'speech',\r
           column: 'writing_format_id',\r
           type: 'select',\r
+          label: {\r
+          },\r
           options: {\r
             source: 'model',\r
             model: 'writing_format',\r
             caption: 'caption'\r
           }\r
         },\r
-        {\r
+        'speech.font_size': {\r
+          model: 'speech',\r
           part: 'speech',\r
           column: 'font_size',\r
           type: 'select',\r
+          label: {\r
+          },\r
           options: {\r
             source: 'magic_number',\r
             key: 'speech_font_size_items',\r
             row_break: true\r
           }\r
         },\r
-        {\r
+        'speech.text_align': {\r
+          model: 'speech',\r
           part: 'speech',\r
           column: 'text_align',\r
           type: 'select',\r
+          label: {\r
+          },\r
           options: {\r
             source: 'magic_number',\r
             key: 'speech_text_align_items',\r
           }\r
         },\r
-        {\r
+        'speech.quotes': {\r
+          model: 'speech',\r
           part: 'speech',\r
           column: 'quotes',\r
           type: 'text',\r
+          label: {\r
+          },\r
           options: {\r
             size: 5, \r
           }\r
         },\r
-        {\r
+        'speech.content': {\r
+          model: 'speech',\r
           part: 'speech',\r
           column: 'content',\r
           type: 'text_area',\r
+          label: {\r
+            row_break: true\r
+          },\r
           options: {\r
-            label_break: true,\r
             size: '45x5', \r
           }\r
         },\r
-        {\r
+        'speech.fore_color': {\r
+          model: 'speech',\r
           part: 'speech',\r
           column: 'fore_color',\r
           type: 'hidden',\r
+          label: {\r
+            row_break: true\r
+          },\r
           options: {\r
-            label_break: true,\r
           },\r
           helpers: {\r
             color: {\r
             }\r
           }\r
         },\r
-        {\r
-          part: 'speech',\r
-          column: 'id',\r
-          type: 'hidden',\r
-          options: {\r
-          }\r
-        },\r
-        {\r
-          part: 'speech',\r
-          column: 'speech_balloon_id',\r
-          type: 'hidden',\r
-          options: {\r
-          }\r
-        },\r
-        {\r
-          part: 'speech',\r
-          column: 'x',\r
-          type: 'hidden',\r
-          options: {\r
-          }\r
-        },\r
-        {\r
-          part: 'speech',\r
-          column: 'y',\r
-          type: 'hidden',\r
-          options: {\r
-          }\r
-        },\r
-        {\r
+        'speech.settings': {\r
+          model: 'speech',\r
           part: 'speech',\r
-          column: 'width',\r
+          column: 'settings',\r
           type: 'hidden',\r
+          label: {\r
+            type: 'hidden'\r
+          },\r
           options: {\r
           }\r
         },\r
-        {\r
-          part: 'speech',\r
-          column: 'height',\r
+      },\r
+    },\r
+    CircleSpeechBalloon: 'circle_speech_balloon',\r
+    circle_speech_balloon: {\r
+      base: 'speech_balloon',\r
+      attributes: {\r
+      },\r
+      fields: [\r
+          'speech_balloon.caption',\r
+          'balloon.r',\r
+          'balloon.x',\r
+          'balloon.y',\r
+          'balloon.width',\r
+          'balloon.height',\r
+          'balloon.id',\r
+          'balloon.speech_balloon_id',\r
+          'balloon.system_picture_id',\r
+          'balloon.settings',\r
+          'speech.writing_format_id',\r
+          'speech.font_size',\r
+          'speech.text_align',\r
+          'speech.quotes',\r
+          'speech.content',\r
+          'speech.fore_color',\r
+          'speech.id',\r
+          'speech.speech_balloon_id',\r
+          'speech.x',\r
+          'speech.y',\r
+          'speech.width',\r
+          'speech.height',\r
+          'speech.settings',\r
+          'speech_balloon.id',\r
+          'speech_balloon.panel_id',\r
+          'speech_balloon.speech_balloon_template_id',\r
+          'speech_balloon.classname',\r
+          'speech_balloon.z',\r
+          'speech_balloon.t',\r
+          'speech_balloon.settings',\r
+      ]\r
+    },\r
+    PlainSpeechBalloon: 'plain_speech_balloon',\r
+    plain_speech_balloon: {\r
+      base: 'speech_balloon',\r
+      attributes: {\r
+        'balloon.r': {\r
+          model: 'balloon',\r
+          part: 'balloon',\r
+          column: 'r',\r
           type: 'hidden',\r
+          label: {\r
+            type: 'hidden'\r
+          },\r
           options: {\r
-          }\r
+          },\r
         },\r
-        {\r
-          part: 'speech',\r
-          column: 'settings',\r
+      },\r
+      fields: [\r
+        'speech_balloon.caption',\r
+        'balloon.r',\r
+        'balloon.x',\r
+        'balloon.y',\r
+        'balloon.width',\r
+        'balloon.height',\r
+        'balloon.id',\r
+        'balloon.speech_balloon_id',\r
+        'balloon.system_picture_id',\r
+        'balloon.settings',\r
+        'speech.writing_format_id',\r
+        'speech.font_size',\r
+        'speech.text_align',\r
+        'speech.quotes',\r
+        'speech.content',\r
+        'speech.fore_color',\r
+        'speech.id',\r
+        'speech.speech_balloon_id',\r
+        'speech.x',\r
+        'speech.y',\r
+        'speech.width',\r
+        'speech.height',\r
+        'speech.settings',\r
+        'speech_balloon.id',\r
+        'speech_balloon.panel_id',\r
+        'speech_balloon.speech_balloon_template_id',\r
+        'speech_balloon.classname',\r
+        'speech_balloon.z',\r
+        'speech_balloon.t',\r
+        'speech_balloon.settings',\r
+      ]\r
+    },\r
+    SquareSpeechBalloon: 'square_speech_balloon',\r
+    square_speech_balloon: {\r
+      base: 'speech_balloon',\r
+      attributes: {\r
+        'balloon.r': {\r
+          model: 'balloon',\r
+          part: 'balloon',\r
+          column: 'r',\r
           type: 'hidden',\r
+          label: {\r
+            type: 'hidden'\r
+          },\r
           options: {\r
-          }\r
+          },\r
         },\r
-        {\r
+      },\r
+      fields: [\r
+        'speech_balloon.caption',\r
+        'balloon.r',\r
+        'balloon.x',\r
+        'balloon.y',\r
+        'balloon.width',\r
+        'balloon.height',\r
+        'balloon.id',\r
+        'balloon.speech_balloon_id',\r
+        'balloon.system_picture_id',\r
+        'balloon.settings',\r
+        'speech.writing_format_id',\r
+        'speech.font_size',\r
+        'speech.text_align',\r
+        'speech.quotes',\r
+        'speech.content',\r
+        'speech.fore_color',\r
+        'speech.id',\r
+        'speech.speech_balloon_id',\r
+        'speech.x',\r
+        'speech.y',\r
+        'speech.width',\r
+        'speech.height',\r
+        'speech.settings',\r
+        'speech_balloon.id',\r
+        'speech_balloon.panel_id',\r
+        'speech_balloon.speech_balloon_template_id',\r
+        'speech_balloon.classname',\r
+        'speech_balloon.z',\r
+        'speech_balloon.t',\r
+        'speech_balloon.settings',\r
+      ]\r
+    },\r
+    GroundPicture: 'ground_picture',\r
+    ground_picture: {\r
+      attributes: {\r
+        id: {\r
           column: 'id',\r
           type: 'hidden',\r
+          label: {\r
+            type: 'hidden'\r
+          },\r
           options: {\r
           }\r
         },\r
-        {\r
+        panel_id: {\r
           column: 'panel_id',\r
           type: 'hidden',\r
+          label: {\r
+            type: 'hidden'\r
+          },\r
           options: {\r
           }\r
         },\r
-        {\r
-          column: 'speech_balloon_template_id',\r
-          type: 'hidden',\r
-          options: {\r
-          }\r
-        },\r
-        {\r
-          column: 'classname',\r
-          type: 'hidden',\r
-          options: {\r
-          }\r
-        },\r
-        {\r
-          column: 'z',\r
-          type: 'hidden',\r
-          options: {\r
-          }\r
-        },\r
-        {\r
-          column: 't',\r
+        picture_id: {\r
+          column: 'picture_id',\r
           type: 'hidden',\r
+          label: {\r
+            type: 'hidden'\r
+          },\r
           options: {\r
           }\r
         },\r
-        {\r
-          column: 'settings',\r
-          type: 'hidden',\r
-          options: {\r
-          }\r
-        }\r
-      ]\r
-    },\r
-    GroundPicture: 'ground_picture',\r
-    ground_picture: {\r
-      fields: [\r
-        {\r
+        caption: {\r
           column: 'caption',\r
           type: 'text',\r
+          label: {\r
+          },\r
           options: {\r
             row_break: true\r
           }\r
         },\r
-        {\r
+        repeat: {\r
           column: 'repeat',\r
           type: 'select',\r
+          label: {\r
+          },\r
           options: {\r
             source: 'magic_number',\r
             key: 'ground_picture_repeat_items',\r
             row_break: true\r
           }\r
         },\r
-        {\r
+        x: {\r
           column: 'x',\r
           type: 'number',\r
+          label: {\r
+          },\r
           options: {\r
             size: 5, \r
           }\r
         },\r
-        {\r
+        y: {\r
           column: 'y',\r
           type: 'number',\r
+          label: {\r
+          },\r
           options: {\r
             size: 5, \r
             row_break: true\r
           }\r
         },\r
-        {\r
+        z: {\r
           column: 'z',\r
           type: 'hidden',\r
+          label: {\r
+            type: 'hidden'\r
+          },\r
           options: {\r
           }\r
         },\r
-        {\r
+        t: {\r
           column: 't',\r
           type: 'hidden',\r
+          label: {\r
+            type: 'hidden'\r
+          },\r
           options: {\r
           }\r
         },\r
-        {\r
+      },\r
+      fields: [\r
+        'caption',\r
+        'repeat',\r
+        'x',\r
+        'y',\r
+        'z',\r
+        't',\r
+        'id',\r
+        'panel_id',\r
+        'picture_id',\r
+      ]\r
+    },\r
+    GroundColor: 'ground_color',\r
+    ground_color: {\r
+      attributes: {\r
+        id: {\r
           column: 'id',\r
           type: 'hidden',\r
+          label: {\r
+            type: 'hidden'\r
+          },\r
           options: {\r
           }\r
         },\r
-        {\r
+        panel_id: {\r
           column: 'panel_id',\r
           type: 'hidden',\r
+          label: {\r
+            type: 'hidden'\r
+          },\r
           options: {\r
           }\r
         },\r
-        {\r
-          column: 'picture_id',\r
-          type: 'hidden',\r
-          options: {\r
-          }\r
-        },\r
-      ]\r
-    },\r
-    GroundColor: 'ground_color',\r
-    ground_color: {\r
-      fields: [\r
-        {\r
+        caption: {\r
           column: 'caption',\r
           type: 'text',\r
+          label: {\r
+          },\r
           options: {\r
             row_break: true\r
           }\r
         },\r
-        {\r
+        code: {\r
           column: 'code',\r
           type: 'hidden',\r
+          label: {\r
+            row_break: true\r
+          },\r
           options: {\r
-            label_break: true,\r
             row_break: true\r
           }\r
           helpers: {\r
             }\r
           },\r
         },\r
-        {\r
+        z: {\r
           column: 'z',\r
           type: 'hidden',\r
+          label: {\r
+            type: 'hidden'\r
+          },\r
           options: {\r
           }\r
         },\r
-        {\r
+        t: {\r
           column: 't',\r
           type: 'hidden',\r
+          label: {\r
+            type: 'hidden'\r
+          },\r
           options: {\r
           }\r
         },\r
-        {\r
-          column: 'id',\r
-          type: 'hidden',\r
-          options: {\r
-          }\r
-        },\r
-        {\r
-          column: 'panel_id',\r
-          type: 'hidden',\r
-          options: {\r
-          }\r
-        },\r
+      },\r
+      fields: [\r
+        'id',\r
+        'panel_id',\r
+        'caption',\r
+        'code',\r
+        'z',\r
+        't',\r
       ]\r
     }\r
   },\r