//= require underscore
//= require backbone
//= require configurations
-//= require item
-//= require element
-//= require_directory ./models
//= require pettanr_editor
//= require pettanr_sheeter
//= require writing_formats
@configurations = {\r
- filers: {\r
+ models: {\r
+ Scroll: 'scroll',\r
scroll: {\r
- symbol: {\r
- type: 'image',\r
- name: '<%= asset_path('item.png') %>',\r
- },\r
- caption: {\r
- type: 'column',\r
- name: 'title',\r
- link: {\r
- type: 'action'\r
- name: 'play',\r
+ class_name: 'Scroll',\r
+ table_name: 'scrolls',\r
+ associations: {\r
+ belongs_to: {\r
+ author: {\r
+ id_column: 'author_id'\r
+ }, \r
+ },\r
+ has_many: {\r
+ scroll_panels: {\r
+ foreign_key: 'scroll_id',\r
+ list_method: 'list_by_scroll',\r
+ }, \r
+ panels: {\r
+ through: 'scroll_panels',\r
+ foreign_key: 'scroll_id'\r
+ list_method: 'list_by_scroll',\r
+ }, \r
},\r
},\r
- summary: {\r
- type: 'template',\r
- name: 'summary',\r
+ attributes: {\r
+ id: {\r
+ type: 'number',\r
+ primary_key: 1,\r
+ rules : {\r
+ number: true,\r
+ }\r
+ },\r
+ title: {\r
+ type: 'text',\r
+ rules : {\r
+ required: true,\r
+ }\r
+ },\r
+ description: {\r
+ type: 'text',\r
+ rules : {\r
+ }\r
+ },\r
+ visible: {\r
+ type: 'number',\r
+ rules : {\r
+ required: true,\r
+ number: true,\r
+ },\r
+ source: {\r
+ type: 'magic_number',\r
+ key: 'scroll_visible_items',\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
- edit: {\r
- type: 'default',\r
+ select: {\r
+ method: 'list',\r
+ caption: {\r
+ type: 'column',\r
+ name: 'title'\r
+ },\r
},\r
},\r
+ ScrollPanel: 'scroll_panel',\r
scroll_panel: {\r
- symbol: {\r
- type: 'image',\r
- name: '<%= asset_path('item.png') %>',\r
- link: {\r
- type: 'none'\r
+ class_name: 'ScrollPanel',\r
+ table_name: 'scroll_panels',\r
+ associations: {\r
+ belongs_to: {\r
+ panel: {\r
+ id_column: 'panel_id'\r
+ }, \r
+ scroll: {\r
+ id_column: 'scroll_id'\r
+ }, \r
+ },\r
+ has_many: {\r
},\r
},\r
- caption: {\r
- type: 'none',\r
- },\r
- summary: {\r
- type: 'template',\r
- name: 'summary',\r
- },\r
- edit: {\r
- type: 'none'\r
- },\r
+ attributes: {\r
+ id: {\r
+ type: 'number',\r
+ primary_key: 1,\r
+ rules : {\r
+ number: true,\r
+ }\r
+ },\r
+ scroll_id: {\r
+ type: 'number',\r
+ rules : {\r
+ required: true,\r
+ number: true,\r
+ }\r
+ },\r
+ panel_id: {\r
+ type: 'number',\r
+ rules : {\r
+ required: true,\r
+ number: true,\r
+ }\r
+ },\r
+ t: {\r
+ type: 'number',\r
+ rules : {\r
+ required: true,\r
+ number: true,\r
+ min: 0,\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
+ Comic: 'comic',\r
comic: {\r
- symbol: {\r
- type: 'image',\r
- name: '<%= asset_path('item.png') %>',\r
- },\r
- caption: {\r
- type: 'column',\r
- name: 'title',\r
+ class_name: 'Comic',\r
+ table_name: 'comics',\r
+ associations: {\r
+ belongs_to: {\r
+ author: {\r
+ id_column: 'author_id'\r
+ }, \r
+ },\r
+ has_many: {\r
+ stories: {\r
+ foreign_key: 'comic_id'\r
+ list_method: 'list_by_comic',\r
+ }, \r
+ },\r
+ has_many_through: {\r
+ },\r
},\r
- summary: {\r
- type: 'template',\r
- name: 'summary',\r
+ attributes: {\r
+ id: {\r
+ type: 'number',\r
+ primary_key: 1,\r
+ rules : {\r
+ number: true,\r
+ }\r
+ },\r
+ title: {\r
+ type: 'text',\r
+ rules : {\r
+ required: true,\r
+ }\r
+ },\r
+ description: {\r
+ type: 'text',\r
+ rules : {\r
+ }\r
+ },\r
+ visible: {\r
+ type: 'number',\r
+ rules : {\r
+ required: true,\r
+ number: true,\r
+ },\r
+ source: {\r
+ type: 'magic_number',\r
+ key: 'comic_visible_items',\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
- edit: {\r
- type: 'default',\r
+ select: {\r
+ method: 'list',\r
+ caption: {\r
+ type: 'column',\r
+ name: 'title'\r
+ },\r
},\r
},\r
+ Story: 'story',\r
story: {\r
- symbol: {\r
- type: 'image',\r
- name: '<%= asset_path('item.png') %>',\r
- },\r
- caption: {\r
- type: 'method',\r
- name: 'title_with_t',\r
- link: {\r
- type: 'action'\r
- name: 'play',\r
+ class_name: 'Story',\r
+ table_name: 'stories',\r
+ associations: {\r
+ belongs_to: {\r
+ comic: {\r
+ id_column: 'comic_id'\r
+ }, \r
+ },\r
+ has_many: {\r
+ story_sheets: {\r
+ foreign_key: 'story_id',\r
+ list_method: 'list_by_story',\r
+ }, \r
+ sheets: {\r
+ through: 'story_sheets',\r
+ foreign_key: 'story_id'\r
+ list_method: 'list_by_story',\r
+ }, \r
},\r
},\r
- summary: {\r
- type: 'template',\r
- name: 'summary',\r
+ attributes: {\r
+ id: {\r
+ type: 'number',\r
+ primary_key: 1,\r
+ rules : {\r
+ number: true,\r
+ }\r
+ },\r
+ comic_id: {\r
+ type: 'number',\r
+ rules : {\r
+ number: true,\r
+ }\r
+ },\r
+ title: {\r
+ type: 'text',\r
+ rules : {\r
+ }\r
+ },\r
+ description: {\r
+ type: 'text',\r
+ rules : {\r
+ }\r
+ },\r
+ t: {\r
+ type: 'number',\r
+ rules : {\r
+ required: true,\r
+ number: true,\r
+ min: 0,\r
+ }\r
+ },\r
+ visible: {\r
+ type: 'number',\r
+ rules : {\r
+ required: true,\r
+ number: true,\r
+ },\r
+ source: {\r
+ type: 'magic_number',\r
+ key: 'story_visible_items',\r
+ },\r
+ },\r
+ created_at: {\r
+ type: 'datetime',\r
+ },\r
+ updated_at: {\r
+ type: 'datetime',\r
+ }\r
},\r
- edit: {\r
- type: 'default',\r
+ select: {\r
+ method: 'list',\r
+ caption: {\r
+ type: 'method',\r
+ name: 'title_with_t',\r
+ },\r
},\r
},\r
+ StorySheet: 'story_sheet',\r
story_sheet: {\r
- symbol: {\r
- type: 'image',\r
- name: '<%= asset_path('item.png') %>',\r
- link: {\r
- type: 'none'\r
+ class_name: 'StorySheet',\r
+ table_name: 'story_sheets',\r
+ associations: {\r
+ belongs_to: {\r
+ story: {\r
+ id_column: 'story_id'\r
+ }, \r
+ sheet: {\r
+ id_column: 'sheet_id'\r
+ }, \r
+ },\r
+ has_many: {\r
},\r
},\r
- caption: {\r
- type: 'none',\r
- },\r
- summary: {\r
- type: 'template',\r
- name: 'summary',\r
- },\r
- edit: {\r
- type: 'none'\r
- },\r
+ attributes: {\r
+ id: {\r
+ type: 'number',\r
+ primary_key: 1,\r
+ rules : {\r
+ number: true,\r
+ }\r
+ },\r
+ story_id: {\r
+ type: 'number',\r
+ rules : {\r
+ number: true,\r
+ }\r
+ },\r
+ sheet_id: {\r
+ type: 'number',\r
+ rules : {\r
+ number: true,\r
+ }\r
+ },\r
+ t: {\r
+ type: 'number',\r
+ rules : {\r
+ required: true,\r
+ number: true,\r
+ min: 0,\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
+ Sheet: 'sheet',\r
sheet: {\r
- symbol: {\r
- type: 'image',\r
- name: '<%= asset_path('item.png') %>',\r
- },\r
- caption: {\r
- type: 'column',\r
- name: 'caption',\r
- link: {\r
- type: 'action'\r
- name: 'play',\r
+ class_name: 'Sheet',\r
+ table_name: 'sheets',\r
+ associations: {\r
+ belongs_to: {\r
+ author: {\r
+ id_column: 'author_id'\r
+ }, \r
+ },\r
+ has_many: {\r
+ story_sheets: {\r
+ foreign_key: 'story_id',\r
+ list_method: 'list_by_sheet',\r
+ }, \r
+ stories: {\r
+ through: 'story_sheets',\r
+ foreign_key: 'sheet_id'\r
+ list_method: 'list_by_sheet',\r
+ }, \r
+ sheet_panels: {\r
+ foreign_key: 'sheet_id',\r
+ list_method: 'list_by_sheet',\r
+ }, \r
+ panels: {\r
+ through: 'sheet_panels',\r
+ foreign_key: 'sheet_id'\r
+ list_method: 'list_by_sheet',\r
+ }, \r
},\r
},\r
- summary: {\r
- type: 'template',\r
- name: 'summary',\r
+ attributes: {\r
+ id: {\r
+ type: 'number',\r
+ primary_key: 1,\r
+ rules : {\r
+ number: true,\r
+ }\r
+ },\r
+ caption: {\r
+ type: 'text',\r
+ rules : {\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
+ visible: {\r
+ type: 'number',\r
+ rules : {\r
+ required: true,\r
+ number: true,\r
+ },\r
+ source: {\r
+ type: 'magic_number',\r
+ key: 'sheet_visible_items',\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
- edit: {\r
- type: 'default',\r
+ select: {\r
+ method: 'list',\r
+ caption: {\r
+ type: 'column',\r
+ name: 'caption'\r
+ },\r
},\r
},\r
+ SheetPanel: 'sheet_panel',\r
sheet_panel: {\r
- symbol: {\r
- type: 'image',\r
- name: '<%= asset_path('item.png') %>',\r
- link: {\r
- type: 'none'\r
+ class_name: 'SheetPanel',\r
+ table_name: 'sheet_panels',\r
+ associations: {\r
+ belongs_to: {\r
+ sheet: {\r
+ id_column: 'sheet_id'\r
+ }, \r
+ panel: {\r
+ id_column: 'panel_id'\r
+ }, \r
+ },\r
+ has_many: {\r
},\r
},\r
- caption: {\r
- type: 'none',\r
- },\r
- summary: {\r
- type: 'template',\r
- name: 'summary',\r
- },\r
- edit: {\r
- type: 'none'\r
- },\r
+ attributes: {\r
+ id: {\r
+ type: 'number',\r
+ primary_key: 1,\r
+ rules : {\r
+ number: true,\r
+ }\r
+ },\r
+ sheet_id: {\r
+ type: 'number',\r
+ rules : {\r
+ number: true,\r
+ }\r
+ },\r
+ panel_id: {\r
+ type: 'number',\r
+ rules : {\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
+ 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
+ author_id: {\r
+ type: 'number',\r
+ rules : {\r
+ number: true,\r
+ }\r
+ },\r
+ created_at: {\r
+ type: 'datetime',\r
+ },\r
+ updated_at: {\r
+ type: 'datetime',\r
+ }\r
+ }\r
},\r
+ Panel: 'panel',\r
panel: {\r
- symbol: {\r
- type: 'image',\r
- name: '<%= asset_path('item.png') %>',\r
- },\r
- caption: {\r
- type: 'method',\r
- name: 'plain_scenario',\r
- link: {\r
- type: 'none'\r
+ class_name: 'Panel',\r
+ table_name: 'panels',\r
+ associations: {\r
+ belongs_to: {\r
+ author: {\r
+ id_column: 'author_id'\r
+ }, \r
},\r
- },\r
- summary: {\r
- type: 'template',\r
- name: 'summary',\r
- },\r
- edit: {\r
- type: 'default',\r
- },\r
- },\r
- panel_picture: {\r
- symbol: {\r
- type: 'picture',\r
- name: 'symbol_option',\r
- },\r
- caption: {\r
- type: 'column',\r
- name: 'caption',\r
- },\r
- summary: {\r
- type: 'template',\r
- name: 'summary',\r
- },\r
- edit: {\r
- type: 'none',\r
- },\r
- },\r
- speech_balloon: {\r
- symbol: {\r
- type: 'picture',\r
- name: 'symbol_option',\r
- },\r
- caption: {\r
- type: 'method',\r
- name: 'plain_scenario',\r
- link: {\r
- type: 'none'\r
+ has_many: {\r
+ scroll_panels: {\r
+ foreign_key: 'panel_id',\r
+ list_method: 'list_by_panel',\r
+ }, \r
+ scrolls: {\r
+ through: 'scroll_panels',\r
+ foreign_key: 'panel_id'\r
+ list_method: 'list_by_panel',\r
+ }, \r
+ sheet_panels: {\r
+ foreign_key: 'panel_id',\r
+ list_method: 'list_by_panel',\r
+ }, \r
+ sheets: {\r
+ through: 'sheet_panels',\r
+ foreign_key: 'panel_id'\r
+ list_method: 'list_by_panel',\r
+ }, \r
+ panel_pictures: {\r
+ foreign_key: 'panel_id',\r
+ list_method: 'list_by_panel',\r
+ }, \r
+ speech_balloons: {\r
+ foreign_key: 'panel_id',\r
+ list_method: 'list_by_panel',\r
+ }, \r
+ ground_pictures: {\r
+ foreign_key: 'panel_id',\r
+ list_method: 'list_by_panel',\r
+ }, \r
+ ground_colors: {\r
+ foreign_key: 'panel_id',\r
+ list_method: 'list_by_panel',\r
+ }, \r
},\r
},\r
- summary: {\r
- type: 'template',\r
- name: 'summary',\r
- },\r
- edit: {\r
- type: 'none',\r
- },\r
- },\r
- speech: {\r
- symbol: {\r
- type: 'picture',\r
- name: 'symbol_option',\r
- },\r
- caption: {\r
- type: 'column',\r
- name: 'content',\r
- link: {\r
- type: 'none'\r
- },\r
- },\r
- summary: {\r
- type: 'template',\r
- name: 'summary',\r
- },\r
- edit: {\r
- type: 'none',\r
- },\r
- },\r
- balloon: {\r
- symbol: {\r
- type: 'picture',\r
- name: 'symbol_option',\r
- },\r
- caption: {\r
- type: 'none',\r
- },\r
- summary: {\r
- type: 'template',\r
- name: 'summary',\r
- },\r
- edit: {\r
- type: 'none',\r
- },\r
- },\r
- ground_picture: {\r
- symbol: {\r
- type: 'picture',\r
- name: 'symbol_option',\r
- },\r
- caption: {\r
- type: 'column',\r
- name: 'caption',\r
- },\r
- summary: {\r
- type: 'template',\r
- name: 'summary',\r
- },\r
- edit: {\r
- type: 'none',\r
- },\r
- },\r
- ground_color: {\r
- symbol: {\r
- type: 'template',\r
- name: 'symbol',\r
- },\r
- caption: {\r
- type: 'column',\r
- name: 'caption',\r
- },\r
- summary: {\r
- type: 'template',\r
- name: 'summary',\r
- },\r
- edit: {\r
- type: 'none',\r
- },\r
- },\r
- original_picture: {\r
- symbol: {\r
- type: 'picture',\r
- name: 'symbol_option',\r
- },\r
- caption: {\r
- type: 'method',\r
- name: 'revision',\r
- link: {\r
- type: 'action'\r
- name: 'history',\r
- },\r
- },\r
- summary: {\r
- type: 'template',\r
- name: 'summary',\r
- },\r
- edit: {\r
- type: 'template',\r
- name: 'publish',\r
- },\r
- },\r
- picture: {\r
- },\r
- resource_picture: {\r
- symbol: {\r
- type: 'picture',\r
- name: 'symbol_option',\r
- },\r
- caption: {\r
- type: 'none',\r
- },\r
- summary: {\r
- type: 'template',\r
- name: 'summary',\r
- },\r
- edit: {\r
- type: 'none',\r
- },\r
- },\r
- speech_balloon_template: {\r
- symbol: {\r
- type: 'picture',\r
- name: 'symbol_option',\r
- },\r
- caption: {\r
- type: 'column',\r
- name: 'caption',\r
- },\r
- summary: {\r
- type: 'none',\r
- },\r
- edit: {\r
- type: 'none',\r
- },\r
- },\r
- writing_format: {\r
- symbol: {\r
- type: 'image',\r
- name: '<%= asset_path('item.png') %>',\r
- },\r
- caption: {\r
- type: 'column',\r
- name: 'caption',\r
- },\r
- summary: {\r
- type: 'none',\r
- },\r
- edit: {\r
- type: 'none',\r
- },\r
- },\r
- license_group: {\r
- symbol: {\r
- type: 'image',\r
- name: '<%= asset_path('item.png') %>',\r
- },\r
- caption: {\r
- type: 'column',\r
- name: 'caption',\r
- link: {\r
- type: 'url_column'\r
- name: 'url',\r
- },\r
- },\r
- summary: {\r
- type: 'none',\r
- },\r
- edit: {\r
- type: 'none',\r
- },\r
- },\r
- license: {\r
- symbol: {\r
- type: 'image',\r
- name: '<%= asset_path('item.png') %>',\r
- },\r
- caption: {\r
- type: 'method',\r
- name: 'caption_with_group',\r
- link: {\r
- type: 'url_column'\r
- name: 'url',\r
- },\r
- },\r
- summary: {\r
- type: 'template',\r
- name: 'summary',\r
- },\r
- edit: {\r
- type: 'none',\r
- },\r
- },\r
- author: {\r
- symbol: {\r
- type: 'image',\r
- name: '<%= asset_path('item.png') %>',\r
- },\r
- caption: {\r
- type: 'column',\r
- name: 'name',\r
- },\r
- summary: {\r
- type: 'template',\r
- name: 'summary',\r
- },\r
- edit: {\r
- type: 'account',\r
- },\r
- },\r
- artist: {\r
- symbol: {\r
- type: 'image',\r
- name: '<%= asset_path('item.png') %>',\r
- },\r
- caption: {\r
- type: 'column',\r
- name: 'name',\r
- },\r
- summary: {\r
- type: 'template',\r
- name: 'summary',\r
- },\r
- edit: {\r
- type: 'account',\r
- },\r
- },\r
- system_picture: {\r
- symbol: {\r
- type: 'picture',\r
- name: 'symbol_option',\r
- },\r
- caption: {\r
- type: 'none',\r
- },\r
- summary: {\r
- type: 'none',\r
- },\r
- edit: {\r
- type: 'none',\r
- },\r
- },\r
- },\r
- models: {\r
- Sheet: 'sheet',\r
- sheet: {\r
- class_name: 'Sheet',\r
- table_name: 'sheets',\r
attributes: {\r
id: {\r
type: 'number',\r
number: true,\r
}\r
},\r
- }\r
- },\r
- Panel: 'panel',\r
- panel: {\r
- class_name: 'Panel',\r
- table_name: 'panels',\r
- attributes: {\r
- id: {\r
+ width: {\r
type: 'number',\r
- primary_key: 1,\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
+ min: 1,\r
}\r
},\r
height: {\r
rules : {\r
required: true,\r
number: true,\r
- }\r
+ },\r
+ source: {\r
+ type: 'magic_number',\r
+ key: 'panel_visible_items',\r
+ },\r
},\r
author_id: {\r
type: 'number',\r
updated_at: {\r
type: 'datetime',\r
}\r
- }\r
+ },\r
+ select: {\r
+ method: 'list',\r
+ caption: {\r
+ type: 'method',\r
+ name: 'plain_scenario',\r
+ },\r
+ },\r
},\r
PanelPicture: 'panel_picture',\r
panel_picture: {\r
class_name: 'PanelPicture',\r
table_name: 'panel_pictures',\r
+ associations: {\r
+ belongs_to: {\r
+ panel: {\r
+ id_column: 'panel_id'\r
+ }, \r
+ },\r
+ has_many: {\r
+ },\r
+ },\r
attributes: {\r
id: {\r
type: 'number',\r
class_name: 'SpeechBalloon',\r
table_name: 'speech_balloons',\r
extend: 'classname', \r
+ associations: {\r
+ belongs_to: {\r
+ panel: {\r
+ id_column: 'panel_id'\r
+ }, \r
+ },\r
+ has_many: {\r
+ },\r
+ has_one: {\r
+ balloon: {\r
+ foreign_key: 'speech_balloon_id',\r
+ list_method: 'list_by_speech_balloon',\r
+ }, \r
+ speech: {\r
+ foreign_key: 'speech_balloon_id',\r
+ list_method: 'list_by_speech_balloon',\r
+ }, \r
+ },\r
+ },\r
attributes: {\r
id: {\r
type: 'number',\r
updated_at: {\r
type: 'datetime',\r
}\r
- }\r
+ },\r
+ select: {\r
+ method: 'list',\r
+ caption: {\r
+ type: 'method',\r
+ name: 'plain_scenario',\r
+ },\r
+ },\r
}, \r
Balloon: 'balloon',\r
balloon: {\r
class_name: 'Balloon',\r
table_name: 'balloons',\r
+ associations: {\r
+ belongs_to: {\r
+ speech_balloon: {\r
+ id_column: 'speech_balloon_id'\r
+ }, \r
+ system_picture: {\r
+ id_column: 'system_picture_id'\r
+ }, \r
+ },\r
+ has_many: {\r
+ },\r
+ },\r
attributes: {\r
id: {\r
type: 'number',\r
speech: {\r
class_name: 'Speech',\r
table_name: 'speeches',\r
+ associations: {\r
+ belongs_to: {\r
+ speech_balloon: {\r
+ id_column: 'speech_balloon_id'\r
+ }, \r
+ writing_format: {\r
+ id_column: 'writing_format_id'\r
+ }, \r
+ },\r
+ has_many: {\r
+ },\r
+ },\r
attributes: {\r
id: {\r
type: 'number',\r
},\r
writing_format_id: {\r
type: 'number',\r
+ source: {\r
+ type: 'model',\r
+ model: 'writing_format',\r
+ method: 'enable_list',\r
+ caption: 'caption'\r
+ },\r
rules : {\r
required: true,\r
number: true,\r
required: true,\r
number: true,\r
min: 0,\r
- }\r
+ },\r
+ source: {\r
+ type: 'magic_number',\r
+ key: 'speech_font_size_items',\r
+ },\r
},\r
text_align: {\r
type: 'number',\r
required: true,\r
number: true,\r
range: [0, 3],\r
- }\r
+ },\r
+ source: {\r
+ type: 'magic_number',\r
+ key: 'speech_text_align_items',\r
+ },\r
},\r
fore_color: {\r
type: 'number',\r
ground_picture: {\r
class_name: 'GroundPicture',\r
table_name: 'ground_pictures',\r
+ associations: {\r
+ belongs_to: {\r
+ panel: {\r
+ id_column: 'panel_id'\r
+ }, \r
+ },\r
+ has_many: {\r
+ },\r
+ },\r
attributes: {\r
id: {\r
type: 'number',\r
required: true,\r
number: true,\r
range: [0, 3],\r
- }\r
+ },\r
+ source: {\r
+ type: 'magic_number',\r
+ key: 'ground_picture_repeat_items',\r
+ },\r
},\r
x: {\r
type: 'number',\r
ground_color: {\r
class_name: 'GroundColor',\r
table_name: 'ground_colors',\r
+ associations: {\r
+ belongs_to: {\r
+ panel: {\r
+ id_column: 'panel_id'\r
+ }, \r
+ },\r
+ has_many: {\r
+ },\r
+ },\r
attributes: {\r
id: {\r
type: 'number',\r
required: true,\r
number: true,\r
range: [0, 1],\r
- }\r
+ },\r
+ source: {\r
+ type: 'magic_number',\r
+ key: 'ground_color_orientation_items',\r
+ },\r
},\r
xy: {\r
type: 'number',\r
}\r
}\r
},\r
- WritingFormat: 'writing_format',\r
- writing_format: {\r
- class_name: 'WritingFormat',\r
- table_name: 'writing_formats',\r
+ OriginalPicture: 'original_picture',\r
+ original_picture: {\r
+ class_name: 'OriginalPicture',\r
+ table_name: 'original_pictures',\r
+ associations: {\r
+ belongs_to: {\r
+ artist: {\r
+ id_column: 'artist_id'\r
+ }, \r
+ },\r
+ has_many: {\r
+ pictures: {\r
+ foreign_key: 'original_picture_id',\r
+ list_method: 'list_by_original_picture',\r
+ }, \r
+ },\r
+ has_one: {\r
+ resource_picture: {\r
+ foreign_key: 'original_picture_id',\r
+ list_method: 'list_by_original_picture',\r
+ }, \r
+ },\r
+ },\r
attributes: {\r
id: {\r
type: 'number',\r
number: true,\r
}\r
},\r
- name: {\r
+ ext: {\r
type: 'text',\r
rules : {\r
required: true,\r
}\r
},\r
- classname: {\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
+ filesize: {\r
+ type: 'number',\r
+ rules : {\r
+ required: true,\r
+ number: true,\r
+ }\r
+ },\r
+ artist_id: {\r
+ type: 'number',\r
+ rules : {\r
+ required: true,\r
+ number: true,\r
+ }\r
+ },\r
+ md5: {\r
type: 'text',\r
rules : {\r
required: true,\r
+ required: true,\r
}\r
},\r
- caption: {\r
+ uploaded_at: {\r
+ type: 'datetime',\r
+ },\r
+ published_at: {\r
+ type: 'datetime',\r
+ },\r
+ stopped_at: {\r
+ type: 'datetime',\r
+ },\r
+ created_at: {\r
+ type: 'datetime',\r
+ },\r
+ updated_at: {\r
+ type: 'datetime',\r
+ }\r
+ },\r
+ },\r
+ Picture: 'picture',\r
+ picture: {\r
+ class_name: 'Picture',\r
+ table_name: 'pictures',\r
+ associations: {\r
+ belongs_to: {\r
+ license: {\r
+ id_column: 'license_id'\r
+ }, \r
+ artist: {\r
+ id_column: 'artist_id'\r
+ }, \r
+ },\r
+ has_many: {\r
+ },\r
+ has_one: {\r
+ },\r
+ },\r
+ attributes: {\r
+ id: {\r
+ type: 'number',\r
+ primary_key: 1,\r
+ rules : {\r
+ number: true,\r
+ }\r
+ },\r
+ original_picture_id: {\r
+ type: 'number',\r
+ rules : {\r
+ required: true,\r
+ number: true,\r
+ }\r
+ },\r
+ revision: {\r
+ type: 'number',\r
+ rules : {\r
+ required: true,\r
+ number: true,\r
+ }\r
+ },\r
+ ext: {\r
type: 'text',\r
rules : {\r
required: true,\r
}\r
},\r
- system_picture_id: {\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
+ filesize: {\r
+ type: 'number',\r
+ rules : {\r
+ required: true,\r
+ number: true,\r
+ }\r
+ },\r
+ artist_id: {\r
+ type: 'number',\r
+ rules : {\r
+ required: true,\r
+ number: true,\r
+ }\r
+ },\r
+ license_id: {\r
type: 'number',\r
rules : {\r
required: true,\r
number: true,\r
}\r
},\r
+ md5: {\r
+ type: 'text',\r
+ rules : {\r
+ required: true,\r
+ }\r
+ },\r
+ artist_name: {\r
+ type: 'text',\r
+ rules : {\r
+ required: true,\r
+ }\r
+ },\r
+ credit: {\r
+ type: 'text',\r
+ rules : {\r
+ }\r
+ },\r
settings: {\r
type: 'text',\r
rules : {\r
+ }\r
+ },\r
+ classname: {\r
+ type: 'text',\r
+ rules : {\r
required: true,\r
}\r
},\r
}\r
}\r
},\r
-\r
+ ResourcePicture: 'resource_picture',\r
+ resource_picture: {\r
+ class_name: 'ResourcePicture',\r
+ table_name: 'resource_pictures',\r
+ associations: {\r
+ belongs_to: {\r
+ license: {\r
+ id_column: 'license_id'\r
+ }, \r
+ artist: {\r
+ id_column: 'artist_id'\r
+ }, \r
+ },\r
+ has_many: {\r
+ },\r
+ has_one: {\r
+ },\r
+ },\r
+ attributes: {\r
+ id: {\r
+ type: 'number',\r
+ primary_key: 1,\r
+ rules : {\r
+ number: true,\r
+ }\r
+ },\r
+ original_picture_id: {\r
+ type: 'number',\r
+ rules : {\r
+ required: true,\r
+ number: true,\r
+ }\r
+ },\r
+ revision: {\r
+ type: 'number',\r
+ rules : {\r
+ required: true,\r
+ number: true,\r
+ }\r
+ },\r
+ ext: {\r
+ type: 'text',\r
+ rules : {\r
+ required: 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
+ filesize: {\r
+ type: 'number',\r
+ rules : {\r
+ required: true,\r
+ number: true,\r
+ }\r
+ },\r
+ artist_id: {\r
+ type: 'number',\r
+ rules : {\r
+ required: true,\r
+ number: true,\r
+ }\r
+ },\r
+ license_id: {\r
+ type: 'number',\r
+ rules : {\r
+ required: true,\r
+ number: true,\r
+ }\r
+ },\r
+ md5: {\r
+ type: 'text',\r
+ rules : {\r
+ required: true,\r
+ }\r
+ },\r
+ artist_name: {\r
+ type: 'text',\r
+ rules : {\r
+ required: true,\r
+ }\r
+ },\r
+ credit: {\r
+ type: 'text',\r
+ rules : {\r
+ }\r
+ },\r
+ settings: {\r
+ type: 'text',\r
+ rules : {\r
+ }\r
+ },\r
+ picture_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
+ created_at: {\r
+ type: 'datetime',\r
+ },\r
+ updated_at: {\r
+ type: 'datetime',\r
+ }\r
+ }\r
+ },\r
+ SpeechBalloonTemplate: 'speech_balloon_template',\r
+ speech_balloon_template: {\r
+ class_name: 'SpeechBalloonTemplate',\r
+ table_name: 'speech_balloon_templates',\r
+ associations: {\r
+ belongs_to: {\r
+ system_picture: {\r
+ id_column: 'system_picture_id'\r
+ }, \r
+ },\r
+ has_many: {\r
+ speech_balloons: {\r
+ foreign_key: 'speech_balloon_template_id',\r
+ list_method: 'list_by_speech_balloon_template',\r
+ }, \r
+ panels: {\r
+ through: 'speech_balloons',\r
+ foreign_key: 'speech_balloon_template_id',\r
+ list_method: 'list_by_speech_balloon_template',\r
+ }, \r
+ },\r
+ has_one: {\r
+ },\r
+ },\r
+ attributes: {\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
+ t: {\r
+ type: 'number',\r
+ rules : {\r
+ required: true,\r
+ number: true,\r
+ min: 0,\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
+ updated_at: {\r
+ type: 'datetime',\r
+ }\r
+ },\r
+ select: {\r
+ method: 'enable_list',\r
+ caption: {\r
+ type: 'column',\r
+ name: 'caption',\r
+ },\r
+ },\r
+ },\r
+ WritingFormat: 'writing_format',\r
+ writing_format: {\r
+ class_name: 'WritingFormat',\r
+ table_name: 'writing_formats',\r
+ associations: {\r
+ belongs_to: {\r
+ system_picture: {\r
+ id_column: 'system_picture_id'\r
+ }, \r
+ },\r
+ has_many: {\r
+ speeches: {\r
+ foreign_key: 'writing_format_id',\r
+ list_method: 'list_by_writing_format',\r
+ }, \r
+ },\r
+ has_one: {\r
+ },\r
+ },\r
+ attributes: {\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
+ updated_at: {\r
+ type: 'datetime',\r
+ }\r
+ },\r
+ select: {\r
+ method: 'enable_list',\r
+ caption: {\r
+ type: 'column',\r
+ name: 'caption',\r
+ },\r
+ },\r
+ },\r
+ LicenseGroup: 'license_group',\r
+ license_group: {\r
+ class_name: 'LicenseGroup',\r
+ table_name: 'license_groups',\r
+ associations: {\r
+ belongs_to: {\r
+ },\r
+ has_many: {\r
+ licenses: {\r
+ foreign_key: 'license_group_id',\r
+ list_method: 'list_by_license_group',\r
+ }, \r
+ },\r
+ has_one: {\r
+ },\r
+ },\r
+ attributes: {\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
+ url: {\r
+ type: 'text',\r
+ rules : {\r
+ required: true,\r
+ }\r
+ },\r
+ created_at: {\r
+ type: 'datetime',\r
+ },\r
+ updated_at: {\r
+ type: 'datetime',\r
+ }\r
+ },\r
+ select: {\r
+ method: 'list',\r
+ caption: {\r
+ type: 'column',\r
+ name: 'caption',\r
+ },\r
+ },\r
+ },\r
+ License: 'license',\r
+ license: {\r
+ class_name: 'License',\r
+ table_name: 'licenses',\r
+ associations: {\r
+ belongs_to: {\r
+ license_group: {\r
+ id_column: 'license_group_id'\r
+ }, \r
+ system_picture: {\r
+ id_column: 'system_picture_id'\r
+ }, \r
+ },\r
+ has_many: {\r
+ resource_pictures: {\r
+ foreign_key: 'license_id',\r
+ list_method: 'list_by_license',\r
+ }, \r
+ },\r
+ has_one: {\r
+ },\r
+ },\r
+ attributes: {\r
+ id: {\r
+ type: 'number',\r
+ primary_key: 1,\r
+ rules : {\r
+ number: true,\r
+ }\r
+ },\r
+ license_group_id: {\r
+ type: 'number',\r
+ rules : {\r
+ number: true,\r
+ }\r
+ },\r
+ name: {\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
+ url: {\r
+ type: 'text',\r
+ rules : {\r
+ required: true,\r
+ }\r
+ },\r
+ settings: {\r
+ type: 'text',\r
+ rules : {\r
+ }\r
+ },\r
+ credit_pictures: {\r
+ type: 'text',\r
+ rules : {\r
+ }\r
+ },\r
+ created_at: {\r
+ type: 'datetime',\r
+ },\r
+ updated_at: {\r
+ type: 'datetime',\r
+ }\r
+ }\r
+ },\r
+ Author: 'author',\r
+ author: {\r
+ class_name: 'Author',\r
+ table_name: 'authors',\r
+ associations: {\r
+ belongs_to: {\r
+ },\r
+ has_many: {\r
+ scrolls: {\r
+ foreign_key: 'author_id',\r
+ list_method: 'list_by_author',\r
+ }, \r
+ comics: {\r
+ foreign_key: 'author_id',\r
+ list_method: 'list_by_author',\r
+ }, \r
+ stories: {\r
+ foreign_key: 'author_id',\r
+ list_method: 'list_by_author',\r
+ }, \r
+ sheets: {\r
+ foreign_key: 'author_id',\r
+ list_method: 'list_by_author',\r
+ }, \r
+ panels: {\r
+ foreign_key: 'author_id',\r
+ list_method: 'list_by_author',\r
+ }, \r
+ },\r
+ has_one: {\r
+ },\r
+ },\r
+ attributes: {\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
+ user_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
+ select: {\r
+ method: 'list',\r
+ caption: {\r
+ type: 'column',\r
+ name: 'name',\r
+ },\r
+ },\r
+ },\r
+ Artist: 'artist',\r
+ artist: {\r
+ class_name: 'Artist',\r
+ table_name: 'artists',\r
+ associations: {\r
+ belongs_to: {\r
+ },\r
+ has_many: {\r
+ resource_pictures: {\r
+ foreign_key: 'artist_id',\r
+ list_method: 'list_by_artist',\r
+ }, \r
+ },\r
+ has_one: {\r
+ },\r
+ },\r
+ attributes: {\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
+ 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
+ select: {\r
+ method: 'list',\r
+ caption: {\r
+ type: 'column',\r
+ name: 'name',\r
+ },\r
+ },\r
+ },\r
+ SystemPicture: 'system_picture',\r
+ system_picture: {\r
+ class_name: 'SystemPicture',\r
+ table_name: 'system_pictures',\r
+ associations: {\r
+ belongs_to: {\r
+ },\r
+ has_many: {\r
+ },\r
+ has_one: {\r
+ },\r
+ },\r
+ attributes: {\r
+ id: {\r
+ type: 'number',\r
+ primary_key: 1,\r
+ rules : {\r
+ number: true,\r
+ }\r
+ },\r
+ ext: {\r
+ type: 'text',\r
+ rules : {\r
+ required: 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
+ filesize: {\r
+ type: 'number',\r
+ rules : {\r
+ required: true,\r
+ number: true,\r
+ }\r
+ },\r
+ md5: {\r
+ type: 'text',\r
+ rules : {\r
+ required: true,\r
+ required: true,\r
+ }\r
+ },\r
+ created_at: {\r
+ type: 'datetime',\r
+ },\r
+ updated_at: {\r
+ type: 'datetime',\r
+ }\r
+ }\r
+ },\r
+ },\r
+ profiles: {\r
+ scroll: {\r
+ fields: [\r
+ 'id', \r
+ 'title', \r
+ 'description', \r
+ 'visible', \r
+ 'author_id', \r
+ 'created_at', \r
+ 'updated_at',\r
+ ],\r
+ associations: {\r
+ belongs_to: [\r
+ 'author',\r
+ ],\r
+ has_many: [\r
+ 'scroll_panels', \r
+ 'panels'\r
+ ],\r
+ }, \r
+ },\r
+ scroll_panel: {\r
+ fields: [\r
+ 'id', \r
+ 'scroll_id', \r
+ 'panel_id', \r
+ 't', \r
+ 'author_id', \r
+ 'created_at', \r
+ 'updated_at',\r
+ ],\r
+ associations: {\r
+ belongs_to: [\r
+ 'scroll', \r
+ 'panel'\r
+ ],\r
+ has_many: [\r
+ ],\r
+ }, \r
+ },\r
+ comic: {\r
+ fields: [\r
+ 'id', \r
+ 'title', \r
+ 'description', \r
+ 'visible', \r
+ 'author_id', \r
+ 'created_at', \r
+ 'updated_at',\r
+ ],\r
+ associations: {\r
+ belongs_to: [\r
+ 'author',\r
+ ],\r
+ has_many: [\r
+ 'stories', \r
+ ],\r
+ }, \r
+ },\r
+ story: {\r
+ fields: [\r
+ 'id', \r
+ 'comic_id', \r
+ 'title', \r
+ 'description', \r
+ 't', \r
+ 'visible', \r
+ 'created_at', \r
+ 'updated_at',\r
+ ],\r
+ associations: {\r
+ belongs_to: [\r
+ 'comic',\r
+ ],\r
+ has_many: [\r
+ 'story_sheets', \r
+ 'sheets'\r
+ ],\r
+ }, \r
+ },\r
+ story_sheet: {\r
+ fields: [\r
+ 'id', \r
+ 'story_id', \r
+ 'sheet_id', \r
+ 't', \r
+ 'author_id', \r
+ 'created_at', \r
+ 'updated_at',\r
+ ],\r
+ associations: {\r
+ belongs_to: [\r
+ 'story',\r
+ 'sheet',\r
+ ],\r
+ has_many: [\r
+ ],\r
+ }, \r
+ },\r
+ sheet: {\r
+ fields: [\r
+ 'id', \r
+ 'caption', \r
+ 'width', \r
+ 'height', \r
+ 'visible', \r
+ 'author_id', \r
+ 'created_at', \r
+ 'updated_at',\r
+ ],\r
+ associations: {\r
+ belongs_to: [\r
+ 'author',\r
+ ],\r
+ has_many: [\r
+ 'story_sheets', \r
+ 'stories', \r
+ 'sheet_panels'\r
+ 'panels'\r
+ ],\r
+ }, \r
+ },\r
+ sheet_panel: {\r
+ fields: [\r
+ 'id', \r
+ 'sheet_id', \r
+ 'panel_id', \r
+ 'x', \r
+ 'y', \r
+ 'z', \r
+ 't', \r
+ 'author_id', \r
+ 'created_at', \r
+ 'updated_at',\r
+ ],\r
+ associations: {\r
+ belongs_to: [\r
+ 'sheet',\r
+ 'panel',\r
+ ],\r
+ has_many: [\r
+ ],\r
+ }, \r
+ },\r
+ panel: {\r
+ fields: [\r
+ 'id', \r
+ 'width', \r
+ 'height', \r
+ 'border', \r
+ 'caption', \r
+ 'publish', \r
+ 'author_id', \r
+ 'created_at', \r
+ 'updated_at',\r
+ ],\r
+ associations: {\r
+ belongs_to: [\r
+ 'author',\r
+ ],\r
+ has_many: [\r
+ 'scroll_panels',\r
+ 'scrolls',\r
+ 'sheet_panels',\r
+ 'sheets',\r
+ 'panel_pictures',\r
+ 'speech_balloons',\r
+ 'ground_pictures',\r
+ 'ground_colors',\r
+ ],\r
+ }, \r
+ },\r
+ panel_picture: {\r
+ fields: [\r
+ 'id', \r
+ 'panel_id', \r
+ 'picture_id', \r
+ 'caption', \r
+ 'x', \r
+ 'y', \r
+ 'width', \r
+ 'height', \r
+ 'link', \r
+ 'z', \r
+ 't', \r
+ 'created_at', \r
+ 'updated_at',\r
+ ],\r
+ associations: {\r
+ belongs_to: [\r
+ 'panel',\r
+ ],\r
+ has_many: [\r
+ ],\r
+ }, \r
+ },\r
+ speech_balloon: {\r
+ fields: [\r
+ 'id', \r
+ 'panel_id', \r
+ 'speech_balloon_template_id', \r
+ 'classname', \r
+ 'z', \r
+ 't', \r
+ 'settings', \r
+ 'caption', \r
+ 'created_at', \r
+ 'updated_at',\r
+ ],\r
+ associations: {\r
+ belongs_to: [\r
+ 'panel',\r
+ ],\r
+ has_many: [\r
+ ],\r
+ has_one: [\r
+ 'balloon',\r
+ 'speech',\r
+ ],\r
+ }, \r
+ },\r
+ speech: {\r
+ fields: [\r
+ 'id', \r
+ 'speech_balloon_id', \r
+ 'writing_format_id', \r
+ 'content', \r
+ 'font_size', \r
+ 'text_align', \r
+ 'fore_color', \r
+ 'x', \r
+ 'y', \r
+ 'width', \r
+ 'height', \r
+ 'quotes', \r
+ 'settings', \r
+ 'created_at', \r
+ 'updated_at',\r
+ ],\r
+ associations: {\r
+ belongs_to: [\r
+ 'speech_balloon',\r
+ 'writing_format',\r
+ ],\r
+ has_many: [\r
+ ],\r
+ }, \r
+ },\r
+ balloon: {\r
+ fields: [\r
+ 'id', \r
+ 'speech_balloon_id', \r
+ 'system_picture_id', \r
+ 'x', \r
+ 'y', \r
+ 'width', \r
+ 'height', \r
+ 'r', \r
+ 'settings', \r
+ 'created_at', \r
+ 'updated_at',\r
+ ],\r
+ associations: {\r
+ belongs_to: [\r
+ 'speech_balloon',\r
+ 'system_picture',\r
+ ],\r
+ has_many: [\r
+ ],\r
+ }, \r
+ },\r
+ ground_picture: {\r
+ fields: [\r
+ 'id', \r
+ 'panel_id', \r
+ 'picture_id', \r
+ 'caption', \r
+ 'repeat', \r
+ 'x', \r
+ 'y', \r
+ 'z', \r
+ 't', \r
+ 'created_at', \r
+ 'updated_at',\r
+ ],\r
+ associations: {\r
+ belongs_to: [\r
+ 'panel',\r
+ ],\r
+ has_many: [\r
+ ],\r
+ }, \r
+ },\r
+ ground_color: {\r
+ fields: [\r
+ 'id', \r
+ 'panel_id', \r
+ 'caption', \r
+ 'code', \r
+ 'orientation', \r
+ 'xy', \r
+ 'wh', \r
+ 'z', \r
+ 't', \r
+ 'created_at', \r
+ 'updated_at',\r
+ ],\r
+ associations: {\r
+ belongs_to: [\r
+ 'panel',\r
+ ],\r
+ has_many: [\r
+ ],\r
+ }, \r
+ },\r
+ original_picture: {\r
+ fields: [\r
+ 'id', \r
+ 'ext', \r
+ 'width', \r
+ 'height', \r
+ 'filesize', \r
+ 'artist_id', \r
+ 'md5', \r
+ 'uploaded_at', \r
+ 'published_at', \r
+ 'stopped_at', \r
+ 'created_at', \r
+ 'updated_at',\r
+ ],\r
+ associations: {\r
+ belongs_to: [\r
+ 'artist',\r
+ ],\r
+ has_many: [\r
+ 'pictures',\r
+ ],\r
+ has_one: [\r
+ 'resource_picture',\r
+ ],\r
+ }, \r
+ },\r
+ picture: {\r
+ fields: [\r
+ 'id', \r
+ 'original_picture_id', \r
+ 'revision', \r
+ 'ext', \r
+ 'width', \r
+ 'height', \r
+ 'filesize', \r
+ 'artist_id', \r
+ 'license_id', \r
+ 'md5', \r
+ 'artist_name', \r
+ 'credit', \r
+ 'settings', \r
+ 'classname', \r
+ 'created_at', \r
+ 'updated_at',\r
+ ],\r
+ associations: {\r
+ belongs_to: [\r
+ 'license',\r
+ 'artist',\r
+ ],\r
+ has_many: [\r
+ ],\r
+ has_one: [\r
+ ],\r
+ }, \r
+ },\r
+ resource_picture: {\r
+ fields: [\r
+ 'id', \r
+ 'original_picture_id', \r
+ 'revision', \r
+ 'ext', \r
+ 'width', \r
+ 'height', \r
+ 'filesize', \r
+ 'artist_id', \r
+ 'license_id', \r
+ 'md5', \r
+ 'artist_name', \r
+ 'credit', \r
+ 'settings', \r
+ 'picture_id', \r
+ 'classname', \r
+ 'created_at', \r
+ 'updated_at',\r
+ ],\r
+ associations: {\r
+ belongs_to: [\r
+ 'license',\r
+ 'artist',\r
+ ],\r
+ has_many: [\r
+ ],\r
+ has_one: [\r
+ ],\r
+ }, \r
+ },\r
+ speech_balloon_template: {\r
+ fields: [\r
+ 'id', \r
+ 'name', \r
+ 'classname', \r
+ 'caption', \r
+ 't', \r
+ 'system_picture_id', \r
+ 'settings', \r
+ 'created_at', \r
+ 'updated_at',\r
+ ],\r
+ associations: {\r
+ belongs_to: [\r
+ 'system_picture',\r
+ ],\r
+ has_many: [\r
+ 'speech_balloons', \r
+ 'panels', \r
+ ],\r
+ has_one: [\r
+ ],\r
+ }, \r
+ },\r
+ writing_format: {\r
+ fields: [\r
+ 'id', \r
+ 'name', \r
+ 'classname', \r
+ 'caption', \r
+ 'system_picture_id', \r
+ 'settings', \r
+ 'created_at', \r
+ 'updated_at',\r
+ ],\r
+ associations: {\r
+ belongs_to: [\r
+ 'system_picture',\r
+ ],\r
+ has_many: [\r
+ 'speeches', \r
+ ],\r
+ has_one: [\r
+ ],\r
+ }, \r
+ },\r
+ license_group: {\r
+ fields: [\r
+ 'id', \r
+ 'name', \r
+ 'classname', \r
+ 'caption', \r
+ 'url', \r
+ 'created_at', \r
+ 'updated_at',\r
+ ],\r
+ associations: {\r
+ belongs_to: [\r
+ ],\r
+ has_many: [\r
+ 'licenses', \r
+ ],\r
+ has_one: [\r
+ ],\r
+ }, \r
+ },\r
+ license: {\r
+ fields: [\r
+ 'id', \r
+ 'license_group_id', \r
+ 'name', \r
+ 'caption', \r
+ 'system_picture_id', \r
+ 'url', \r
+ 'settings', \r
+ 'credit_pictures', \r
+ 'created_at', \r
+ 'updated_at',\r
+ ],\r
+ associations: {\r
+ belongs_to: [\r
+ 'license_group', \r
+ 'system_picture', \r
+ ],\r
+ has_many: [\r
+ 'resource_pictures', \r
+ ],\r
+ has_one: [\r
+ ],\r
+ }, \r
+ },\r
+ author: {\r
+ fields: [\r
+ 'id', \r
+ 'name', \r
+ 'user_id', \r
+ 'created_at', \r
+ 'updated_at',\r
+ ],\r
+ associations: {\r
+ belongs_to: [\r
+ ],\r
+ has_many: [\r
+ 'scrolls', \r
+ 'comics', \r
+ 'stories', \r
+ 'sheets', \r
+ 'panels', \r
+ ],\r
+ has_one: [\r
+ ],\r
+ }, \r
+ },\r
+ artist: {\r
+ fields: [\r
+ 'id', \r
+ 'name', \r
+ 'author_id', \r
+ 'created_at', \r
+ 'updated_at',\r
+ ],\r
+ associations: {\r
+ belongs_to: [\r
+ ],\r
+ has_many: [\r
+ 'resource_pictures', \r
+ ],\r
+ has_one: [\r
+ ],\r
+ }, \r
+ },\r
+ system_picture: {\r
+ fields: [\r
+ 'id', \r
+ 'ext', \r
+ 'width', \r
+ 'height', \r
+ 'filesize', \r
+ 'md5', \r
+ 'created_at', \r
+ 'updated_at',\r
+ ],\r
+ associations: {\r
+ belongs_to: [\r
+ ],\r
+ has_many: [\r
+ ],\r
+ has_one: [\r
+ ],\r
+ }, \r
+ },\r
+ },\r
+ filers: {\r
+ scroll: {\r
+ symbol: {\r
+ type: 'image',\r
+ name: '<%= asset_path('item.png') %>',\r
+ },\r
+ caption: {\r
+ type: 'column',\r
+ name: 'title',\r
+ link: {\r
+ type: 'action'\r
+ name: 'play',\r
+ },\r
+ },\r
+ summary: {\r
+ type: 'template',\r
+ name: 'summary',\r
+ },\r
+ edit: {\r
+ type: 'default',\r
+ },\r
+ },\r
+ scroll_panel: {\r
+ symbol: {\r
+ type: 'image',\r
+ name: '<%= asset_path('item.png') %>',\r
+ link: {\r
+ type: 'none'\r
+ },\r
+ },\r
+ caption: {\r
+ type: 'none',\r
+ },\r
+ summary: {\r
+ type: 'template',\r
+ name: 'summary',\r
+ },\r
+ edit: {\r
+ type: 'none'\r
+ },\r
+ },\r
+ comic: {\r
+ symbol: {\r
+ type: 'image',\r
+ name: '<%= asset_path('item.png') %>',\r
+ },\r
+ caption: {\r
+ type: 'column',\r
+ name: 'title',\r
+ },\r
+ summary: {\r
+ type: 'template',\r
+ name: 'summary',\r
+ },\r
+ edit: {\r
+ type: 'default',\r
+ },\r
+ },\r
+ story: {\r
+ symbol: {\r
+ type: 'image',\r
+ name: '<%= asset_path('item.png') %>',\r
+ },\r
+ caption: {\r
+ type: 'method',\r
+ name: 'title_with_t',\r
+ link: {\r
+ type: 'action'\r
+ name: 'play',\r
+ },\r
+ },\r
+ summary: {\r
+ type: 'template',\r
+ name: 'summary',\r
+ },\r
+ edit: {\r
+ type: 'default',\r
+ },\r
+ },\r
+ story_sheet: {\r
+ symbol: {\r
+ type: 'image',\r
+ name: '<%= asset_path('item.png') %>',\r
+ link: {\r
+ type: 'none'\r
+ },\r
+ },\r
+ caption: {\r
+ type: 'none',\r
+ },\r
+ summary: {\r
+ type: 'template',\r
+ name: 'summary',\r
+ },\r
+ edit: {\r
+ type: 'none'\r
+ },\r
+ },\r
+ sheet: {\r
+ symbol: {\r
+ type: 'image',\r
+ name: '<%= asset_path('item.png') %>',\r
+ },\r
+ caption: {\r
+ type: 'column',\r
+ name: 'caption',\r
+ link: {\r
+ type: 'action'\r
+ name: 'play',\r
+ },\r
+ },\r
+ summary: {\r
+ type: 'template',\r
+ name: 'summary',\r
+ },\r
+ edit: {\r
+ type: 'default',\r
+ },\r
+ },\r
+ sheet_panel: {\r
+ symbol: {\r
+ type: 'image',\r
+ name: '<%= asset_path('item.png') %>',\r
+ link: {\r
+ type: 'none'\r
+ },\r
+ },\r
+ caption: {\r
+ type: 'none',\r
+ },\r
+ summary: {\r
+ type: 'template',\r
+ name: 'summary',\r
+ },\r
+ edit: {\r
+ type: 'none'\r
+ },\r
+ },\r
+ panel: {\r
+ symbol: {\r
+ type: 'image',\r
+ name: '<%= asset_path('item.png') %>',\r
+ },\r
+ caption: {\r
+ type: 'method',\r
+ name: 'plain_scenario',\r
+ link: {\r
+ type: 'none'\r
+ },\r
+ },\r
+ summary: {\r
+ type: 'template',\r
+ name: 'summary',\r
+ },\r
+ edit: {\r
+ type: 'default',\r
+ },\r
+ },\r
+ panel_picture: {\r
+ symbol: {\r
+ type: 'picture',\r
+ name: 'symbol_option',\r
+ },\r
+ caption: {\r
+ type: 'column',\r
+ name: 'caption',\r
+ },\r
+ summary: {\r
+ type: 'template',\r
+ name: 'summary',\r
+ },\r
+ edit: {\r
+ type: 'none',\r
+ },\r
+ },\r
+ speech_balloon: {\r
+ symbol: {\r
+ type: 'picture',\r
+ name: 'symbol_option',\r
+ },\r
+ caption: {\r
+ type: 'method',\r
+ name: 'plain_scenario',\r
+ link: {\r
+ type: 'none'\r
+ },\r
+ },\r
+ summary: {\r
+ type: 'template',\r
+ name: 'summary',\r
+ },\r
+ edit: {\r
+ type: 'none',\r
+ },\r
+ },\r
+ speech: {\r
+ symbol: {\r
+ type: 'picture',\r
+ name: 'symbol_option',\r
+ },\r
+ caption: {\r
+ type: 'column',\r
+ name: 'content',\r
+ link: {\r
+ type: 'none'\r
+ },\r
+ },\r
+ summary: {\r
+ type: 'template',\r
+ name: 'summary',\r
+ },\r
+ edit: {\r
+ type: 'none',\r
+ },\r
+ },\r
+ balloon: {\r
+ symbol: {\r
+ type: 'picture',\r
+ name: 'symbol_option',\r
+ },\r
+ caption: {\r
+ type: 'none',\r
+ },\r
+ summary: {\r
+ type: 'template',\r
+ name: 'summary',\r
+ },\r
+ edit: {\r
+ type: 'none',\r
+ },\r
+ },\r
+ ground_picture: {\r
+ symbol: {\r
+ type: 'picture',\r
+ name: 'symbol_option',\r
+ },\r
+ caption: {\r
+ type: 'column',\r
+ name: 'caption',\r
+ },\r
+ summary: {\r
+ type: 'template',\r
+ name: 'summary',\r
+ },\r
+ edit: {\r
+ type: 'none',\r
+ },\r
+ },\r
+ ground_color: {\r
+ symbol: {\r
+ type: 'template',\r
+ name: 'symbol',\r
+ },\r
+ caption: {\r
+ type: 'column',\r
+ name: 'caption',\r
+ },\r
+ summary: {\r
+ type: 'template',\r
+ name: 'summary',\r
+ },\r
+ edit: {\r
+ type: 'none',\r
+ },\r
+ },\r
+ original_picture: {\r
+ symbol: {\r
+ type: 'picture',\r
+ name: 'symbol_option',\r
+ },\r
+ caption: {\r
+ type: 'method',\r
+ name: 'revision',\r
+ link: {\r
+ type: 'action'\r
+ name: 'history',\r
+ },\r
+ },\r
+ summary: {\r
+ type: 'template',\r
+ name: 'summary',\r
+ },\r
+ edit: {\r
+ type: 'template',\r
+ name: 'publish',\r
+ },\r
+ },\r
+ picture: {\r
+ symbol: {\r
+ type: 'picture',\r
+ name: 'symbol_option',\r
+ },\r
+ caption: {\r
+ type: 'column',\r
+ name: 'revision',\r
+ },\r
+ summary: {\r
+ type: 'template',\r
+ name: 'summary',\r
+ },\r
+ edit: {\r
+ type: 'none',\r
+ },\r
+ },\r
+ resource_picture: {\r
+ symbol: {\r
+ type: 'picture',\r
+ name: 'symbol_option',\r
+ },\r
+ caption: {\r
+ type: 'none',\r
+ },\r
+ summary: {\r
+ type: 'template',\r
+ name: 'summary',\r
+ },\r
+ edit: {\r
+ type: 'none',\r
+ },\r
+ },\r
+ speech_balloon_template: {\r
+ symbol: {\r
+ type: 'picture',\r
+ name: 'symbol_option',\r
+ },\r
+ caption: {\r
+ type: 'column',\r
+ name: 'caption',\r
+ },\r
+ summary: {\r
+ type: 'none',\r
+ },\r
+ edit: {\r
+ type: 'none',\r
+ },\r
+ },\r
+ writing_format: {\r
+ symbol: {\r
+ type: 'image',\r
+ name: '<%= asset_path('item.png') %>',\r
+ },\r
+ caption: {\r
+ type: 'column',\r
+ name: 'caption',\r
+ },\r
+ summary: {\r
+ type: 'none',\r
+ },\r
+ edit: {\r
+ type: 'none',\r
+ },\r
+ },\r
+ license_group: {\r
+ symbol: {\r
+ type: 'image',\r
+ name: '<%= asset_path('item.png') %>',\r
+ },\r
+ caption: {\r
+ type: 'column',\r
+ name: 'caption',\r
+ link: {\r
+ type: 'url_column'\r
+ name: 'url',\r
+ },\r
+ },\r
+ summary: {\r
+ type: 'none',\r
+ },\r
+ edit: {\r
+ type: 'none',\r
+ },\r
+ },\r
+ license: {\r
+ symbol: {\r
+ type: 'image',\r
+ name: '<%= asset_path('item.png') %>',\r
+ },\r
+ caption: {\r
+ type: 'method',\r
+ name: 'caption_with_group',\r
+ link: {\r
+ type: 'url_column'\r
+ name: 'url',\r
+ },\r
+ },\r
+ summary: {\r
+ type: 'template',\r
+ name: 'summary',\r
+ },\r
+ edit: {\r
+ type: 'none',\r
+ },\r
+ },\r
+ author: {\r
+ symbol: {\r
+ type: 'image',\r
+ name: '<%= asset_path('item.png') %>',\r
+ },\r
+ caption: {\r
+ type: 'column',\r
+ name: 'name',\r
+ },\r
+ summary: {\r
+ type: 'template',\r
+ name: 'summary',\r
+ },\r
+ edit: {\r
+ type: 'account',\r
+ },\r
+ },\r
+ artist: {\r
+ symbol: {\r
+ type: 'image',\r
+ name: '<%= asset_path('item.png') %>',\r
+ },\r
+ caption: {\r
+ type: 'column',\r
+ name: 'name',\r
+ },\r
+ summary: {\r
+ type: 'template',\r
+ name: 'summary',\r
+ },\r
+ edit: {\r
+ type: 'account',\r
+ },\r
+ },\r
+ system_picture: {\r
+ symbol: {\r
+ type: 'picture',\r
+ name: 'symbol_option',\r
+ },\r
+ caption: {\r
+ type: 'none',\r
+ },\r
+ summary: {\r
+ type: 'none',\r
+ },\r
+ edit: {\r
+ type: 'none',\r
+ },\r
+ },\r
},\r
elements: [\r
{\r
end
end
+ def set_filer
+ @page = @@model.page_number params[:page]
+ @page_size = @@model.page_size params[:page_size]
+ list_method = 'list' || configurations['models'][@@model.to_s.underscore]['select']['method']
+ @items = @@model.__send__(list_method, @page, @page_size)
+ end
+
+ def format_filer format
+ format.html {
+ @paginate = @@model.list_paginate(@page, @page_size)
+ render :template => 'system/filer', :locals => {
+ :items => @items, :model => @@model,
+ :operators => @operators, :pager => @paginate
+ }
+ }
+ end
+
+ def set_filer_by_anybody
+ @page = @@model.page_number params[:page]
+ @page_size = @@model.page_size params[:page_size]
+ list_method = 'himlist' || configurations['models'][@@model.to_s.underscore]['select']['method']
+ @items = @@model.__send__(list_method, @operators, @page, @page_size)
+ end
+
+ def format_filer_by_anybody format
+ format.html {
+ @paginate = @@model.himlist_paginate(@operators, @page, @page_size)
+ render :template => 'system/filer', :locals => {
+ :items => @items, :model => @@model,
+ :operators => @operators, :pager => @paginate
+ }
+ }
+ end
+
+ def format_prof format
+ format.prof {
+ render :template => 'system/prof', :locals => {
+ :item => @item, :operators => @operators
+ }
+ }
+ end
+
def set_image(file)
if file.respond_to?(:read)
file.read
end
before_filter :authenticate_admin!, :only => [:list, :browse]
+ @@model = Artist
def index
- @page = Artist.page_number params[:page]
- @page_size = Artist.page_size params[:page_size]
- @artists = Artist.list(@page, @page_size)
+ set_filer
respond_to do |format|
- format.html {
- @paginate = Artist.list_paginate(@page, @page_size)
- render :template => 'system/filer', :locals => {
- :items => @artists, :model => Artist,
- :perator => @operators, :pager => @paginate
- }
- }
- format.json { render :json => @artists.to_json(Artist.list_json_opt) }
+ format_filer format
+ format.json { render json: @items.to_json(@@model.list_json_opt) }
end
end
def show
- @artist = Artist.show(params[:id], @operators)
+ @item = Artist.show(params[:id], @operators)
respond_to do |format|
- format.html # show.html.erb
- format.prof { render :template => 'top/prof', :layout => true }
- format.json { render :json => @artist.to_json(Artist.show_json_opt) }
+ format.html {
+ @artist = @item
+ }
+ format_prof format
+ format.json { render :json => @item.to_json(Artist.show_json_opt) }
end
end
end
before_filter :authenticate_admin!, :only => [:list, :browse]
+ @@model = Author
def index
- @page = Author.page params[:page]
- @page_size = Author.page_size params[:page_size]
- @authors = Author.list(@page, @page_size)
+ set_filer
respond_to do |format|
- format.html {
- @paginate = Author.list_paginate(@page, @page_size)
- render :template => 'system/filer', :locals => {
- :items => @authors, :model => Author,
- :roles => [@user, @admin], :pager => @paginate
- }
- }
- format.json { render :json => @authors.to_json(Author.list_json_opt) }
+ format_filer format
+ format.json { render json: @items.to_json(@@model.list_json_opt) }
end
end
def show
- @au = Author.show(params[:id], [@user, @admin])
+ @item = Author.show(params[:id], @operators)
respond_to do |format|
- format.html
- format.prof { render :template => 'top/prof', :layout => true }
- format.json { render :json => @au.to_json(Author.show_json_opt) }
+ format.html {
+ @author = @item
+ }
+ format_prof format
+ format.json { render :json => @item.to_json(Author.show_json_opt) }
end
end
end
before_filter :authenticate_admin!, :only => [:list, :browse]
+ @@model = Balloon
def index
- @page = Balloon.page params[:page]
- @page_size = Balloon.page_size params[:page_size]
- @balloons = Balloon.list(@page, @page_size)
+ set_filer
respond_to do |format|
- format.html {
- @paginate = Balloon.list_paginate(@page, @page_size)
- render :template => 'system/filer', :locals => {
- :items => @balloons, :model => Balloon,
- :roles => [@user, @admin], :pager => @paginate
- }
- }
- format.json { render json: @balloons.to_json(Balloon.list_json_opt) }
+ format_filer format
+ format.json { render json: @items.to_json(@@model.list_json_opt) }
end
end
def show
- @balloon = Balloon.show(params[:id], [@user, @admin])
+ @item = Balloon.show(params[:id], @operators)
respond_to do |format|
- format.html # show.html.erb
- format.prof { render :template => 'top/prof', :layout => true }
- format.json { render json: @balloon.to_json(Balloon.show_json_opt) }
+ format.html {
+ @balloon = @item
+ }
+ format_prof format
+ format.json { render json: @item.to_json(Balloon.show_json_opt) }
end
end
end
before_filter :authenticate_admin!, :only => [:list, :browse]
+ @@model = Comic
def index
- @page = Comic.page params[:page]
- @page_size = Comic.page_size params[:page_size]
- @comics = Comic.list(@page, @page_size)
+ set_filer
+
respond_to do |format|
- format.html {
- @paginate = Comic.list_paginate(@page, @page_size)
- render :template => 'system/filer', :locals => {
- :items => @comics, :model => Comic,
- :roles => [@user, @admin], :pager => @paginate
- }
- }
- format.json { render json: @comics.to_json(Comic.list_json_opt) }
+ format_filer format
+ format.json { render json: @items.to_json(@@model.list_json_opt) }
format.atom
format.rss
end
end
def show
- @comic = Comic.show(params[:id], [@user, @admin])
-
+ @item = Comic.show(params[:id], @operators)
respond_to do |format|
- format.html
- format.prof { render :template => 'top/prof', :layout => true }
- format.json { render json: @comic.to_json(Comic.show_json_opt) }
+ format.html {
+ @comic = @item
+ }
+ format_prof format
+ format.json { render json: @item.to_json(Comic.show_json_opt) }
format.atom
format.rss
end
before_filter :authenticate_author, :only => [:new, :edit, :create, :update, :destroy]
end
+ @@model = GroundColor
def index
- @page = GroundColor.page params[:page]
- @page_size = GroundColor.page_size params[:page_size]
- @ground_colors = GroundColor.list(@page, @page_size)
+ set_filer
respond_to do |format|
- format.html {
- @paginate = GroundColor.list_paginate(@page, @page_size)
- render :template => 'system/filer', :locals => {
- :items => @ground_colors, :model => GroundColor,
- :roles => [@user, @admin], :pager => @paginate
- }
- }
- format.json { render :json => @ground_colors.to_json(GroundColor.list_json_opt) }
+ format_filer format
+ format.json { render json: @items.to_json(@@model.list_json_opt) }
end
end
def show
- @ground_color = GroundColor.show(params[:id], [@user, @admin])
+ @item = GroundColor.show(params[:id], @operators)
respond_to do |format|
- format.html # show.html.erb
- format.prof { render :template => 'top/prof', :layout => true }
- format.json { render json: @ground_color.to_json(GroundColor.show_json_opt) }
+ format.html {
+ @ground_color = @item
+ }
+ format_prof format
+ format.json { render json: @item.to_json(GroundColor.show_json_opt) }
end
end
before_filter :authenticate_author, :only => [:new, :edit, :create, :update, :destroy]
end
+ @@model = GroundPicture
def index
- @page = GroundPicture.page params[:page]
- @page_size = GroundPicture.page_size params[:page_size]
- @ground_pictures = GroundPicture.list(@page, @page_size)
+ set_filer
respond_to do |format|
- format.html {
- @paginate = GroundPicture.list_paginate(@page, @page_size)
- render :template => 'system/filer', :locals => {
- :items => @ground_pictures, :model => GroundPicture,
- :roles => [@user, @admin], :pager => @paginate
- }
- }
- format.json { render :json => @ground_pictures.to_json(GroundPicture.list_json_opt) }
+ format_filer format
+ format.json { render json: @items.to_json(@@model.list_json_opt) }
end
end
def show
- @ground_picture = GroundPicture.show(params[:id], [@user, @admin])
+ @item = GroundPicture.show(params[:id], @operators)
respond_to do |format|
- format.html # show.html.erb
- format.prof { render :template => 'top/prof', :layout => true }
- format.json { render json: @ground_picture.to_json(GroundPicture.show_json_opt) }
+ format.html {
+ @ground_picture = @item
+ }
+ format_prof format
+ format.json { render json: @item.to_json(GroundPicture.show_json_opt) }
end
end
layout 'test' if MagicNumber['test_layout']
before_filter :authenticate_admin!, :only => [:list, :browse]
- # GET /license_groups
- # GET /license_groups.json
+ @@model = LicenseGroup
def index
- @license_groups = LicenseGroup.list()
+ set_filer
respond_to do |format|
- format.html {
- render :template => 'system/filer', :locals => {
- :items => @license_groups, :model => LicenseGroup,
- :roles => [@user, @admin], :pager => nil
- }
- }
- format.json { render json: @license_groups.to_json(LicenseGroup.list_json_opt) }
+ format_filer format
+ format.json { render json: @items.to_json(@@model.list_json_opt) }
end
end
- # GET /license_groups/1
- # GET /license_groups/1.json
def show
- @license_group = LicenseGroup.show(params[:id])
+ @item = LicenseGroup.show(params[:id], @operators)
respond_to do |format|
- format.html # show.html.erb
- format.prof { render :template => 'top/prof', :layout => true }
- format.json { render json: @license_group.to_json(LicenseGroup.show_json_opt) }
+ format.html {
+ @license_group = @item
+ }
+ format_prof format
+ format.json { render json: @item.to_json(LicenseGroup.show_json_opt) }
end
end
layout 'test' if MagicNumber['test_layout']
before_filter :authenticate_admin!, :only => [:list, :browse]
- # GET /licenses
- # GET /licenses.json
+ @@model = License
def index
- @licenses = License.list()
+ set_filer
respond_to do |format|
- format.html {
- render :template => 'system/filer', :locals => {
- :items => @licenses, :model => License,
- :roles => [@user, @admin], :pager => nil
- }
- }
- format.json { render json: @licenses.to_json(License.list_json_opt) }
+ format_filer format
+ format.json { render json: @items.to_json(@@model.list_json_opt) }
end
end
- # GET /licenses/1
- # GET /licenses/1.json
def show
- @license = License.show(params[:id])
+ @item = License.show(params[:id], @operators)
respond_to do |format|
- format.html # show.html.erb
- format.prof { render :template => 'top/prof', :layout => true }
- format.json { render json: @license.to_json(License.show_json_opt) }
+ format.html {
+ @license = @item
+ }
+ format_prof format
+ format.json { render json: @item.to_json(License.show_json_opt) }
end
end
before_filter :authenticate_artist, :only => [:index, :new, :edit, :create, :update, :destroy]
before_filter :authenticate_admin!, :only => [:list, :browse]
+ @@model = OriginalPicture
def index
- @page = OriginalPicture.page params[:page]
- @page_size = OriginalPicture.page_size params[:page_size]
- @original_pictures = OriginalPicture.mylist(@artist, @page, @page_size)
+ set_filer
respond_to do |format|
- format.html {
- @paginate = OriginalPicture.mylist_paginate(@artist, @page, @page_size)
- render :template => 'system/filer', :locals => {
- :items => @original_pictures, :model => OriginalPicture,
- :roles => [@user, @admin], :pager => @paginate
- }
- }
- format.json { render json: @original_pictures.to_json(OriginalPicture.list_json_opt) }
+ format_filer format
+ format.json { render json: @items.to_json(@@model.list_json_opt) }
end
end
def show
- @original_picture = OriginalPicture.show(params[:id], [@artist, @admin])
+ @item = OriginalPicture.show(params[:id], @operators)
respond_to do |format|
- opt = {:type => @original_picture.mime_type, :disposition=>"inline"}
- format.png { send_data(@original_picture.restore, opt ) }
- format.gif { send_data(@original_picture.restore, opt ) }
- format.jpeg { send_data(@original_picture.restore, opt ) }
+ opt = {:type => @item.mime_type, :disposition=>"inline"}
+ format.png { send_data(@item.restore, opt ) }
+ format.gif { send_data(@item.restore, opt ) }
+ format.jpeg { send_data(@item.restore, opt ) }
format.html {
+ @original_picture = @item
#ライセンス付与のために原画ライセンスグループ作成準備
- @original_picture_license_group = OriginalPictureLicenseGroup.new :original_picture_id => @original_picture.id
+ @original_picture_license_group = OriginalPictureLicenseGroup.new :original_picture_id => @item.id
render
}
- format.prof { render :template => 'top/prof', :layout => true }
- format.json { render json: @original_picture.to_json(OriginalPicture.show_json_opt)}
+ format_prof format
+ format.json { render json: @item.to_json(OriginalPicture.show_json_opt)}
end
end
end
before_filter :authenticate_admin!, :only => [:list, :browse]
+ @@model = PanelPicture
def index
- @page = PanelPicture.page params[:page]
- @page_size = PanelPicture.page_size params[:page_size]
- @panel_pictures = PanelPicture.list(@page, @page_size)
+ set_filer
respond_to do |format|
- format.html {
- @paginate = PanelPicture.list_paginate(@page, @page_size)
- render :template => 'system/filer', :locals => {
- :items => @panel_pictures, :model => PanelPicture,
- :roles => [@user, @admin], :pager => @paginate
- }
- }
- format.json { render :json => @panel_pictures.to_json(PanelPicture.list_json_opt) }
+ format_filer format
+ format.json { render :json => @items.to_json(@@model.list_json_opt) }
end
end
def show
- @panel_picture = PanelPicture.show(params[:id], [@user, @admin])
+ @item = PanelPicture.show(params[:id], @operators)
respond_to do |format|
- format.html
- format.prof { render :template => 'top/prof', :layout => true }
- format.json { render :json => @panel_picture.to_json(PanelPicture.show_json_opt) }
+ format.html {
+ @panel_picture = @item
+ }
+ format_prof format
+ format.json { render :json => @item.to_json(PanelPicture.show_json_opt) }
end
end
before_filter :authenticate_author, :only => [:new, :edit, :create, :update, :destroy, :catch]
end
before_filter :authenticate_admin!, :only => [:list, :browse]
-
- public
+ @@model = Panel
def index
- @page = Panel.page params[:page]
- @page_size = Panel.page_size params[:page_size]
- @panels = Panel.list(@page, @page_size)
+ set_filer
respond_to do |format|
- format.html {
- @paginate = Panel.list_paginate(@page, @page_size)
- render :template => 'system/filer', :locals => {
- :items => @panels, :model => Panel,
- :roles => [@user, @admin], :pager => @paginate
- }
- }
- format.html {
- }
- format.json { render text: Panel.list_as_json_text(@panels) }
+ format_filer format
+ format.json { render text: @@model.list_as_json_text(@items) }
format.atom
format.rss { render :layout => false }
end
end
def show
- @panel = Panel.show(params[:id], [@user, @admin])
+ @item = Panel.show(params[:id], @operators)
respond_to do |format|
format.html {
- if @author
- @new_scrolls = Scroll.mylist(@author, 1, 5)
- @fresh_scrolls = ScrollPanel.mylist(@author, 1, 5).map {|sp| sp.scroll}
- @new_sheets = Sheet.mylist(@author, 1, 5)
- @fresh_sheets = SheetPanel.mylist(@author, 1, 5).map {|sp| sp.sheet}
+ @panel = @item
+ if @operators.author
+ @new_scrolls = Scroll.mylist(@operators.author, 1, 5)
+ @fresh_scrolls = ScrollPanel.mylist(@operators.author, 1, 5).map {|sp| sp.scroll}
+ @new_sheets = Sheet.mylist(@operators.author, 1, 5)
+ @fresh_sheets = SheetPanel.mylist(@operators.author, 1, 5).map {|sp| sp.sheet}
end
}
- format.prof { render :template => 'top/prof', :layout => true }
- format.json { render json: @panel.panel_elements_as_json }
- format.jsonp {
- render :json => "callback(" + @panel.panel_elements_as_json + ");"
- }
+ format_prof format
+ format.json { render json: @item.panel_elements_as_json }
end
end
before_filter :authenticate_admin!, :only => [:list, :browse]
def show
- @picture = Picture.show(params[:id], [@user, @admin, @demand_user])
+ @item = Picture.show(params[:id], @operators)
respond_to do |format|
- opt = {:type => @picture.mime_type, :disposition=>"inline"}
- format.png { send_data(@picture.restore(params[:subdir]), opt ) }
- format.gif { send_data(@picture.restore(params[:subdir]), opt ) }
- format.jpeg { send_data(@picture.restore(params[:subdir]), opt ) }
- format.html
- format.prof { render :template => 'top/prof', :layout => true }
- format.json { render :json => @picture.to_json}
+ opt = {:type => @item.mime_type, :disposition=>"inline"}
+ format.png { send_data(@item.restore(params[:subdir]), opt ) }
+ format.gif { send_data(@item.restore(params[:subdir]), opt ) }
+ format.jpeg { send_data(@item.restore(params[:subdir]), opt ) }
+ format.html {
+ @picture = @item
+ }
+ format_prof format
+ format.json { render :json => @item.to_json}
end
end
end
before_filter :authenticate_admin!, :only => [:list, :browse]
+ @@model = ResourcePicture
def index
- @page = ResourcePicture.page params[:page]
- @page_size = ResourcePicture.page_size params[:page_size]
- @resource_pictures = ResourcePicture.list(@page, @page_size)
+ set_filer
respond_to do |format|
- format.html {
- @paginate = ResourcePicture.list_paginate(@page, @page_size)
- render :template => 'system/filer', :locals => {
- :items => @resource_pictures, :model => ResourcePicture,
- :roles => [@user, @admin], :pager => @paginate
- }
- }
- format.json { render :json => @resource_pictures.to_json(ResourcePicture.list_json_opt) }
+ format_filer format
+ format.json { render :json => @items.to_json(@@model.list_json_opt) }
end
end
def show
- @resource_picture = ResourcePicture.show(params[:id], [@user, @admin, @demand_user])
+ @item = ResourcePicture.show(params[:id], @operators)
respond_to do |format|
- opt = {:type => @resource_picture.mime_type, :disposition=>"inline"}
- format.png { send_data(@resource_picture.restore(params[:subdir]), opt ) }
- format.gif { send_data(@resource_picture.restore(params[:subdir]), opt ) }
- format.jpeg { send_data(@resource_picture.restore(params[:subdir]), opt ) }
- format.html # show.html.erb
- format.prof { render :template => 'top/prof', :layout => true }
- format.json { render :json => @resource_picture.to_json(ResourcePicture.show_json_opt)}
+ opt = {:type => @item.mime_type, :disposition=>"inline"}
+ format.png { send_data(@item.restore(params[:subdir]), opt ) }
+ format.gif { send_data(@item.restore(params[:subdir]), opt ) }
+ format.jpeg { send_data(@item.restore(params[:subdir]), opt ) }
+ format.html {
+ @resource_picture = @item
+ }
+ format_prof format
+ format.json { render :json => @item.to_json(ResourcePicture.show_json_opt)}
end
end
end
before_filter :authenticate_admin!, :only => [:list, :browse]
+ @@model = ScrollPanel
def index
- @page = ScrollPanel.page params[:page]
- @page_size = ScrollPanel.page_size params[:page_size]
- @scroll_panels = ScrollPanel.list(@page, @page_size)
+ set_filer
respond_to do |format|
- format.html {
- @paginate = ScrollPanel.list_paginate(@page, @page_size)
- render :template => 'system/filer', :locals => {
- :items => @scroll_panels, :model => ScrollPanel,
- :roles => [@user, @admin], :pager => @paginate
- }
- }
- format.json { render :json => @scroll_panels.to_json(ScrollPanel.list_json_opt) }
+ format_filer format
+ format.json { render :json => @items.to_json(@@model.list_json_opt) }
end
end
def show
- @scroll_panel = ScrollPanel.show(params[:id], [@user, @admin])
+ @item = ScrollPanel.show(params[:id], @operators)
respond_to do |format|
- format.html # show.html.erb
- format.prof { render :template => 'top/prof', :layout => true }
- format.json { render json: @scroll_panel.scroll_panel_as_json(@author) }
+ format.html {
+ @scroll_panel = @item
+ }
+ format_prof format
+ format.json { render json: @item.scroll_panel_as_json(@operators.author) }
end
end
end
before_filter :authenticate_admin!, :only => [:list, :browse]
+ @@model = Scroll
def index
- @page = Scroll.page params[:page]
- @page_size = Scroll.page_size params[:page_size]
- @scrolls = Scroll.list(@page, @page_size)
+ set_filer
+
respond_to do |format|
- format.html {
- @paginate = Scroll.list_paginate(@page, @page_size)
- render :template => 'system/filer', :locals => {
- :items => @scrolls, :model => Scroll,
- :roles => [@user, @admin], :pager => @paginate
- }
- }
- format.json { render json: @scrolls.to_json(Scroll.list_json_opt) }
+ format_filer format
+ format.json { render json: @items.to_json(@@model.list_json_opt) }
format.atom
format.rss
end
end
def show
- @scroll = Scroll.show(params[:id], [@user, @admin])
+ @item = Scroll.show(params[:id], @operators)
respond_to do |format|
format.html {
- if @author
- @new_panels = Panel.mylist(@author, 1, 5)
+ @scroll = @item
+ if @operators.author
+ @new_panels = Panel.mylist(@operators.author, 1, 5)
end
}
- format.json { render json: @scroll.to_json(Scroll.show_json_opt) }
- format.prof { render :template => 'top/prof', :layout => true }
+ format.json { render json: @item.to_json(Scroll.show_json_opt) }
+ format_prof format
format.atom
format.rss
end
end
before_filter :authenticate_admin!, :only => [:list, :browse]
+ @@model = SheetPanel
def index
- @page = SheetPanel.page params[:page]
- @page_size = SheetPanel.page_size params[:page_size]
- @sheet_panels = SheetPanel.list(@page, @page_size)
+ set_filer
respond_to do |format|
- format.html {
- @paginate = SheetPanel.list_paginate(@page, @page_size)
- render :template => 'system/filer', :locals => {
- :items => @sheet_panels, :model => SheetPanel,
- :roles => [@user, @admin], :pager => @paginate
- }
- }
- format.json { render :json => @sheet_panels.to_json(SheetPanel.list_json_opt) }
+ format_filer format
+ format.json { render json: @items.to_json(@@model.list_json_opt) }
end
end
def show
- @sheet_panel = SheetPanel.show(params[:id], [@user, @admin])
+ @item = SheetPanel.show(params[:id], @operators)
respond_to do |format|
- format.html # show.html.erb
- format.prof { render :template => 'top/prof', :layout => true }
- format.json { render json: @sheet_panel.sheet_panel_as_json(@author) }
+ format.html {
+ @sheet_panel = @item
+ }
+ format_prof format
+ format.json { render json: @item.sheet_panel_as_json(@author) }
end
end
end
before_filter :authenticate_admin!, :only => [:list, :browse]
+ @@model = Sheet
def index
- @page = Sheet.page params[:page]
- @page_size = Sheet.page_size params[:page_size]
- @sheets = Sheet.list(@page, @page_size)
+ set_filer
+
respond_to do |format|
- format.html {
- @paginate = Sheet.list_paginate(@page, @page_size)
- render :template => 'system/filer', :locals => {
- :items => @sheets, :model => Sheet,
- :roles => [@user, @admin], :pager => @paginate
- }
- }
- format.json { render json: @sheets.to_json(Sheet.list_json_opt) }
+ format_filer format
+ format.json { render json: @items.to_json(@@model.list_json_opt) }
format.atom
format.rss
end
end
def show
- @sheet = Sheet.show(params[:id], [@user, @admin])
+ @item = Sheet.show(params[:id], @operators)
respond_to do |format|
format.html {
- if @author
- @new_panels = Panel.mylist(@author, 1, 5)
- @new_stories = Story.mylist(@author, 1, 5)
- @fresh_stories = StorySheet.mylist(@author, 1, 5).map {|ss| ss.story}
+ @sheet = @item
+ if @operators.author
+ @new_panels = Panel.mylist(@operators.author, 1, 5)
+ @new_stories = Story.mylist(@operators.author, 1, 5)
+ @fresh_stories = StorySheet.mylist(@operators.author, 1, 5).map {|ss| ss.story}
end
}
- format.prof { render :template => 'top/prof', :layout => true }
- format.json { render json: @sheet.to_json(Sheet.show_json_opt) }
+ format_prof format
+ format.json { render json: @item.to_json(Sheet.show_json_opt) }
format.atom
format.rss
end
end
before_filter :authenticate_admin!, :only => [:list, :browse, :destroy]
+ @@model = SpeechBalloonTemplate
def index
- @speech_balloon_templates = SpeechBalloonTemplate.enable_list
+ set_filer
respond_to do |format|
- format.html {
- render :template => 'system/filer', :locals => {
- :items => @speech_balloon_templates, :model => SpeechBalloonTemplate,
- :roles => [@user, @admin], :pager => nil
- }
- }
- format.json { render json: @speech_balloon_templates.to_json(SpeechBalloonTemplate.list_json_opt) }
+ format_filer format
+ format.json { render json: @items.to_json(@@model.list_json_opt) }
end
end
def show
- @speech_balloon_template = SpeechBalloonTemplate.show(params[:id], [@user, @admin])
+ @item = SpeechBalloonTemplate.show(params[:id], @operators)
respond_to do |format|
- format.html # show.html.erb
- format.prof { render :template => 'top/prof', :layout => true }
- format.json {
- render :json => @speech_balloon_template.to_json(SpeechBalloonTemplate.show_json_opt)
+ format.html {
+ @speech_balloon_template = @item
}
- format.jsonp {
- render :json => "callback(" + @speech_balloon_template.to_json() + ")"
+ format_prof format
+ format.json {
+ render :json => @item.to_json(SpeechBalloonTemplate.show_json_opt)
}
end
end
end
before_filter :authenticate_admin!, :only => [:list, :browse]
+ @@model = SpeechBalloon
def index
- @page = SpeechBalloon.page params[:page]
- @page_size = SpeechBalloon.page_size params[:page_size]
- @speech_balloons = SpeechBalloon.list(@page, @page_size)
+ set_filer
respond_to do |format|
- format.html {
- @paginate = SpeechBalloon.list_paginate(@page, @page_size)
- render :template => 'system/filer', :locals => {
- :items => @speech_balloons, :model => SpeechBalloon,
- :roles => [@user, @admin], :pager => @paginate
- }
- }
- format.json { render json: @speech_balloons.to_json(SpeechBalloon.list_json_opt) }
+ format_filer format
+ format.json { render json: @items.to_json(@@model.list_json_opt) }
end
end
def show
- @speech_balloon = SpeechBalloon.show(params[:id], [@user, @admin])
+ @item = SpeechBalloon.show(params[:id], @operators)
respond_to do |format|
- format.html # show.html.erb
- format.prof { render :template => 'top/prof', :layout => true }
- format.prof { render :template => 'top/prof', :layout => true }
- format.json { render json: @speech_balloon.to_json(SpeechBalloon.show_json_opt) }
+ format.html {
+ @speech_balloon = @item
+ }
+ format_prof format
+ format.json { render json: @item.to_json(SpeechBalloon.show_json_opt) }
end
end
end
before_filter :authenticate_admin!, :only => [:list, :browse]
+ @@model = Speech
def index
- @page = Speech.page params[:page]
- @page_size = Speech.page_size params[:page_size]
- @speeches = Speech.list(@page, @page_size)
+ set_filer
respond_to do |format|
- format.html {
- @paginate = Speech.list_paginate(@page, @page_size)
- render :template => 'system/filer', :locals => {
- :items => @speeches, :model => Speech,
- :roles => [@user, @admin], :pager => @paginate
- }
- }
- format.json { render json: @speeches.to_json(Speech.list_json_opt) }
+ format_filer format
+ format.json { render json: @items.to_json(@@model.list_json_opt) }
end
end
def show
- @speech = Speech.show(params[:id], [@user, @admin])
+ @item = Speech.show(params[:id], @operators)
respond_to do |format|
- format.html # show.html.erb
- format.prof { render :template => 'top/prof', :layout => true }
- format.json { render json: @speech.to_json(Speech.show_json_opt) }
+ format.html {
+ @speech = @item
+ }
+ format_prof format
+ format.json { render json: @item.to_json(Speech.show_json_opt) }
end
end
end
before_filter :authenticate_admin!, :only => [:list, :browse]
+ @@model = Story
def index
- @page = Story.page params[:page]
- @page_size = Story.page_size params[:page_size]
- @stories = Story.list(@page, @page_size)
+ set_filer
respond_to do |format|
- format.html {
- @paginate = Story.list_paginate(@page, @page_size)
- render :template => 'system/filer', :locals => {
- :items => @stories, :model => Story,
- :roles => [@user, @admin], :pager => @paginate
- }
- }
- format.json { render :json => @stories.to_json(Story.list_json_opt) }
+ format_filer format
+ format.json { render json: @items.to_json(@@model.list_json_opt) }
end
end
def show
- @story = Story.show(params[:id], [@user, @admin])
+ @item = Story.show(params[:id], @operators)
respond_to do |format|
format.html {
- if @author
- @new_sheets = Sheet.mylist(@author, 1, 5)
+ @story = @item
+ if @operators.author
+ @new_sheets = Sheet.mylist(@operators.author, 1, 5)
end
}
- format.prof { render :template => 'top/prof', :layout => true }
- format.json { render json: @story.to_json(Story.show_json_opt) }
+ format_prof format
+ format.json { render json: @item.to_json(Story.show_json_opt) }
end
end
end
before_filter :authenticate_admin!, :only => [:list, :browse]
+ @@model = StorySheet
def index
- @page = StorySheet.page params[:page]
- @page_size = StorySheet.page_size params[:page_size]
- @story_sheets = StorySheet.list(@page, @page_size)
+ set_filer
respond_to do |format|
- format.html {
- @paginate = StorySheet.list_paginate(@page, @page_size)
- render :template => 'system/filer', :locals => {
- :items => @story_sheets, :model => StorySheet,
- :roles => [@user, @admin], :pager => @paginate
- }
- }
- format.json { render :json => @story_sheets.to_json(StorySheet.list_json_opt) }
+ format_filer format
+ format.json { render json: @items.to_json(@@model.list_json_opt) }
end
end
def show
- @story_sheet = StorySheet.show(params[:id], [@user, @admin])
+ @item = StorySheet.show(params[:id], @operators)
respond_to do |format|
- format.html # show.html.erb
- format.prof { render :template => 'top/prof', :layout => true }
- format.json { render json: @story_sheet.to_json(StorySheet.show_json_opt) }
+ format.html {
+ @story_sheet = @item
+ }
+ format_prof format
+ format.json { render json: @item.to_json(StorySheet.show_json_opt) }
end
end
end
before_filter :authenticate_admin!, :only => [:list, :browse, :new, :create]
- # GET /system_pictures
- # GET /system_pictures.json
+ @@model = SystemPicture
def index
- @page = SystemPicture.page params[:page]
- @page_size = SystemPicture.page_size params[:page_size]
- @system_pictures = SystemPicture.list(@page, @page_size)
+ set_filer
respond_to do |format|
- format.html {
- @paginate = SystemPicture.list_paginate(@page, @page_size)
- render :template => 'system/filer', :locals => {
- :items => @system_pictures, :model => SystemPicture,
- :roles => [@user, @admin], :pager => @paginate
- }
- }
- format.json { render json: @system_pictures.to_json(SystemPicture.list_json_opt) }
+ format_filer format
+ format.json { render json: @items.to_json(@@model.list_json_opt) }
end
end
- # GET /system_pictures/1
- # GET /system_pictures/1.json
def show
- @system_picture = SystemPicture.show(params[:id], [@user, @admin, @demand_user])
+ @item = SystemPicture.show(params[:id], @operators)
respond_to do |format|
- opt = {:type => @system_picture.mime_type, :disposition=>"inline"}
- format.png { send_data(@system_picture.restore, opt ) }
- format.gif { send_data(@system_picture.restore, opt ) }
- format.jpeg { send_data(@system_picture.restore, opt ) }
- format.html # show.html.erb
- format.prof { render :template => 'top/prof', :layout => true }
- format.json { render json: @system_picture.to_json(SystemPicture.show_json_opt)}
+ opt = {:type => @item.mime_type, :disposition=>"inline"}
+ format.png { send_data(@item.restore, opt ) }
+ format.gif { send_data(@item.restore, opt ) }
+ format.jpeg { send_data(@item.restore, opt ) }
+ format.html {
+ @system_picture = @item
+ }
+ format_prof format
+ format.json { render json: @item.to_json(SystemPicture.show_json_opt)}
end
end
class WritingFormatsController < ApplicationController
+ layout 'test' if MagicNumber['test_layout']
+ if MagicNumber['run_mode'] == 0
+ before_filter :authenticate_user, :only => []
+ else
+ before_filter :authenticate_reader, :only => [:index, :show]
+ before_filter :authenticate_user, :only => []
+ end
+ before_filter :authenticate_admin!, :only => [:list, :browse, :destroy]
+
+ @@model = WritingFormat
+ def index
+ set_filer
+
+ respond_to do |format|
+ format_filer format
+ format.json { render json: @items.to_json(@@model.list_json_opt) }
+ end
+ end
+
+ def show
+ @item = WritingFormat.show(params[:id], @operators)
+
+ respond_to do |format|
+ format.html {
+ @writing_format = @item
+ }
+ format_prof format
+ format.json { render :json => @item.to_json(WritingFormat.show_json_opt) }
+ end
+ end
+
end
def configurations
JSON.parse(<<HD
{
- "filers": {
+ "models": {
+ "Scroll": "scroll",
"scroll": {
- "symbol": {
- "type": "image",
- "name": "/assets/item.png"
- },
- "caption": {
- "type": "column",
- "name": "title",
- "link": {
- "type": "action",
- "name": "play"
+ "class_name": "Scroll",
+ "table_name": "scrolls",
+ "associations": {
+ "belongs_to": {
+ "author": {
+ "id_column": "author_id"
+ }
+ },
+ "has_many": {
+ "scroll_panels": {
+ "foreign_key": "scroll_id",
+ "list_method": "list_by_scroll"
+ },
+ "panels": {
+ "through": "scroll_panels",
+ "foreign_key": "scroll_id",
+ "list_method": "list_by_scroll"
+ }
}
},
- "summary": {
- "type": "template",
- "name": "summary"
+ "attributes": {
+ "id": {
+ "type": "number",
+ "primary_key": 1,
+ "rules": {
+ "number": true
+ }
+ },
+ "title": {
+ "type": "text",
+ "rules": {
+ "required": true
+ }
+ },
+ "description": {
+ "type": "text",
+ "rules": {}
+ },
+ "visible": {
+ "type": "number",
+ "rules": {
+ "required": true,
+ "number": true
+ },
+ "source": {
+ "type": "magic_number",
+ "key": "scroll_visible_items"
+ }
+ },
+ "author_id": {
+ "type": "number",
+ "rules": {
+ "required": true,
+ "number": true
+ }
+ },
+ "created_at": {
+ "type": "datetime"
+ },
+ "updated_at": {
+ "type": "datetime"
+ }
},
- "edit": {
- "type": "default"
+ "select": {
+ "method": "list",
+ "caption": {
+ "type": "column",
+ "name": "title"
+ }
}
},
+ "ScrollPanel": "scroll_panel",
"scroll_panel": {
- "symbol": {
- "type": "image",
- "name": "/assets/item.png",
- "link": {
- "type": "none"
- }
- },
- "caption": {
- "type": "none"
- },
- "summary": {
- "type": "template",
- "name": "summary"
+ "class_name": "ScrollPanel",
+ "table_name": "scroll_panels",
+ "associations": {
+ "belongs_to": {
+ "panel": {
+ "id_column": "panel_id"
+ },
+ "scroll": {
+ "id_column": "scroll_id"
+ }
+ },
+ "has_many": {}
},
- "edit": {
- "type": "none"
+ "attributes": {
+ "id": {
+ "type": "number",
+ "primary_key": 1,
+ "rules": {
+ "number": true
+ }
+ },
+ "scroll_id": {
+ "type": "number",
+ "rules": {
+ "required": true,
+ "number": true
+ }
+ },
+ "panel_id": {
+ "type": "number",
+ "rules": {
+ "required": true,
+ "number": true
+ }
+ },
+ "t": {
+ "type": "number",
+ "rules": {
+ "required": true,
+ "number": true,
+ "min": 0
+ }
+ },
+ "author_id": {
+ "type": "number",
+ "rules": {
+ "required": true,
+ "number": true
+ }
+ },
+ "created_at": {
+ "type": "datetime"
+ },
+ "updated_at": {
+ "type": "datetime"
+ }
}
},
+ "Comic": "comic",
"comic": {
- "symbol": {
- "type": "image",
- "name": "/assets/item.png"
- },
- "caption": {
- "type": "column",
- "name": "title"
+ "class_name": "Comic",
+ "table_name": "comics",
+ "associations": {
+ "belongs_to": {
+ "author": {
+ "id_column": "author_id"
+ }
+ },
+ "has_many": {
+ "stories": {
+ "foreign_key": "comic_id",
+ "list_method": "list_by_comic"
+ }
+ },
+ "has_many_through": {}
},
- "summary": {
- "type": "template",
- "name": "summary"
+ "attributes": {
+ "id": {
+ "type": "number",
+ "primary_key": 1,
+ "rules": {
+ "number": true
+ }
+ },
+ "title": {
+ "type": "text",
+ "rules": {
+ "required": true
+ }
+ },
+ "description": {
+ "type": "text",
+ "rules": {}
+ },
+ "visible": {
+ "type": "number",
+ "rules": {
+ "required": true,
+ "number": true
+ },
+ "source": {
+ "type": "magic_number",
+ "key": "comic_visible_items"
+ }
+ },
+ "author_id": {
+ "type": "number",
+ "rules": {
+ "required": true,
+ "number": true
+ }
+ },
+ "created_at": {
+ "type": "datetime"
+ },
+ "updated_at": {
+ "type": "datetime"
+ }
},
- "edit": {
- "type": "default"
+ "select": {
+ "method": "list",
+ "caption": {
+ "type": "column",
+ "name": "title"
+ }
}
},
+ "Story": "story",
"story": {
- "symbol": {
- "type": "image",
- "name": "/assets/item.png"
- },
- "caption": {
- "type": "method",
- "name": "title_with_t",
- "link": {
- "type": "action",
- "name": "play"
+ "class_name": "Story",
+ "table_name": "stories",
+ "associations": {
+ "belongs_to": {
+ "comic": {
+ "id_column": "comic_id"
+ }
+ },
+ "has_many": {
+ "story_sheets": {
+ "foreign_key": "story_id",
+ "list_method": "list_by_story"
+ },
+ "sheets": {
+ "through": "story_sheets",
+ "foreign_key": "story_id",
+ "list_method": "list_by_story"
+ }
}
},
- "summary": {
- "type": "template",
- "name": "summary"
- },
- "edit": {
- "type": "default"
- }
- },
- "story_sheet": {
- "symbol": {
- "type": "image",
- "name": "/assets/item.png",
- "link": {
- "type": "none"
+ "attributes": {
+ "id": {
+ "type": "number",
+ "primary_key": 1,
+ "rules": {
+ "number": true
+ }
+ },
+ "comic_id": {
+ "type": "number",
+ "rules": {
+ "number": true
+ }
+ },
+ "title": {
+ "type": "text",
+ "rules": {}
+ },
+ "description": {
+ "type": "text",
+ "rules": {}
+ },
+ "t": {
+ "type": "number",
+ "rules": {
+ "required": true,
+ "number": true,
+ "min": 0
+ }
+ },
+ "visible": {
+ "type": "number",
+ "rules": {
+ "required": true,
+ "number": true
+ },
+ "source": {
+ "type": "magic_number",
+ "key": "story_visible_items"
+ }
+ },
+ "created_at": {
+ "type": "datetime"
+ },
+ "updated_at": {
+ "type": "datetime"
}
},
- "caption": {
- "type": "none"
- },
- "summary": {
- "type": "template",
- "name": "summary"
- },
- "edit": {
- "type": "none"
+ "select": {
+ "method": "list",
+ "caption": {
+ "type": "method",
+ "name": "title_with_t"
+ }
}
},
- "sheet": {
- "symbol": {
- "type": "image",
- "name": "/assets/item.png"
+ "StorySheet": "story_sheet",
+ "story_sheet": {
+ "class_name": "StorySheet",
+ "table_name": "story_sheets",
+ "associations": {
+ "belongs_to": {
+ "story": {
+ "id_column": "story_id"
+ },
+ "sheet": {
+ "id_column": "sheet_id"
+ }
+ },
+ "has_many": {}
},
- "caption": {
- "type": "column",
- "name": "caption",
- "link": {
- "type": "action",
- "name": "play"
+ "attributes": {
+ "id": {
+ "type": "number",
+ "primary_key": 1,
+ "rules": {
+ "number": true
+ }
+ },
+ "story_id": {
+ "type": "number",
+ "rules": {
+ "number": true
+ }
+ },
+ "sheet_id": {
+ "type": "number",
+ "rules": {
+ "number": true
+ }
+ },
+ "t": {
+ "type": "number",
+ "rules": {
+ "required": true,
+ "number": true,
+ "min": 0
+ }
+ },
+ "author_id": {
+ "type": "number",
+ "rules": {
+ "required": true,
+ "number": true
+ }
+ },
+ "created_at": {
+ "type": "datetime"
+ },
+ "updated_at": {
+ "type": "datetime"
}
- },
- "summary": {
- "type": "template",
- "name": "summary"
- },
- "edit": {
- "type": "default"
}
},
- "sheet_panel": {
- "symbol": {
- "type": "image",
- "name": "/assets/item.png",
- "link": {
- "type": "none"
+ "Sheet": "sheet",
+ "sheet": {
+ "class_name": "Sheet",
+ "table_name": "sheets",
+ "associations": {
+ "belongs_to": {
+ "author": {
+ "id_column": "author_id"
+ }
+ },
+ "has_many": {
+ "story_sheets": {
+ "foreign_key": "story_id",
+ "list_method": "list_by_sheet"
+ },
+ "stories": {
+ "through": "story_sheets",
+ "foreign_key": "sheet_id",
+ "list_method": "list_by_sheet"
+ },
+ "sheet_panels": {
+ "foreign_key": "sheet_id",
+ "list_method": "list_by_sheet"
+ },
+ "panels": {
+ "through": "sheet_panels",
+ "foreign_key": "sheet_id",
+ "list_method": "list_by_sheet"
+ }
}
},
- "caption": {
- "type": "none"
- },
- "summary": {
- "type": "template",
- "name": "summary"
- },
- "edit": {
- "type": "none"
- }
- },
- "panel": {
- "symbol": {
- "type": "image",
- "name": "/assets/item.png"
- },
- "caption": {
- "type": "method",
- "name": "plain_scenario",
- "link": {
- "type": "none"
+ "attributes": {
+ "id": {
+ "type": "number",
+ "primary_key": 1,
+ "rules": {
+ "number": true
+ }
+ },
+ "caption": {
+ "type": "text",
+ "rules": {}
+ },
+ "width": {
+ "type": "number",
+ "rules": {
+ "required": true,
+ "number": true
+ }
+ },
+ "height": {
+ "type": "number",
+ "rules": {
+ "required": true,
+ "number": true
+ }
+ },
+ "visible": {
+ "type": "number",
+ "rules": {
+ "required": true,
+ "number": true
+ },
+ "source": {
+ "type": "magic_number",
+ "key": "sheet_visible_items"
+ }
+ },
+ "author_id": {
+ "type": "number",
+ "rules": {
+ "required": true,
+ "number": true
+ }
+ },
+ "created_at": {
+ "type": "datetime"
+ },
+ "updated_at": {
+ "type": "datetime"
}
},
- "summary": {
- "type": "template",
- "name": "summary"
- },
- "edit": {
- "type": "default"
- }
- },
- "panel_picture": {
- "symbol": {
- "type": "picture",
- "name": "symbol_option"
- },
- "caption": {
- "type": "column",
- "name": "caption"
- },
- "summary": {
- "type": "template",
- "name": "summary"
- },
- "edit": {
- "type": "none"
- }
- },
- "speech_balloon": {
- "symbol": {
- "type": "picture",
- "name": "symbol_option"
- },
- "caption": {
- "type": "method",
- "name": "plain_scenario",
- "link": {
- "type": "none"
+ "select": {
+ "method": "list",
+ "caption": {
+ "type": "column",
+ "name": "caption"
}
- },
- "summary": {
- "type": "template",
- "name": "summary"
- },
- "edit": {
- "type": "none"
}
},
- "speech": {
- "symbol": {
- "type": "picture",
- "name": "symbol_option"
+ "SheetPanel": "sheet_panel",
+ "sheet_panel": {
+ "class_name": "SheetPanel",
+ "table_name": "sheet_panels",
+ "associations": {
+ "belongs_to": {
+ "sheet": {
+ "id_column": "sheet_id"
+ },
+ "panel": {
+ "id_column": "panel_id"
+ }
+ },
+ "has_many": {}
},
- "caption": {
- "type": "column",
- "name": "content",
- "link": {
- "type": "none"
- }
- },
- "summary": {
- "type": "template",
- "name": "summary"
- },
- "edit": {
- "type": "none"
- }
- },
- "balloon": {
- "symbol": {
- "type": "picture",
- "name": "symbol_option"
- },
- "caption": {
- "type": "none"
- },
- "summary": {
- "type": "template",
- "name": "summary"
- },
- "edit": {
- "type": "none"
- }
- },
- "ground_picture": {
- "symbol": {
- "type": "picture",
- "name": "symbol_option"
- },
- "caption": {
- "type": "column",
- "name": "caption"
- },
- "summary": {
- "type": "template",
- "name": "summary"
- },
- "edit": {
- "type": "none"
- }
- },
- "ground_color": {
- "symbol": {
- "type": "template",
- "name": "symbol"
- },
- "caption": {
- "type": "column",
- "name": "caption"
- },
- "summary": {
- "type": "template",
- "name": "summary"
- },
- "edit": {
- "type": "none"
- }
- },
- "original_picture": {
- "symbol": {
- "type": "picture",
- "name": "symbol_option"
- },
- "caption": {
- "type": "method",
- "name": "revision",
- "link": {
- "type": "action",
- "name": "history"
- }
- },
- "summary": {
- "type": "template",
- "name": "summary"
- },
- "edit": {
- "type": "template",
- "name": "publish"
- }
- },
- "picture": {},
- "resource_picture": {
- "symbol": {
- "type": "picture",
- "name": "symbol_option"
- },
- "caption": {
- "type": "none"
- },
- "summary": {
- "type": "template",
- "name": "summary"
- },
- "edit": {
- "type": "none"
- }
- },
- "speech_balloon_template": {
- "symbol": {
- "type": "picture",
- "name": "symbol_option"
- },
- "caption": {
- "type": "column",
- "name": "caption"
- },
- "summary": {
- "type": "none"
- },
- "edit": {
- "type": "none"
- }
- },
- "writing_format": {
- "symbol": {
- "type": "image",
- "name": "/assets/item.png"
- },
- "caption": {
- "type": "column",
- "name": "caption"
- },
- "summary": {
- "type": "none"
- },
- "edit": {
- "type": "none"
- }
- },
- "license_group": {
- "symbol": {
- "type": "image",
- "name": "/assets/item.png"
- },
- "caption": {
- "type": "column",
- "name": "caption",
- "link": {
- "type": "url_column",
- "name": "url"
- }
- },
- "summary": {
- "type": "none"
- },
- "edit": {
- "type": "none"
- }
- },
- "license": {
- "symbol": {
- "type": "image",
- "name": "/assets/item.png"
- },
- "caption": {
- "type": "method",
- "name": "caption_with_group",
- "link": {
- "type": "url_column",
- "name": "url"
- }
- },
- "summary": {
- "type": "template",
- "name": "summary"
- },
- "edit": {
- "type": "none"
- }
- },
- "author": {
- "symbol": {
- "type": "image",
- "name": "/assets/item.png"
- },
- "caption": {
- "type": "column",
- "name": "name"
- },
- "summary": {
- "type": "template",
- "name": "summary"
- },
- "edit": {
- "type": "account"
- }
- },
- "artist": {
- "symbol": {
- "type": "image",
- "name": "/assets/item.png"
- },
- "caption": {
- "type": "column",
- "name": "name"
- },
- "summary": {
- "type": "template",
- "name": "summary"
- },
- "edit": {
- "type": "account"
- }
- },
- "system_picture": {
- "symbol": {
- "type": "picture",
- "name": "symbol_option"
- },
- "caption": {
- "type": "none"
- },
- "summary": {
- "type": "none"
- },
- "edit": {
- "type": "none"
- }
- }
- },
- "models": {
- "Sheet": "sheet",
- "sheet": {
- "class_name": "Sheet",
- "table_name": "sheets",
- "attributes": {
- "id": {
- "type": "number",
- "primary_key": 1,
- "rules": {
- "number": true
- }
+ "attributes": {
+ "id": {
+ "type": "number",
+ "primary_key": 1,
+ "rules": {
+ "number": true
+ }
+ },
+ "sheet_id": {
+ "type": "number",
+ "rules": {
+ "number": true
+ }
+ },
+ "panel_id": {
+ "type": "number",
+ "rules": {
+ "number": true
+ }
+ },
+ "x": {
+ "type": "number",
+ "rules": {
+ "required": true,
+ "number": true
+ }
+ },
+ "y": {
+ "type": "number",
+ "rules": {
+ "required": true,
+ "number": true
+ }
+ },
+ "z": {
+ "type": "number",
+ "rules": {
+ "required": true,
+ "number": true,
+ "min": 1
+ }
+ },
+ "t": {
+ "type": "number",
+ "rules": {
+ "required": true,
+ "number": true,
+ "min": 0
+ }
+ },
+ "author_id": {
+ "type": "number",
+ "rules": {
+ "number": true
+ }
+ },
+ "created_at": {
+ "type": "datetime"
+ },
+ "updated_at": {
+ "type": "datetime"
}
}
},
"panel": {
"class_name": "Panel",
"table_name": "panels",
+ "associations": {
+ "belongs_to": {
+ "author": {
+ "id_column": "author_id"
+ }
+ },
+ "has_many": {
+ "scroll_panels": {
+ "foreign_key": "panel_id",
+ "list_method": "list_by_panel"
+ },
+ "scrolls": {
+ "through": "scroll_panels",
+ "foreign_key": "panel_id",
+ "list_method": "list_by_panel"
+ },
+ "sheet_panels": {
+ "foreign_key": "panel_id",
+ "list_method": "list_by_panel"
+ },
+ "sheets": {
+ "through": "sheet_panels",
+ "foreign_key": "panel_id",
+ "list_method": "list_by_panel"
+ },
+ "panel_pictures": {
+ "foreign_key": "panel_id",
+ "list_method": "list_by_panel"
+ },
+ "speech_balloons": {
+ "foreign_key": "panel_id",
+ "list_method": "list_by_panel"
+ },
+ "ground_pictures": {
+ "foreign_key": "panel_id",
+ "list_method": "list_by_panel"
+ },
+ "ground_colors": {
+ "foreign_key": "panel_id",
+ "list_method": "list_by_panel"
+ }
+ }
+ },
"attributes": {
"id": {
"type": "number",
"rules": {
"required": true,
"number": true
+ },
+ "source": {
+ "type": "magic_number",
+ "key": "panel_visible_items"
}
},
"author_id": {
"updated_at": {
"type": "datetime"
}
+ },
+ "select": {
+ "method": "list",
+ "caption": {
+ "type": "method",
+ "name": "plain_scenario"
+ }
}
},
"PanelPicture": "panel_picture",
"panel_picture": {
"class_name": "PanelPicture",
"table_name": "panel_pictures",
+ "associations": {
+ "belongs_to": {
+ "panel": {
+ "id_column": "panel_id"
+ }
+ },
+ "has_many": {}
+ },
"attributes": {
"id": {
"type": "number",
"class_name": "SpeechBalloon",
"table_name": "speech_balloons",
"extend": "classname",
+ "associations": {
+ "belongs_to": {
+ "panel": {
+ "id_column": "panel_id"
+ }
+ },
+ "has_many": {},
+ "has_one": {
+ "balloon": {
+ "foreign_key": "speech_balloon_id",
+ "list_method": "list_by_speech_balloon"
+ },
+ "speech": {
+ "foreign_key": "speech_balloon_id",
+ "list_method": "list_by_speech_balloon"
+ }
+ }
+ },
"attributes": {
"id": {
"type": "number",
"updated_at": {
"type": "datetime"
}
+ },
+ "select": {
+ "method": "list",
+ "caption": {
+ "type": "method",
+ "name": "plain_scenario"
+ }
}
},
"Balloon": "balloon",
"balloon": {
"class_name": "Balloon",
"table_name": "balloons",
- "attributes": {
- "id": {
- "type": "number",
+ "associations": {
+ "belongs_to": {
+ "speech_balloon": {
+ "id_column": "speech_balloon_id"
+ },
+ "system_picture": {
+ "id_column": "system_picture_id"
+ }
+ },
+ "has_many": {}
+ },
+ "attributes": {
+ "id": {
+ "type": "number",
"primary_key": 1,
"rules": {
"number": true
"speech": {
"class_name": "Speech",
"table_name": "speeches",
+ "associations": {
+ "belongs_to": {
+ "speech_balloon": {
+ "id_column": "speech_balloon_id"
+ },
+ "writing_format": {
+ "id_column": "writing_format_id"
+ }
+ },
+ "has_many": {}
+ },
"attributes": {
"id": {
"type": "number",
},
"writing_format_id": {
"type": "number",
+ "source": {
+ "type": "model",
+ "model": "writing_format",
+ "method": "enable_list",
+ "caption": "caption"
+ },
"rules": {
"required": true,
"number": true
"required": true,
"number": true,
"min": 0
+ },
+ "source": {
+ "type": "magic_number",
+ "key": "speech_font_size_items"
}
},
"text_align": {
0,
3
]
+ },
+ "source": {
+ "type": "magic_number",
+ "key": "speech_text_align_items"
}
},
"fore_color": {
"ground_picture": {
"class_name": "GroundPicture",
"table_name": "ground_pictures",
+ "associations": {
+ "belongs_to": {
+ "panel": {
+ "id_column": "panel_id"
+ }
+ },
+ "has_many": {}
+ },
"attributes": {
"id": {
"type": "number",
0,
3
]
+ },
+ "source": {
+ "type": "magic_number",
+ "key": "ground_picture_repeat_items"
}
},
"x": {
"ground_color": {
"class_name": "GroundColor",
"table_name": "ground_colors",
+ "associations": {
+ "belongs_to": {
+ "panel": {
+ "id_column": "panel_id"
+ }
+ },
+ "has_many": {}
+ },
"attributes": {
"id": {
"type": "number",
0,
1
]
+ },
+ "source": {
+ "type": "magic_number",
+ "key": "ground_color_orientation_items"
}
},
"xy": {
}
}
},
- "WritingFormat": "writing_format",
- "writing_format": {
- "class_name": "WritingFormat",
- "table_name": "writing_formats",
+ "OriginalPicture": "original_picture",
+ "original_picture": {
+ "class_name": "OriginalPicture",
+ "table_name": "original_pictures",
+ "associations": {
+ "belongs_to": {
+ "artist": {
+ "id_column": "artist_id"
+ }
+ },
+ "has_many": {
+ "pictures": {
+ "foreign_key": "original_picture_id",
+ "list_method": "list_by_original_picture"
+ }
+ },
+ "has_one": {
+ "resource_picture": {
+ "foreign_key": "original_picture_id",
+ "list_method": "list_by_original_picture"
+ }
+ }
+ },
"attributes": {
"id": {
"type": "number",
"number": true
}
},
- "name": {
+ "ext": {
+ "type": "text",
+ "rules": {
+ "required": true
+ }
+ },
+ "width": {
+ "type": "number",
+ "rules": {
+ "required": true,
+ "number": true
+ }
+ },
+ "height": {
+ "type": "number",
+ "rules": {
+ "required": true,
+ "number": true
+ }
+ },
+ "filesize": {
+ "type": "number",
+ "rules": {
+ "required": true,
+ "number": true
+ }
+ },
+ "artist_id": {
+ "type": "number",
+ "rules": {
+ "required": true,
+ "number": true
+ }
+ },
+ "md5": {
+ "type": "text",
+ "rules": {
+ "required": true
+ }
+ },
+ "uploaded_at": {
+ "type": "datetime"
+ },
+ "published_at": {
+ "type": "datetime"
+ },
+ "stopped_at": {
+ "type": "datetime"
+ },
+ "created_at": {
+ "type": "datetime"
+ },
+ "updated_at": {
+ "type": "datetime"
+ }
+ }
+ },
+ "Picture": "picture",
+ "picture": {
+ "class_name": "Picture",
+ "table_name": "pictures",
+ "associations": {
+ "belongs_to": {
+ "license": {
+ "id_column": "license_id"
+ },
+ "artist": {
+ "id_column": "artist_id"
+ }
+ },
+ "has_many": {},
+ "has_one": {}
+ },
+ "attributes": {
+ "id": {
+ "type": "number",
+ "primary_key": 1,
+ "rules": {
+ "number": true
+ }
+ },
+ "original_picture_id": {
+ "type": "number",
+ "rules": {
+ "required": true,
+ "number": true
+ }
+ },
+ "revision": {
+ "type": "number",
+ "rules": {
+ "required": true,
+ "number": true
+ }
+ },
+ "ext": {
+ "type": "text",
+ "rules": {
+ "required": true
+ }
+ },
+ "width": {
+ "type": "number",
+ "rules": {
+ "required": true,
+ "number": true
+ }
+ },
+ "height": {
+ "type": "number",
+ "rules": {
+ "required": true,
+ "number": true
+ }
+ },
+ "filesize": {
+ "type": "number",
+ "rules": {
+ "required": true,
+ "number": true
+ }
+ },
+ "artist_id": {
+ "type": "number",
+ "rules": {
+ "required": true,
+ "number": true
+ }
+ },
+ "license_id": {
+ "type": "number",
+ "rules": {
+ "required": true,
+ "number": true
+ }
+ },
+ "md5": {
+ "type": "text",
+ "rules": {
+ "required": true
+ }
+ },
+ "artist_name": {
"type": "text",
"rules": {
"required": true
}
},
+ "credit": {
+ "type": "text",
+ "rules": {}
+ },
+ "settings": {
+ "type": "text",
+ "rules": {}
+ },
"classname": {
"type": "text",
"rules": {
"required": true
}
},
- "caption": {
+ "created_at": {
+ "type": "datetime"
+ },
+ "updated_at": {
+ "type": "datetime"
+ }
+ }
+ },
+ "ResourcePicture": "resource_picture",
+ "resource_picture": {
+ "class_name": "ResourcePicture",
+ "table_name": "resource_pictures",
+ "associations": {
+ "belongs_to": {
+ "license": {
+ "id_column": "license_id"
+ },
+ "artist": {
+ "id_column": "artist_id"
+ }
+ },
+ "has_many": {},
+ "has_one": {}
+ },
+ "attributes": {
+ "id": {
+ "type": "number",
+ "primary_key": 1,
+ "rules": {
+ "number": true
+ }
+ },
+ "original_picture_id": {
+ "type": "number",
+ "rules": {
+ "required": true,
+ "number": true
+ }
+ },
+ "revision": {
+ "type": "number",
+ "rules": {
+ "required": true,
+ "number": true
+ }
+ },
+ "ext": {
"type": "text",
"rules": {
"required": true
}
},
- "system_picture_id": {
+ "width": {
+ "type": "number",
+ "rules": {
+ "required": true,
+ "number": true
+ }
+ },
+ "height": {
+ "type": "number",
+ "rules": {
+ "required": true,
+ "number": true
+ }
+ },
+ "filesize": {
+ "type": "number",
+ "rules": {
+ "required": true,
+ "number": true
+ }
+ },
+ "artist_id": {
+ "type": "number",
+ "rules": {
+ "required": true,
+ "number": true
+ }
+ },
+ "license_id": {
"type": "number",
"rules": {
"required": true,
"number": true
}
},
+ "md5": {
+ "type": "text",
+ "rules": {
+ "required": true
+ }
+ },
+ "artist_name": {
+ "type": "text",
+ "rules": {
+ "required": true
+ }
+ },
+ "credit": {
+ "type": "text",
+ "rules": {}
+ },
"settings": {
"type": "text",
+ "rules": {}
+ },
+ "picture_id": {
+ "type": "number",
+ "rules": {
+ "required": true,
+ "number": true
+ }
+ },
+ "classname": {
+ "type": "text",
"rules": {
"required": true
}
"type": "datetime"
}
}
+ },
+ "SpeechBalloonTemplate": "speech_balloon_template",
+ "speech_balloon_template": {
+ "class_name": "SpeechBalloonTemplate",
+ "table_name": "speech_balloon_templates",
+ "associations": {
+ "belongs_to": {
+ "system_picture": {
+ "id_column": "system_picture_id"
+ }
+ },
+ "has_many": {
+ "speech_balloons": {
+ "foreign_key": "speech_balloon_template_id",
+ "list_method": "list_by_speech_balloon_template"
+ },
+ "panels": {
+ "through": "speech_balloons",
+ "foreign_key": "speech_balloon_template_id",
+ "list_method": "list_by_speech_balloon_template"
+ }
+ },
+ "has_one": {}
+ },
+ "attributes": {
+ "id": {
+ "type": "number",
+ "primary_key": 1,
+ "rules": {
+ "number": true
+ }
+ },
+ "name": {
+ "type": "text",
+ "rules": {
+ "required": true
+ }
+ },
+ "classname": {
+ "type": "text",
+ "rules": {
+ "required": true
+ }
+ },
+ "caption": {
+ "type": "text",
+ "rules": {
+ "required": true
+ }
+ },
+ "t": {
+ "type": "number",
+ "rules": {
+ "required": true,
+ "number": true,
+ "min": 0
+ }
+ },
+ "system_picture_id": {
+ "type": "number",
+ "rules": {
+ "required": true,
+ "number": true
+ }
+ },
+ "settings": {
+ "type": "text",
+ "rules": {
+ "required": true
+ }
+ },
+ "created_at": {
+ "type": "datetime"
+ },
+ "updated_at": {
+ "type": "datetime"
+ }
+ },
+ "select": {
+ "method": "enable_list",
+ "caption": {
+ "type": "column",
+ "name": "caption"
+ }
+ }
+ },
+ "WritingFormat": "writing_format",
+ "writing_format": {
+ "class_name": "WritingFormat",
+ "table_name": "writing_formats",
+ "associations": {
+ "belongs_to": {
+ "system_picture": {
+ "id_column": "system_picture_id"
+ }
+ },
+ "has_many": {
+ "speeches": {
+ "foreign_key": "writing_format_id",
+ "list_method": "list_by_writing_format"
+ }
+ },
+ "has_one": {}
+ },
+ "attributes": {
+ "id": {
+ "type": "number",
+ "primary_key": 1,
+ "rules": {
+ "number": true
+ }
+ },
+ "name": {
+ "type": "text",
+ "rules": {
+ "required": true
+ }
+ },
+ "classname": {
+ "type": "text",
+ "rules": {
+ "required": true
+ }
+ },
+ "caption": {
+ "type": "text",
+ "rules": {
+ "required": true
+ }
+ },
+ "system_picture_id": {
+ "type": "number",
+ "rules": {
+ "required": true,
+ "number": true
+ }
+ },
+ "settings": {
+ "type": "text",
+ "rules": {
+ "required": true
+ }
+ },
+ "created_at": {
+ "type": "datetime"
+ },
+ "updated_at": {
+ "type": "datetime"
+ }
+ },
+ "select": {
+ "method": "enable_list",
+ "caption": {
+ "type": "column",
+ "name": "caption"
+ }
+ }
+ },
+ "LicenseGroup": "license_group",
+ "license_group": {
+ "class_name": "LicenseGroup",
+ "table_name": "license_groups",
+ "associations": {
+ "belongs_to": {},
+ "has_many": {
+ "licenses": {
+ "foreign_key": "license_group_id",
+ "list_method": "list_by_license_group"
+ }
+ },
+ "has_one": {}
+ },
+ "attributes": {
+ "id": {
+ "type": "number",
+ "primary_key": 1,
+ "rules": {
+ "number": true
+ }
+ },
+ "name": {
+ "type": "text",
+ "rules": {
+ "required": true
+ }
+ },
+ "classname": {
+ "type": "text",
+ "rules": {
+ "required": true
+ }
+ },
+ "caption": {
+ "type": "text",
+ "rules": {
+ "required": true
+ }
+ },
+ "url": {
+ "type": "text",
+ "rules": {
+ "required": true
+ }
+ },
+ "created_at": {
+ "type": "datetime"
+ },
+ "updated_at": {
+ "type": "datetime"
+ }
+ },
+ "select": {
+ "method": "list",
+ "caption": {
+ "type": "column",
+ "name": "caption"
+ }
+ }
+ },
+ "License": "license",
+ "license": {
+ "class_name": "License",
+ "table_name": "licenses",
+ "associations": {
+ "belongs_to": {
+ "license_group": {
+ "id_column": "license_group_id"
+ },
+ "system_picture": {
+ "id_column": "system_picture_id"
+ }
+ },
+ "has_many": {
+ "resource_pictures": {
+ "foreign_key": "license_id",
+ "list_method": "list_by_license"
+ }
+ },
+ "has_one": {}
+ },
+ "attributes": {
+ "id": {
+ "type": "number",
+ "primary_key": 1,
+ "rules": {
+ "number": true
+ }
+ },
+ "license_group_id": {
+ "type": "number",
+ "rules": {
+ "number": true
+ }
+ },
+ "name": {
+ "type": "text",
+ "rules": {
+ "required": true
+ }
+ },
+ "caption": {
+ "type": "text",
+ "rules": {
+ "required": true
+ }
+ },
+ "system_picture_id": {
+ "type": "number",
+ "rules": {
+ "required": true,
+ "number": true
+ }
+ },
+ "url": {
+ "type": "text",
+ "rules": {
+ "required": true
+ }
+ },
+ "settings": {
+ "type": "text",
+ "rules": {}
+ },
+ "credit_pictures": {
+ "type": "text",
+ "rules": {}
+ },
+ "created_at": {
+ "type": "datetime"
+ },
+ "updated_at": {
+ "type": "datetime"
+ }
+ }
+ },
+ "Author": "author",
+ "author": {
+ "class_name": "Author",
+ "table_name": "authors",
+ "associations": {
+ "belongs_to": {},
+ "has_many": {
+ "scrolls": {
+ "foreign_key": "author_id",
+ "list_method": "list_by_author"
+ },
+ "comics": {
+ "foreign_key": "author_id",
+ "list_method": "list_by_author"
+ },
+ "stories": {
+ "foreign_key": "author_id",
+ "list_method": "list_by_author"
+ },
+ "sheets": {
+ "foreign_key": "author_id",
+ "list_method": "list_by_author"
+ },
+ "panels": {
+ "foreign_key": "author_id",
+ "list_method": "list_by_author"
+ }
+ },
+ "has_one": {}
+ },
+ "attributes": {
+ "id": {
+ "type": "number",
+ "primary_key": 1,
+ "rules": {
+ "number": true
+ }
+ },
+ "name": {
+ "type": "text",
+ "rules": {
+ "required": true
+ }
+ },
+ "user_id": {
+ "type": "number",
+ "rules": {
+ "required": true,
+ "number": true
+ }
+ },
+ "created_at": {
+ "type": "datetime"
+ },
+ "updated_at": {
+ "type": "datetime"
+ }
+ },
+ "select": {
+ "method": "list",
+ "caption": {
+ "type": "column",
+ "name": "name"
+ }
+ }
+ },
+ "Artist": "artist",
+ "artist": {
+ "class_name": "Artist",
+ "table_name": "artists",
+ "associations": {
+ "belongs_to": {},
+ "has_many": {
+ "resource_pictures": {
+ "foreign_key": "artist_id",
+ "list_method": "list_by_artist"
+ }
+ },
+ "has_one": {}
+ },
+ "attributes": {
+ "id": {
+ "type": "number",
+ "primary_key": 1,
+ "rules": {
+ "number": true
+ }
+ },
+ "name": {
+ "type": "text",
+ "rules": {
+ "required": true
+ }
+ },
+ "author_id": {
+ "type": "number",
+ "rules": {
+ "required": true,
+ "number": true
+ }
+ },
+ "created_at": {
+ "type": "datetime"
+ },
+ "updated_at": {
+ "type": "datetime"
+ }
+ },
+ "select": {
+ "method": "list",
+ "caption": {
+ "type": "column",
+ "name": "name"
+ }
+ }
+ },
+ "SystemPicture": "system_picture",
+ "system_picture": {
+ "class_name": "SystemPicture",
+ "table_name": "system_pictures",
+ "associations": {
+ "belongs_to": {},
+ "has_many": {},
+ "has_one": {}
+ },
+ "attributes": {
+ "id": {
+ "type": "number",
+ "primary_key": 1,
+ "rules": {
+ "number": true
+ }
+ },
+ "ext": {
+ "type": "text",
+ "rules": {
+ "required": true
+ }
+ },
+ "width": {
+ "type": "number",
+ "rules": {
+ "required": true,
+ "number": true
+ }
+ },
+ "height": {
+ "type": "number",
+ "rules": {
+ "required": true,
+ "number": true
+ }
+ },
+ "filesize": {
+ "type": "number",
+ "rules": {
+ "required": true,
+ "number": true
+ }
+ },
+ "md5": {
+ "type": "text",
+ "rules": {
+ "required": true
+ }
+ },
+ "created_at": {
+ "type": "datetime"
+ },
+ "updated_at": {
+ "type": "datetime"
+ }
+ }
+ }
+ },
+ "profiles": {
+ "scroll": {
+ "fields": [
+ "id",
+ "title",
+ "description",
+ "visible",
+ "author_id",
+ "created_at",
+ "updated_at"
+ ],
+ "associations": {
+ "belongs_to": [
+ "author"
+ ],
+ "has_many": [
+ "scroll_panels",
+ "panels"
+ ]
+ }
+ },
+ "scroll_panel": {
+ "fields": [
+ "id",
+ "scroll_id",
+ "panel_id",
+ "t",
+ "author_id",
+ "created_at",
+ "updated_at"
+ ],
+ "associations": {
+ "belongs_to": [
+ "scroll",
+ "panel"
+ ],
+ "has_many": []
+ }
+ },
+ "comic": {
+ "fields": [
+ "id",
+ "title",
+ "description",
+ "visible",
+ "author_id",
+ "created_at",
+ "updated_at"
+ ],
+ "associations": {
+ "belongs_to": [
+ "author"
+ ],
+ "has_many": [
+ "stories"
+ ]
+ }
+ },
+ "story": {
+ "fields": [
+ "id",
+ "comic_id",
+ "title",
+ "description",
+ "t",
+ "visible",
+ "created_at",
+ "updated_at"
+ ],
+ "associations": {
+ "belongs_to": [
+ "comic"
+ ],
+ "has_many": [
+ "story_sheets",
+ "sheets"
+ ]
+ }
+ },
+ "story_sheet": {
+ "fields": [
+ "id",
+ "story_id",
+ "sheet_id",
+ "t",
+ "author_id",
+ "created_at",
+ "updated_at"
+ ],
+ "associations": {
+ "belongs_to": [
+ "story",
+ "sheet"
+ ],
+ "has_many": []
+ }
+ },
+ "sheet": {
+ "fields": [
+ "id",
+ "caption",
+ "width",
+ "height",
+ "visible",
+ "author_id",
+ "created_at",
+ "updated_at"
+ ],
+ "associations": {
+ "belongs_to": [
+ "author"
+ ],
+ "has_many": [
+ "story_sheets",
+ "stories",
+ "sheet_panels",
+ "panels"
+ ]
+ }
+ },
+ "sheet_panel": {
+ "fields": [
+ "id",
+ "sheet_id",
+ "panel_id",
+ "x",
+ "y",
+ "z",
+ "t",
+ "author_id",
+ "created_at",
+ "updated_at"
+ ],
+ "associations": {
+ "belongs_to": [
+ "sheet",
+ "panel"
+ ],
+ "has_many": []
+ }
+ },
+ "panel": {
+ "fields": [
+ "id",
+ "width",
+ "height",
+ "border",
+ "caption",
+ "publish",
+ "author_id",
+ "created_at",
+ "updated_at"
+ ],
+ "associations": {
+ "belongs_to": [
+ "author"
+ ],
+ "has_many": [
+ "scroll_panels",
+ "scrolls",
+ "sheet_panels",
+ "sheets",
+ "panel_pictures",
+ "speech_balloons",
+ "ground_pictures",
+ "ground_colors"
+ ]
+ }
+ },
+ "panel_picture": {
+ "fields": [
+ "id",
+ "panel_id",
+ "picture_id",
+ "caption",
+ "x",
+ "y",
+ "width",
+ "height",
+ "link",
+ "z",
+ "t",
+ "created_at",
+ "updated_at"
+ ],
+ "associations": {
+ "belongs_to": [
+ "panel"
+ ],
+ "has_many": []
+ }
+ },
+ "speech_balloon": {
+ "fields": [
+ "id",
+ "panel_id",
+ "speech_balloon_template_id",
+ "classname",
+ "z",
+ "t",
+ "settings",
+ "caption",
+ "created_at",
+ "updated_at"
+ ],
+ "associations": {
+ "belongs_to": [
+ "panel"
+ ],
+ "has_many": [],
+ "has_one": [
+ "balloon",
+ "speech"
+ ]
+ }
+ },
+ "speech": {
+ "fields": [
+ "id",
+ "speech_balloon_id",
+ "writing_format_id",
+ "content",
+ "font_size",
+ "text_align",
+ "fore_color",
+ "x",
+ "y",
+ "width",
+ "height",
+ "quotes",
+ "settings",
+ "created_at",
+ "updated_at"
+ ],
+ "associations": {
+ "belongs_to": [
+ "speech_balloon",
+ "writing_format"
+ ],
+ "has_many": []
+ }
+ },
+ "balloon": {
+ "fields": [
+ "id",
+ "speech_balloon_id",
+ "system_picture_id",
+ "x",
+ "y",
+ "width",
+ "height",
+ "r",
+ "settings",
+ "created_at",
+ "updated_at"
+ ],
+ "associations": {
+ "belongs_to": [
+ "speech_balloon",
+ "system_picture"
+ ],
+ "has_many": []
+ }
+ },
+ "ground_picture": {
+ "fields": [
+ "id",
+ "panel_id",
+ "picture_id",
+ "caption",
+ "repeat",
+ "x",
+ "y",
+ "z",
+ "t",
+ "created_at",
+ "updated_at"
+ ],
+ "associations": {
+ "belongs_to": [
+ "panel"
+ ],
+ "has_many": []
+ }
+ },
+ "ground_color": {
+ "fields": [
+ "id",
+ "panel_id",
+ "caption",
+ "code",
+ "orientation",
+ "xy",
+ "wh",
+ "z",
+ "t",
+ "created_at",
+ "updated_at"
+ ],
+ "associations": {
+ "belongs_to": [
+ "panel"
+ ],
+ "has_many": []
+ }
+ },
+ "original_picture": {
+ "fields": [
+ "id",
+ "ext",
+ "width",
+ "height",
+ "filesize",
+ "artist_id",
+ "md5",
+ "uploaded_at",
+ "published_at",
+ "stopped_at",
+ "created_at",
+ "updated_at"
+ ],
+ "associations": {
+ "belongs_to": [
+ "artist"
+ ],
+ "has_many": [
+ "pictures"
+ ],
+ "has_one": [
+ "resource_picture"
+ ]
+ }
+ },
+ "picture": {
+ "fields": [
+ "id",
+ "original_picture_id",
+ "revision",
+ "ext",
+ "width",
+ "height",
+ "filesize",
+ "artist_id",
+ "license_id",
+ "md5",
+ "artist_name",
+ "credit",
+ "settings",
+ "classname",
+ "created_at",
+ "updated_at"
+ ],
+ "associations": {
+ "belongs_to": [
+ "license",
+ "artist"
+ ],
+ "has_many": [],
+ "has_one": []
+ }
+ },
+ "resource_picture": {
+ "fields": [
+ "id",
+ "original_picture_id",
+ "revision",
+ "ext",
+ "width",
+ "height",
+ "filesize",
+ "artist_id",
+ "license_id",
+ "md5",
+ "artist_name",
+ "credit",
+ "settings",
+ "picture_id",
+ "classname",
+ "created_at",
+ "updated_at"
+ ],
+ "associations": {
+ "belongs_to": [
+ "license",
+ "artist"
+ ],
+ "has_many": [],
+ "has_one": []
+ }
+ },
+ "speech_balloon_template": {
+ "fields": [
+ "id",
+ "name",
+ "classname",
+ "caption",
+ "t",
+ "system_picture_id",
+ "settings",
+ "created_at",
+ "updated_at"
+ ],
+ "associations": {
+ "belongs_to": [
+ "system_picture"
+ ],
+ "has_many": [
+ "speech_balloons",
+ "panels"
+ ],
+ "has_one": []
+ }
+ },
+ "writing_format": {
+ "fields": [
+ "id",
+ "name",
+ "classname",
+ "caption",
+ "system_picture_id",
+ "settings",
+ "created_at",
+ "updated_at"
+ ],
+ "associations": {
+ "belongs_to": [
+ "system_picture"
+ ],
+ "has_many": [
+ "speeches"
+ ],
+ "has_one": []
+ }
+ },
+ "license_group": {
+ "fields": [
+ "id",
+ "name",
+ "classname",
+ "caption",
+ "url",
+ "created_at",
+ "updated_at"
+ ],
+ "associations": {
+ "belongs_to": [],
+ "has_many": [
+ "licenses"
+ ],
+ "has_one": []
+ }
+ },
+ "license": {
+ "fields": [
+ "id",
+ "license_group_id",
+ "name",
+ "caption",
+ "system_picture_id",
+ "url",
+ "settings",
+ "credit_pictures",
+ "created_at",
+ "updated_at"
+ ],
+ "associations": {
+ "belongs_to": [
+ "license_group",
+ "system_picture"
+ ],
+ "has_many": [
+ "resource_pictures"
+ ],
+ "has_one": []
+ }
+ },
+ "author": {
+ "fields": [
+ "id",
+ "name",
+ "user_id",
+ "created_at",
+ "updated_at"
+ ],
+ "associations": {
+ "belongs_to": [],
+ "has_many": [
+ "scrolls",
+ "comics",
+ "stories",
+ "sheets",
+ "panels"
+ ],
+ "has_one": []
+ }
+ },
+ "artist": {
+ "fields": [
+ "id",
+ "name",
+ "author_id",
+ "created_at",
+ "updated_at"
+ ],
+ "associations": {
+ "belongs_to": [],
+ "has_many": [
+ "resource_pictures"
+ ],
+ "has_one": []
+ }
+ },
+ "system_picture": {
+ "fields": [
+ "id",
+ "ext",
+ "width",
+ "height",
+ "filesize",
+ "md5",
+ "created_at",
+ "updated_at"
+ ],
+ "associations": {
+ "belongs_to": [],
+ "has_many": [],
+ "has_one": []
+ }
+ }
+ },
+ "filers": {
+ "scroll": {
+ "symbol": {
+ "type": "image",
+ "name": "/assets/item.png"
+ },
+ "caption": {
+ "type": "column",
+ "name": "title",
+ "link": {
+ "type": "action",
+ "name": "play"
+ }
+ },
+ "summary": {
+ "type": "template",
+ "name": "summary"
+ },
+ "edit": {
+ "type": "default"
+ }
+ },
+ "scroll_panel": {
+ "symbol": {
+ "type": "image",
+ "name": "/assets/item.png",
+ "link": {
+ "type": "none"
+ }
+ },
+ "caption": {
+ "type": "none"
+ },
+ "summary": {
+ "type": "template",
+ "name": "summary"
+ },
+ "edit": {
+ "type": "none"
+ }
+ },
+ "comic": {
+ "symbol": {
+ "type": "image",
+ "name": "/assets/item.png"
+ },
+ "caption": {
+ "type": "column",
+ "name": "title"
+ },
+ "summary": {
+ "type": "template",
+ "name": "summary"
+ },
+ "edit": {
+ "type": "default"
+ }
+ },
+ "story": {
+ "symbol": {
+ "type": "image",
+ "name": "/assets/item.png"
+ },
+ "caption": {
+ "type": "method",
+ "name": "title_with_t",
+ "link": {
+ "type": "action",
+ "name": "play"
+ }
+ },
+ "summary": {
+ "type": "template",
+ "name": "summary"
+ },
+ "edit": {
+ "type": "default"
+ }
+ },
+ "story_sheet": {
+ "symbol": {
+ "type": "image",
+ "name": "/assets/item.png",
+ "link": {
+ "type": "none"
+ }
+ },
+ "caption": {
+ "type": "none"
+ },
+ "summary": {
+ "type": "template",
+ "name": "summary"
+ },
+ "edit": {
+ "type": "none"
+ }
+ },
+ "sheet": {
+ "symbol": {
+ "type": "image",
+ "name": "/assets/item.png"
+ },
+ "caption": {
+ "type": "column",
+ "name": "caption",
+ "link": {
+ "type": "action",
+ "name": "play"
+ }
+ },
+ "summary": {
+ "type": "template",
+ "name": "summary"
+ },
+ "edit": {
+ "type": "default"
+ }
+ },
+ "sheet_panel": {
+ "symbol": {
+ "type": "image",
+ "name": "/assets/item.png",
+ "link": {
+ "type": "none"
+ }
+ },
+ "caption": {
+ "type": "none"
+ },
+ "summary": {
+ "type": "template",
+ "name": "summary"
+ },
+ "edit": {
+ "type": "none"
+ }
+ },
+ "panel": {
+ "symbol": {
+ "type": "image",
+ "name": "/assets/item.png"
+ },
+ "caption": {
+ "type": "method",
+ "name": "plain_scenario",
+ "link": {
+ "type": "none"
+ }
+ },
+ "summary": {
+ "type": "template",
+ "name": "summary"
+ },
+ "edit": {
+ "type": "default"
+ }
+ },
+ "panel_picture": {
+ "symbol": {
+ "type": "picture",
+ "name": "symbol_option"
+ },
+ "caption": {
+ "type": "column",
+ "name": "caption"
+ },
+ "summary": {
+ "type": "template",
+ "name": "summary"
+ },
+ "edit": {
+ "type": "none"
+ }
+ },
+ "speech_balloon": {
+ "symbol": {
+ "type": "picture",
+ "name": "symbol_option"
+ },
+ "caption": {
+ "type": "method",
+ "name": "plain_scenario",
+ "link": {
+ "type": "none"
+ }
+ },
+ "summary": {
+ "type": "template",
+ "name": "summary"
+ },
+ "edit": {
+ "type": "none"
+ }
+ },
+ "speech": {
+ "symbol": {
+ "type": "picture",
+ "name": "symbol_option"
+ },
+ "caption": {
+ "type": "column",
+ "name": "content",
+ "link": {
+ "type": "none"
+ }
+ },
+ "summary": {
+ "type": "template",
+ "name": "summary"
+ },
+ "edit": {
+ "type": "none"
+ }
+ },
+ "balloon": {
+ "symbol": {
+ "type": "picture",
+ "name": "symbol_option"
+ },
+ "caption": {
+ "type": "none"
+ },
+ "summary": {
+ "type": "template",
+ "name": "summary"
+ },
+ "edit": {
+ "type": "none"
+ }
+ },
+ "ground_picture": {
+ "symbol": {
+ "type": "picture",
+ "name": "symbol_option"
+ },
+ "caption": {
+ "type": "column",
+ "name": "caption"
+ },
+ "summary": {
+ "type": "template",
+ "name": "summary"
+ },
+ "edit": {
+ "type": "none"
+ }
+ },
+ "ground_color": {
+ "symbol": {
+ "type": "template",
+ "name": "symbol"
+ },
+ "caption": {
+ "type": "column",
+ "name": "caption"
+ },
+ "summary": {
+ "type": "template",
+ "name": "summary"
+ },
+ "edit": {
+ "type": "none"
+ }
+ },
+ "original_picture": {
+ "symbol": {
+ "type": "picture",
+ "name": "symbol_option"
+ },
+ "caption": {
+ "type": "method",
+ "name": "revision",
+ "link": {
+ "type": "action",
+ "name": "history"
+ }
+ },
+ "summary": {
+ "type": "template",
+ "name": "summary"
+ },
+ "edit": {
+ "type": "template",
+ "name": "publish"
+ }
+ },
+ "picture": {
+ "symbol": {
+ "type": "picture",
+ "name": "symbol_option"
+ },
+ "caption": {
+ "type": "column",
+ "name": "revision"
+ },
+ "summary": {
+ "type": "template",
+ "name": "summary"
+ },
+ "edit": {
+ "type": "none"
+ }
+ },
+ "resource_picture": {
+ "symbol": {
+ "type": "picture",
+ "name": "symbol_option"
+ },
+ "caption": {
+ "type": "none"
+ },
+ "summary": {
+ "type": "template",
+ "name": "summary"
+ },
+ "edit": {
+ "type": "none"
+ }
+ },
+ "speech_balloon_template": {
+ "symbol": {
+ "type": "picture",
+ "name": "symbol_option"
+ },
+ "caption": {
+ "type": "column",
+ "name": "caption"
+ },
+ "summary": {
+ "type": "none"
+ },
+ "edit": {
+ "type": "none"
+ }
+ },
+ "writing_format": {
+ "symbol": {
+ "type": "image",
+ "name": "/assets/item.png"
+ },
+ "caption": {
+ "type": "column",
+ "name": "caption"
+ },
+ "summary": {
+ "type": "none"
+ },
+ "edit": {
+ "type": "none"
+ }
+ },
+ "license_group": {
+ "symbol": {
+ "type": "image",
+ "name": "/assets/item.png"
+ },
+ "caption": {
+ "type": "column",
+ "name": "caption",
+ "link": {
+ "type": "url_column",
+ "name": "url"
+ }
+ },
+ "summary": {
+ "type": "none"
+ },
+ "edit": {
+ "type": "none"
+ }
+ },
+ "license": {
+ "symbol": {
+ "type": "image",
+ "name": "/assets/item.png"
+ },
+ "caption": {
+ "type": "method",
+ "name": "caption_with_group",
+ "link": {
+ "type": "url_column",
+ "name": "url"
+ }
+ },
+ "summary": {
+ "type": "template",
+ "name": "summary"
+ },
+ "edit": {
+ "type": "none"
+ }
+ },
+ "author": {
+ "symbol": {
+ "type": "image",
+ "name": "/assets/item.png"
+ },
+ "caption": {
+ "type": "column",
+ "name": "name"
+ },
+ "summary": {
+ "type": "template",
+ "name": "summary"
+ },
+ "edit": {
+ "type": "account"
+ }
+ },
+ "artist": {
+ "symbol": {
+ "type": "image",
+ "name": "/assets/item.png"
+ },
+ "caption": {
+ "type": "column",
+ "name": "name"
+ },
+ "summary": {
+ "type": "template",
+ "name": "summary"
+ },
+ "edit": {
+ "type": "account"
+ }
+ },
+ "system_picture": {
+ "symbol": {
+ "type": "picture",
+ "name": "symbol_option"
+ },
+ "caption": {
+ "type": "none"
+ },
+ "summary": {
+ "type": "none"
+ },
+ "edit": {
+ "type": "none"
+ }
}
},
"elements": [
end
def self.list_opt
- {:author => {} }
+ {:user => {:author => {}} }
end
def self.list_json_opt
- {:include => {:author => {}} }
+ {:include => {:user => {:author => {}}} }
end
def self.show_opt
- {:include => {:author => {}} }
+ {:include => {:user => {:author => {}}} }
end
def self.show_json_opt
- {:include => {:author => {}} }
+ {:include => {:user => {:author => {}}} }
end
def self.export(dt = nil)
end
def self.list_opt
- {:artist => {} }
+ {:user => {:artist => {}} }
end
def self.list_json_opt
- {:include => {:artist => {}} }
+ {:include => {:user => {:artist => {}}} }
end
def self.show_opt
- {:include => {:artist => {}} }
+ {:include => {:user => {:artist => {}}} }
end
def self.show_json_opt
- {:include => {:artist => {}} }
+ {:include => {:user => {:artist => {}}} }
end
def self.default_scroll_page_size
Kaminari.paginate_array(Array.new(Balloon.where(self.list_where()).includes(Balloon.list_opt).count, nil)).page(page).per(page_size)
end
+ def self.list_by_speech_balloon_where speech_balloon_id
+ ['balloons.speech_balloon_id = ?', speech_balloon_id]
+ end
+
+ def self.list_by_speech_balloon speech_balloon_id, roles, page = 1, page_size = self.default_page_size
+ self.where(self.list_by_speech_balloon_where(speech_balloon_id)).includes(self.list_opt).order('balloons.updated_at desc').offset((page -1) * page_size).limit(page_size)
+ end
+
def self.list_opt
{:speech_balloon => {:panel => {:author => {}}, :speech => {}, :speech_balloon_template => {} }}
end
'comics.updated_at desc'
end
+ def self.list_by_author_where author_id
+ ['comics.author_id = ?', author_id]
+ end
+
+ def self.list_by_author author_id, roles, page = 1, page_size = self.default_page_size
+ self.where(self.list_by_author_where(author_id)).includes(self.list_opt).order('comics.updated_at desc').offset((page -1) * page_size).limit(page_size)
+ end
+
def self.list_opt
{:stories => {}, :author => {} }
end
Kaminari.paginate_array(Array.new(GroundColor.where(self.himlist_where(au)).includes(GroundColor.list_opt).count, nil)).page(page).per(page_size)
end
+ def self.list_by_panel_where panel_id
+ ['ground_colors.panel_id = ?', panel_id]
+ end
+
+ def self.list_by_panel panel_id, roles, page = 1, page_size = self.default_page_size
+ self.where(self.list_by_panel_where(panel_id)).includes(self.list_opt).order('ground_colors.updated_at desc').offset((page -1) * page_size).limit(page_size)
+ end
+
def self.list_opt
{:panel => {:author => {}} }
end
Kaminari.paginate_array(Array.new(GroundPicture.where(self.himlist_where(au)).includes(GroundPicture.list_opt).count, nil)).page(page).per(page_size)
end
+ def self.list_by_panel_where panel_id
+ ['ground_pictures.panel_id = ?', panel_id]
+ end
+
+ def self.list_by_panel panel_id, roles, page = 1, page_size = self.default_page_size
+ self.where(self.list_by_panel_where(panel_id)).includes(self.list_opt).order('ground_pictures.updated_at desc').offset((page -1) * page_size).limit(page_size)
+ end
+
def self.list_opt
{:panel => {:author => {}}, :picture => {:artist => {}, :license => {}} }
end
class License < ActiveRecord::Base
belongs_to :license_group
belongs_to :system_picture
+ has_many :resource_pictures
validates :license_group_id, :presence => true, :numericality => true, :existence => {:both => false}
validates :name, :presence => true, :length => {:maximum => 50}
self.license_group.caption + '/' + self.caption
end
+ def self.list_where
+ ''
+ end
+
def self.list
- opt = {}
- opt.merge!(License.list_opt)
- opt.merge!({:order => 'name'})
- License.find(:all, opt)
+ self.where(self.list_where()).includes(self.list_opt).order('licenses.name')
+ end
+
+ def self.list_by_license_group_where license_group_id
+ ['licenses.license_group_id = ?', license_group_id]
+ end
+
+ def self.list_by_license_group license_group_id, roles, page = 1, page_size = self.default_page_size
+ self.where(self.list_by_license_group_where(license_group_id)).includes(self.list_opt).order('licenses.updated_at desc').offset((page -1) * page_size).limit(page_size)
end
def self.list_opt
- {:include => {:license_group => {}}}
+ {:license_group => {}}
end
def self.list_json_opt
{:include => {:license_group => {}}}
end
- def self.show rid
+ def self.show rid, roles = nil
opt = {}
opt.merge!(License.show_opt)
res = License.find(rid, opt)
{:include => {:licenses => {}}}
end
- def self.show rid
+ def self.show rid, roles = nil
opt = {}
opt.merge!(self.show_opt)
res = LicenseGroup.find(rid, opt)
#コマ
class Panel < ActiveRecord::Base
belongs_to :author
- belongs_to :resource_picture
has_many :scroll_panels
+ has_many :sheet_panels
has_many :panel_pictures, :dependent => :destroy
has_many :speech_balloons, :dependent => :destroy
has_many :ground_pictures, :dependent => :destroy
Kaminari.paginate_array(Array.new(Panel.where(self.himlist_where(au)).count, nil)).page(page).per(page_size)
end
+ def self.list_by_scroll scroll_id, roles, page = 1, page_size = self.default_page_size
+ self.where(ScrollPanel.list_by_scroll_where(scroll_id)).includes(
+ {:scroll_panels => {}}
+ ).order('scroll_panels.updated_at desc').offset((page -1) * page_size).limit(page_size)
+ end
+
+ def self.list_by_sheet sheet_id, roles, page = 1, page_size = self.default_page_size
+ self.where(SheetPanel.list_by_sheet_where(sheet_id)).includes(
+ {:sheet_panels => {}}
+ ).order('sheet_panels.updated_at desc').offset((page -1) * page_size).limit(page_size)
+ end
+
+ def self.list_by_speech_balloon_template speech_balloon_template_id, roles, page = 1, page_size = self.default_page_size
+ self.where(SpeechBalloon.list_by_speech_balloon_template_where(speech_balloon_template_id)).includes(
+ {:speech_balloons => {}}
+ ).order('speech_balloons.updated_at desc').offset((page -1) * page_size).limit(page_size)
+ end
+
+ def self.list_by_author_where author_id
+ ['panels.author_id = ?', author_id]
+ end
+
+ def self.list_by_author author_id, roles, page = 1, page_size = self.default_page_size
+ self.where(self.list_by_author_where(author_id)).includes(self.list_opt).order('panels.updated_at desc').offset((page -1) * page_size).limit(page_size)
+ end
+
def self.list_opt
r = {
:author => {}
Kaminari.paginate_array(Array.new(PanelPicture.where(self.himlist_where(au)).includes(PanelPicture.list_opt).count, nil)).page(page).per(page_size)
end
+ def self.list_by_panel_where panel_id
+ ['panel_pictures.panel_id = ?', panel_id]
+ end
+
+ def self.list_by_panel panel_id, roles, page = 1, page_size = self.default_page_size
+ self.where(self.list_by_panel_where(panel_id)).includes(self.list_opt).order('panel_pictures.updated_at desc').offset((page -1) * page_size).limit(page_size)
+ end
+
def self.list_opt
{:panel => {:author => {}}, :picture => {:artist => {}, :license => {}} }
end
Picture.list_by_md5(md5, opid).empty? ? false : true
end
+ def self.list_by_original_picture_where original_picture_id
+ ['pictures.original_picture_id = ?', original_picture_id]
+ end
+
+ def self.list_by_original_picture original_picture_id, roles, page = 1, page_size = self.default_page_size
+ self.where(self.list_by_original_picture_where(original_picture_id)).includes(self.list_opt).order('pictures.revision desc').offset((page -1) * page_size).limit(page_size)
+ end
+
+ def self.list_opt
+ {:license => {}, :artist => {}}
+ end
+
+ def self.list_json_opt
+ {:include => {:license => {}, :artist => {}} }
+ end
+
def self.show rid, roles
opt = {}
r = Picture.find(rid, opt)
belongs_to :artist
belongs_to :license
belongs_to :picture
- has_many :panel_pictures
belongs_to :original_picture
validates :ext, :presence => true, :length => {:maximum => 4}, :inclusion => {:in => ['png', 'jpeg', 'gif']}
Kaminari.paginate_array(Array.new(ResourcePicture.where(self.himlist_where(ar)).count, nil)).page(page).per(page_size)
end
+ def self.list_by_original_picture_where original_picture_id
+ ['resource_pictures.original_picture_id = ?', original_picture_id]
+ end
+
+ def self.list_by_original_picture original_picture_id, roles, page = 1, page_size = self.default_page_size
+ self.where(self.list_by_original_picture_where(original_picture_id)).includes(self.list_opt).order('resource_pictures.updated_at desc').offset((page -1) * page_size).limit(page_size)
+ end
+
+ def self.list_by_license_where license_id
+ ['resource_pictures.license_id = ?', license_id]
+ end
+
+ def self.list_by_license license_id, roles, page = 1, page_size = self.default_page_size
+ self.where(self.list_by_license_where(license_id)).includes(self.list_opt).order('resource_pictures.updated_at desc').offset((page -1) * page_size).limit(page_size)
+ end
+
+ def self.list_by_artist_where artist_id
+ ['resource_pictures.artist_id = ?', artist_id]
+ end
+
+ def self.list_by_artist artist_id, roles, page = 1, page_size = self.default_page_size
+ self.where(self.list_by_artist_where(artist_id)).includes(self.list_opt).order('resource_pictures.updated_at desc').offset((page -1) * page_size).limit(page_size)
+ end
+
def self.list_opt
{:license => {}, :artist => {}, :picture => {} }
end
Kaminari.paginate_array(Array.new(Scroll.where(self.himlist_where(au)).count, nil)).page(page).per(page_size)
end
+ def self.list_by_panel panel_id, roles, page = 1, page_size = self.default_page_size
+ self.where(ScrollPanel.list_by_panel_where(panel_id)).includes(
+ {:scroll_panels => {}}
+ ).order('scroll_panels.updated_at desc').offset((page -1) * page_size).limit(page_size)
+ end
+
+ def self.list_by_author_where author_id
+ ['scrolls.author_id = ?', author_id]
+ end
+
+ def self.list_by_author author_id, roles, page = 1, page_size = self.default_page_size
+ self.where(self.list_by_author_where(author_id)).includes(self.list_opt).order('scrolls.updated_at desc').offset((page -1) * page_size).limit(page_size)
+ end
+
def self.list_opt
{:scroll_panels => {:panel => {}}, :author => {} }
end
Kaminari.paginate_array(Array.new(ScrollPanel.where(self.himlist_where(au)).includes(ScrollPanel.list_opt).count, nil)).page(page).per(page_size)
end
+ def self.list_by_scroll_where scroll_id
+ ['scroll_panels.scroll_id = ?', scroll_id]
+ end
+
+ def self.list_by_scroll scroll_id, roles, page = 1, page_size = self.default_page_size
+ self.where(self.list_by_scroll_where(scroll_id)).includes(self.list_opt).order('scroll_panels.updated_at desc').offset((page -1) * page_size).limit(page_size)
+ end
+
+ def self.list_by_panel_where panel_id
+ ['scroll_panels.panel_id = ?', panel_id]
+ end
+
+ def self.list_by_panel panel_id, roles, page = 1, page_size = self.default_page_size
+ self.where(self.list_by_panel_where(panel_id)).includes(self.list_opt).order('scroll_panels.updated_at desc').offset((page -1) * page_size).limit(page_size)
+ end
+
def self.list_opt
{
:author => {},
Kaminari.paginate_array(Array.new(Sheet.where(self.himlist_where(au)).count, nil)).page(page).per(page_size)
end
+ def self.list_by_story story_id, roles, page = 1, page_size = self.default_page_size
+ self.where(StorySheet.list_by_story_where(story_id)).includes(
+ {:story_sheets => {}}
+ ).order('story_sheets.updated_at desc').offset((page -1) * page_size).limit(page_size)
+ end
+
+ def self.list_by_panel panel_id, roles, page = 1, page_size = self.default_page_size
+ self.where(SheetPanel.list_by_panel_where(panel_id)).includes(
+ {:sheet_panels => {}}
+ ).order('sheet_panels.updated_at desc').offset((page -1) * page_size).limit(page_size)
+ end
+
+ def self.list_by_author_where author_id
+ ['sheets.author_id = ?', author_id]
+ end
+
+ def self.list_by_author author_id, roles, page = 1, page_size = self.default_page_size
+ self.where(self.list_by_author_where(author_id)).includes(self.list_opt).order('sheets.updated_at desc').offset((page -1) * page_size).limit(page_size)
+ end
+
def self.list_opt
{:sheet_panels => {:panel => {}}, :author => {} }
end
Kaminari.paginate_array(Array.new(SheetPanel.where(self.himlist_where(au)).includes(SheetPanel.list_opt).count, nil)).page(page).per(page_size)
end
+ def self.list_by_sheet_where sheet_id
+ ['sheet_panels.sheet_id = ?', sheet_id]
+ end
+
+ def self.list_by_sheet sheet_id, roles, page = 1, page_size = self.default_page_size
+ self.where(self.list_by_sheet_where(sheet_id)).includes(self.list_opt).order('sheet_panels.updated_at desc').offset((page -1) * page_size).limit(page_size)
+ end
+
+ def self.list_by_panel_where panel_id
+ ['sheet_panels.panel_id = ?', panel_id]
+ end
+
+ def self.list_by_panel panel_id, roles, page = 1, page_size = self.default_page_size
+ self.where(self.list_by_panel_where(panel_id)).includes(self.list_opt).order('sheet_panels.updated_at desc').offset((page -1) * page_size).limit(page_size)
+ end
+
def self.list_opt
{
:author => {},
Kaminari.paginate_array(Array.new(Speech.where(self.list_where()).includes(Speech.list_opt).count, nil)).page(page).per(page_size)
end
+ def self.list_by_speech_balloon_where speech_balloon_id
+ ['speeches.speech_balloon_id = ?', speech_balloon_id]
+ end
+
+ def self.list_by_speech_balloon speech_balloon_id, roles, page = 1, page_size = self.default_page_size
+ self.where(self.list_by_speech_balloon_where(speech_balloon_id)).includes(self.list_opt).order('speeches.updated_at desc').offset((page -1) * page_size).limit(page_size)
+ end
+
+ def self.list_by_writing_format_where writing_format_id
+ ['speeches.writing_format_id = ?', writing_format_id]
+ end
+
+ def self.list_by_writing_format writing_format_id, roles, page = 1, page_size = self.default_page_size
+ self.where(self.list_by_writing_format_where(writing_format_id)).includes(self.list_opt).order('speeches.updated_at desc').offset((page -1) * page_size).limit(page_size)
+ end
+
def self.list_opt
{:speech_balloon => {:panel => {:author => {}}, :balloon => {}, :speech_balloon_template => {}} }
end
Kaminari.paginate_array(Array.new(SpeechBalloon.where(self.himlist_where(au)).includes(SpeechBalloon.list_opt).count, nil)).page(page).per(page_size)
end
+ def self.list_by_panel_where panel_id
+ ['speech_balloons.panel_id = ?', panel_id]
+ end
+
+ def self.list_by_panel panel_id, roles, page = 1, page_size = self.default_page_size
+ self.where(self.list_by_panel_where(panel_id)).includes(self.list_opt).order('speech_balloons.updated_at desc').offset((page -1) * page_size).limit(page_size)
+ end
+
+ def self.list_by_speech_balloon_template_where speech_balloon_template_id
+ ['speech_balloons.speech_balloon_template_id = ?', speech_balloon_template_id]
+ end
+
+ def self.list_by_speech_balloon_template speech_balloon_template_id, roles, page = 1, page_size = self.default_page_size
+ self.where(self.list_by_speech_balloon_template_where(speech_balloon_template_id)).includes(self.list_opt).order('speech_balloons.updated_at desc').offset((page -1) * page_size).limit(page_size)
+ end
+
def self.list_opt
{:panel => {:author => {}}, :balloon => {}, :speech => {}, :speech_balloon_template => {} }
end
Kaminari.paginate_array(Array.new(Story.where(self.himlist_where(au)).includes(Story.list_opt).count, nil)).page(page).per(page_size)
end
+ def self.list_by_comic_where comic_id
+ ['stories.comic_id = ?', comic_id]
+ end
+
+ def self.list_by_comic comic_id, roles, page = 1, page_size = self.default_page_size
+ self.where(self.list_by_comic_where(comic_id)).includes(self.list_opt).order('stories.updated_at desc').offset((page -1) * page_size).limit(page_size)
+ end
+
+ def self.list_by_sheet sheet_id, roles, page = 1, page_size = self.default_page_size
+ self.where(StorySheet.list_by_sheet_where(sheet_id)).includes(
+ {:story_sheets => {}}
+ ).order('story_sheets.updated_at desc').offset((page -1) * page_size).limit(page_size)
+ end
+
+ def self.list_by_author_where author_id
+ ['stories.author_id = ?', author_id]
+ end
+
+ def self.list_by_author author_id, roles, page = 1, page_size = self.default_page_size
+ self.where(self.list_by_author_where(author_id)).includes(self.list_opt).order('stories.updated_at desc').offset((page -1) * page_size).limit(page_size)
+ end
+
def self.list_opt
{:comic => {:author => {}} }
end
Kaminari.paginate_array(Array.new(StorySheet.where(self.play_sheet_where(story.id)).includes(StorySheet.list_opt).count, nil)).page(page).per(1)
end
+ def self.list_by_story_where story_id
+ ['story_sheets.story_id = ?', story_id]
+ end
+
+ def self.list_by_story story_id, roles, page = 1, page_size = self.default_page_size
+ self.where(self.list_by_story_where(story_id)).includes(self.list_opt).order('story_sheets.updated_at desc').offset((page -1) * page_size).limit(page_size)
+ end
+
+ def self.list_by_sheet_where sheet_id
+ ['story_sheets.sheet_id = ?', sheet_id]
+ end
+
+ def self.list_by_sheet sheet_id, roles, page = 1, page_size = self.default_page_size
+ self.where(self.list_by_sheet_where(sheet_id)).includes(self.list_opt).order('story_sheets.updated_at desc').offset((page -1) * page_size).limit(page_size)
+ end
+
def self.list_opt
{
:author => {},
-<% @page_title = t('.title') + ':' + @ar.name %>
+<% @page_title = t('.title') + ':' + @artist.name %>
<h1><%= t '.title' -%></h1>
<p id="notice"><%= notice %></p>
<p>
<b><%= t_m 'Artist.name' -%>:</b>
- <%= h @ar.name %>
+ <%= h @artist.name %>
</p>
<p>
<b><%= t_m 'Artist.created_at' -%>:</b>
- <%= l @ar.created_at %>
+ <%= l @artist.created_at %>
</p>
<p>
<b><%= t_m 'Artist.updated_at' -%>:</b>
- <%= l @ar.updated_at %>
+ <%= l @artist.updated_at %>
</p>
<p>
- <%= link_to t('artists.show.to_resource_pictures'), resource_pictures_artist_path(@ar) %>
+ <%= link_to t('artists.show.to_resource_pictures'), resource_pictures_artist_path(@artist) %>
</p>
-<% if @ar.own?(@artist) %>
- <%= link_to t('link.edit'), edit_artist_path(@ar) %>
+<% if @artist.own?(@artist) %>
+ <%= link_to t('link.edit'), edit_artist_path(@artist) %>
<% end %>
-<% @page_title = t('.title') + ':' + @au.name %>
+<% @page_title = t('.title') + ':' + @author.name %>
<h1><%= t '.title' -%></h1>
<p id="notice"><%= notice %></p>
<p>
<b><%= t_m 'Author.name' -%>:</b>
- <%= h @au.name %>
+ <%= h @author.name %>
</p>
<p>
<b><%= t_m 'Author.created_at' -%>:</b>
- <%= l @au.created_at %>
+ <%= l @author.created_at %>
</p>
<p>
<b><%= t_m 'Author.updated_at' -%>:</b>
- <%= l @au.updated_at %>
+ <%= l @author.updated_at %>
</p>
<p>
- <%= link_to t('authors.show.to_scrolls'), scrolls_author_path(@au) %>
+ <%= link_to t('authors.show.to_scrolls'), scrolls_author_path(@author) %>
</p>
<p>
- <%= link_to t('authors.show.to_scroll_panels'), scroll_panels_author_path(@au) %>
+ <%= link_to t('authors.show.to_scroll_panels'), scroll_panels_author_path(@author) %>
</p>
<p>
- <%= link_to t('authors.show.to_comics'), comics_author_path(@au) %>
+ <%= link_to t('authors.show.to_comics'), comics_author_path(@author) %>
</p>
<p>
- <%= link_to t('authors.show.to_stories'), stories_author_path(@au) %>
+ <%= link_to t('authors.show.to_stories'), stories_author_path(@author) %>
</p>
<p>
- <%= link_to t('authors.show.to_story_sheets'), story_sheets_author_path(@au) %>
+ <%= link_to t('authors.show.to_story_sheets'), story_sheets_author_path(@author) %>
</p>
<p>
- <%= link_to t('authors.show.to_sheets'), sheets_author_path(@au) %>
+ <%= link_to t('authors.show.to_sheets'), sheets_author_path(@author) %>
</p>
<p>
- <%= link_to t('authors.show.to_sheet_panels'), sheet_panels_author_path(@au) %>
+ <%= link_to t('authors.show.to_sheet_panels'), sheet_panels_author_path(@author) %>
</p>
<p>
- <%= link_to t('authors.show.to_panels'), panels_author_path(@au) %>
+ <%= link_to t('authors.show.to_panels'), panels_author_path(@author) %>
</p>
<p>
- <%= link_to t('authors.show.to_panel_pictures'), panel_pictures_author_path(@au) %>
+ <%= link_to t('authors.show.to_panel_pictures'), panel_pictures_author_path(@author) %>
</p>
<p>
- <%= link_to t('authors.show.to_speech_balloons'), speech_balloons_author_path(@au) %>
+ <%= link_to t('authors.show.to_speech_balloons'), speech_balloons_author_path(@author) %>
</p>
<p>
- <%= link_to t('authors.show.to_ground_pictures'), ground_pictures_author_path(@au) %>
+ <%= link_to t('authors.show.to_ground_pictures'), ground_pictures_author_path(@author) %>
</p>
<p>
- <%= link_to t('authors.show.to_ground_colors'), ground_colors_author_path(@au) %>
+ <%= link_to t('authors.show.to_ground_colors'), ground_colors_author_path(@author) %>
</p>
-<% if @au.own?(@author) %>
- <%= link_to t('link.edit'), edit_author_path(@au) %>
+<% if @author.own?(@author) %>
+ <%= link_to t('link.edit'), edit_author_path(@author) %>
<% end %>
--- /dev/null
+<div>
+ <%= t_selected_item('comic_visible_items', item.visible) %>
+ <%= t('comics.comic_stories_count', :c => item.comic_stories_count) %>
+</div>
+<div>
+ <%= link_to h(truncate(item.author.name, :length => 12)), author_path(item.author) %>
+</div>
<h1><%= t '.title' -%></h1>
-<h2><%= link_to h(@author.name), main_app.author_path(@author) -%></h2>
+<h2><%= link_to h(@operators.author.name), main_app.author_path(@operators.author) -%></h2>
<h3><%= t('.updated_scroll') -%></h3>
<table>
<tr height="100px">
</td>
</tr>
</table>
-<% if @author.artist? -%>
- <h2><%= link_to h(@artist.name), main_app.artist_path(@artist) -%></h2>
+<% if @operators.artist -%>
+ <h2><%= link_to h(@operators.artist.name), main_app.artist_path(@operators.artist) -%></h2>
<h3><%= t('.updated_picture') -%></h3>
<table>
<tr height="100px">
--- /dev/null
+<div>
+ <%= link_to h(truncate(item.artist.name, :length => 12)), artist_path(item.artist) %>
+ <%= render item.credit_template, :picture => item %>
+</div>
--- /dev/null
+<% model_name = model.to_s.underscore %>
+<% path_name = model.to_s.tableize %>
+<% filer_configurations = configurations['filers'][model.to_s.underscore] || {} %>
+<% symbol = filer_configurations['symbol'] || {} %>
+<% symbol_type = symbol['type'] || 'src' %>
+<% caption = filer_configurations['caption'] || {} %>
+<% caption_type = caption['type'] || 'column' %>
+<% summary = filer_configurations['summary'] || {} %>
+<% summary_type = summary['type'] || 'none' %>
+<% edit = filer_configurations['edit'] || {} %>
+<% edit_type = edit['type'] || 'default' %>
+<div>
+ <%= model.model_name.human %>
+</div>
+<ul class="filer">
+ <li id="" class="filer-head filer-head-<%= model.to_s.underscore -%>">
+ <div id="" class="filer-head-symbol">
+ symbol
+ </div>
+ <% unless caption_type == 'none' %>
+ <div id="" class="filer-head-caption">
+ caption
+ </div>
+ <% end %>
+ <% unless summary_type == 'none' %>
+ <div id="" class="filer-head-summary">
+ summary
+ </div>
+ <% end %>
+ <div id="" class="filer-head-icon">
+ icon
+ </div>
+ <div id="" class="filer-head-date">
+ date
+ </div>
+ <% unless edit_type == 'none' %>
+ <div id="" class="filer-head-edit">
+ edit
+ </div>
+ <% end %>
+ </li>
+ <% items.each do |item| %>
+ <li id="" class="filer-item filer-item-<%= model.to_s.underscore -%>">
+ <div id="" class="filer-item-symbol">
+ <% link = symbol['link'] || {'type' => 'action', 'name' => 'show'} %>
+ <% path = case link['type'] %>
+ <% when 'action' %>
+ <% case link['name'] %>
+ <% when 'show' %>
+ <% polymorphic_path(item) %>
+ <% else %>
+ <% polymorphic_path(item, :action => link['name']) %>
+ <% end %>
+ <% when 'none' %>
+ <% '' %>
+ <% when 'url_column' %>
+ <% item.__send__(link['name']).to_s %>
+ <% else %>
+ <% '' %>
+ <% end %>
+ <% str = case symbol_type %>
+ <% when 'image' %>
+ <% tag(:img, :src => symbol['name'], :width => 64, :height => 64) %>
+ <% when 'picture' %>
+ <% tag(:img, item.__send__(symbol['name'])) %>
+ <% when 'template' %>
+ <%= render path_name + '/' + symbol['name'], :item => item %>
+ <% nil %>
+ <% else %>
+ <% 'no.png' %>
+ <% end %>
+ <% unless str.blank? %>
+ <%= link_to_unless path.blank?, str, path %>
+ <% end %>
+ </div>
+ <% unless caption_type == 'none' %>
+ <div id="" class="filer-item-caption">
+ <% link = caption['link'] || {'type' => 'action', 'name' => 'show'} %>
+ <% path = case link['type'] %>
+ <% when 'action' %>
+ <% case link['name'] %>
+ <% when 'show' %>
+ <% polymorphic_path(item) %>
+ <% else %>
+ <% polymorphic_path(item, :action => link['name']) %>
+ <% end %>
+ <% when 'none' %>
+ <% '' %>
+ <% when 'url_column' %>
+ <% item.__send__(link['name']).to_s %>
+ <% else %>
+ <% polymorphic_path(item) %>
+ <% end %>
+ <% str = case caption_type %>
+ <% when 'column' %>
+ <% item.attributes[caption['name']] %>
+ <% when 'method' %>
+ <% item.__send__(caption['name']).to_s %>
+ <% else %>
+ <% 'no caption' %>
+ <% end %>
+ <% str = 'no caption' if str.blank? %>
+ <% unless str.blank? %>
+ <%= link_to_unless path.blank?, str, path %>
+ <% end %>
+ </div>
+ <% end %>
+ <% unless summary_type == 'none' %>
+ <div id="" class="filer-item-summary">
+ <% case summary_type %>
+ <% when 'template' %>
+ <%= render path_name + '/' + summary['name'], :item => item %>
+ <% else %>
+ <% 'no config' %>
+ <% end %>
+ </div>
+ <% end %>
+ <div id="" class="filer-item-icon">
+ <%= link_to icon_tag(item.class.to_s, :object => item, :size => 64), polymorphic_path(item, :format => :prof) %>
+ </div>
+ <div id="" class="filer-item-date">
+ <%= distance_of_time_in_words_to_now item.updated_at %>
+ </div>
+ <% unless edit_type == 'none' %>
+ <div id="" class="filer-item-edit">
+ <% case edit_type %>
+ <% when 'default' %>
+ <% if item.own? roles %>
+ <%= link_to tag(:img, :src => asset_path('edit.png'), :width => 32, :height => 32), polymorphic_path(item, :action => :edit) %>
+ <%= link_to tag(:img, :src => asset_path('remove.png'), :width => 32, :height => 32), item, confirm: 'Are you sure?', :method => :delete %>
+ <% end %>
+ <% when 'account' %>
+ <% if item.own? roles %>
+ <%= link_to tag(:img, :src => asset_path('edit.png'), :width => 32, :height => 32), '/home/configure' %>
+ <% end %>
+ <% when 'template' %>
+ <%= render path_name + '/' + edit['name'], :item => item %>
+ <% else %>
+ <% 'no config' %>
+ <% end %>
+ </div>
+ <% end %>
+ </li>
+ <% end %>
+</ul>
+<div class="row_break">
+</div>
+<% if pager %>
+ <%= paginate(pager) %>
+<% end %>
-<% model_name = model.to_s.underscore %>
-<% path_name = model.to_s.tableize %>
-<% filer_configurations = configurations['filers'][model.to_s.underscore] || {} %>
-<% symbol = filer_configurations['symbol'] || {} %>
-<% symbol_type = symbol['type'] || 'src' %>
-<% caption = filer_configurations['caption'] || {} %>
-<% caption_type = caption['type'] || 'column' %>
-<% summary = filer_configurations['summary'] || {} %>
-<% summary_type = summary['type'] || 'none' %>
-<% edit = filer_configurations['edit'] || {} %>
-<% edit_type = edit['type'] || 'default' %>
-<ul class="filer">
- <li id="" class="filer-head filer-head-<%= model.to_s.underscore -%>">
- <div id="" class="filer-head-symbol">
- symbol
- </div>
- <% unless caption_type == 'none' %>
- <div id="" class="filer-head-caption">
- caption
- </div>
- <% end %>
- <% unless summary_type == 'none' %>
- <div id="" class="filer-head-summary">
- summary
- </div>
- <% end %>
- <div id="" class="filer-head-icon">
- icon
- </div>
- <div id="" class="filer-head-date">
- date
- </div>
- <% unless edit_type == 'none' %>
- <div id="" class="filer-head-edit">
- edit
- </div>
- <% end %>
- </li>
- <% items.each do |item| %>
- <li id="" class="filer-item filer-item-<%= model.to_s.underscore -%>">
- <div id="" class="filer-item-symbol">
- <% link = symbol['link'] || {'type' => 'action', 'name' => 'show'} %>
- <% path = case link['type'] %>
- <% when 'action' %>
- <% case link['name'] %>
- <% when 'show' %>
- <% polymorphic_path(item) %>
- <% else %>
- <% polymorphic_path(item, :action => link['name']) %>
- <% end %>
- <% when 'none' %>
- <% '' %>
- <% when 'url_column' %>
- <% item.__send__(link['name']).to_s %>
- <% else %>
- <% '' %>
- <% end %>
- <% str = case symbol_type %>
- <% when 'image' %>
- <% tag(:img, :src => symbol['name'], :width => 64, :height => 64) %>
- <% when 'picture' %>
- <% tag(:img, item.__send__(symbol['name'])) %>
- <% when 'template' %>
- <%= render path_name + '/' + symbol['name'], :item => item %>
- <% nil %>
- <% else %>
- <% 'no.png' %>
- <% end %>
- <% unless str.blank? %>
- <%= link_to_unless path.blank?, str, path %>
- <% end %>
- </div>
- <% unless caption_type == 'none' %>
- <div id="" class="filer-item-caption">
- <% link = caption['link'] || {'type' => 'action', 'name' => 'show'} %>
- <% path = case link['type'] %>
- <% when 'action' %>
- <% case link['name'] %>
- <% when 'show' %>
- <% polymorphic_path(item) %>
- <% else %>
- <% polymorphic_path(item, :action => link['name']) %>
- <% end %>
- <% when 'none' %>
- <% '' %>
- <% when 'url_column' %>
- <% item.__send__(link['name']).to_s %>
- <% else %>
- <% polymorphic_path(item) %>
- <% end %>
- <% str = case caption_type %>
- <% when 'column' %>
- <% item.attributes[caption['name']] %>
- <% when 'method' %>
- <% item.__send__(caption['name']).to_s %>
- <% else %>
- <% 'no caption' %>
- <% end %>
- <% str = 'no caption' if str.blank? %>
- <% unless str.blank? %>
- <%= link_to_unless path.blank?, str, path %>
- <% end %>
- </div>
- <% end %>
- <% unless summary_type == 'none' %>
- <div id="" class="filer-item-summary">
- <% case summary_type %>
- <% when 'template' %>
- <%= render path_name + '/' + summary['name'], :item => item %>
- <% else %>
- <% 'no config' %>
- <% end %>
- </div>
- <% end %>
- <div id="" class="filer-item-icon">
- <%= link_to icon_tag(item.class.to_s, :object => item, :size => 64), polymorphic_path(item, :format => :prof) %>
- </div>
- <div id="" class="filer-item-date">
- <%= distance_of_time_in_words_to_now item.updated_at %>
- </div>
- <% unless edit_type == 'none' %>
- <div id="" class="filer-item-edit">
- <% case edit_type %>
- <% when 'default' %>
- <% if item.own? roles %>
- <%= link_to tag(:img, :src => asset_path('edit.png'), :width => 32, :height => 32), polymorphic_path(item, :action => :edit) %>
- <%= link_to tag(:img, :src => asset_path('remove.png'), :width => 32, :height => 32), item, confirm: 'Are you sure?', :method => :delete %>
- <% end %>
- <% when 'account' %>
- <% if item.own? roles %>
- <%= link_to tag(:img, :src => asset_path('edit.png'), :width => 32, :height => 32), '/home/configure' %>
- <% end %>
- <% when 'template' %>
- <%= render path_name + '/' + edit['name'], :item => item %>
- <% else %>
- <% 'no config' %>
- <% end %>
- </div>
- <% end %>
- </li>
- <% end %>
-</ul>
-<div class="row_break">
-</div>
-<% if pager %>
- <%= paginate(pager) %>
-<% end %>
+<%= render 'system/filer', {:items => items, :model => model, :roles => roles, :pager => pager} %>
--- /dev/null
+<% item_name = item.class.to_s.underscore %>\r
+<% profile = configurations['profiles'][item_name] || {} %>\r
+<% model_conf = configurations['models'][item_name] || {} %>\r
+<% model_attributes = model_conf['attributes'] || {} %>\r
+<% model_associations = model_conf['associations'] || {} %>\r
+<% profile_associations = profile['associations'] || {} %>\r
+<%= render 'system/filer.html', :items => [item], :model => item.class, :roles => roles, :pager => nil %>\r
+<% profile['fields'].each do |field_name| %>\r
+ <% field_conf = model_attributes[field_name] || {} %>\r
+ <div>\r
+ <%= item.class.human_attribute_name(field_name) %>\r
+ <% case field_conf['type'] %>\r
+ <% when 'datetime' %>\r
+ <% if item.attributes[field_name] %>\r
+ <%= l item.attributes[field_name] %>\r
+ <% else %>\r
+ <%= item.attributes[field_name] %>\r
+ <% end %>\r
+ <% else %>\r
+ <%= item.attributes[field_name] %>\r
+ <% end %>\r
+ <% if field_conf['source'] %>\r
+ <% case field_conf['source']['type'] %>\r
+ <% when 'magic_number' %>\r
+ (<%= t_selected_item(field_conf['source']['key'], item.attributes[field_name]) %>)\r
+ <% when 'model' %>\r
+ <% else %>\r
+ <% end %>\r
+ <% end %>\r
+ </div>\r
+<% end %>\r
+<div>\r
+ <%= 'associations' %>\r
+</div>\r
+<div>\r
+ <%= 'belongs_to' %>\r
+</div>\r
+<% (profile_associations['belongs_to'] || []).each do |association_model_name| %>\r
+ <% belongs_to_conf = model_associations['belongs_to'][association_model_name] %>\r
+ <% parent_model = association_model_name.classify.constantize %>\r
+ <% id_column = belongs_to_conf['id_column'] %>\r
+ <% parent = nil %>\r
+ <% begin %>\r
+ <% parent = parent_model.show(item.attributes[id_column], roles) %>\r
+ <% rescue ActiveRecord::RecordNotFound %>\r
+ <% end %>\r
+ <% if parent %>\r
+ <%= render 'system/filer.html', :items => [parent], :model => parent.class, :roles => roles, :pager => nil %>\r
+ <% end %>\r
+<% end %>\r
+<div>\r
+ <%= 'has_many' %>\r
+</div>\r
+<% (profile_associations['has_many'] || []).each do |association_model_name| %>\r
+ <% has_many_conf = model_associations['has_many'][association_model_name] %>\r
+ <% child_model = association_model_name.classify.constantize %>\r
+ <% foreign_key = has_many_conf['foreign_key'] %>\r
+ <% children = child_model.__send__(has_many_conf['list_method'], item.attributes['id'], roles, 1, 3) %>\r
+ <%= render 'system/filer.html', :items => children, :model => child_model, :roles => roles, :pager => nil %>\r
+<% end %>\r
+<div>\r
+ <%= 'has_one' %>\r
+</div>\r
+<% (profile_associations['has_one'] || []).each do |association_model_name| %>\r
+ <% has_one_conf = model_associations['has_one'][association_model_name] %>\r
+ <% child_model = association_model_name.classify.constantize %>\r
+ <% foreign_key = has_one_conf['foreign_key'] %>\r
+ <% children = child_model.__send__(has_one_conf['list_method'], item.attributes['id'], roles, 1, 3) %>\r
+ <%= render 'system/filer.html', :items => children, :model => child_model, :roles => roles, :pager => nil %>\r
+<% end %>\r
<%= link_to t_m('SystemPicture'), main_app.system_pictures_path %>\r
</td>\r
</tr>\r
+ <tr height="100px">\r
+ <td width="200px" align="center" valign="middle">\r
+ <%= link_to t_m('WritingFormat'), main_app.writing_formats_path %>\r
+ </td>\r
+ <td width="200px" align="center" valign="middle">\r
+ </td>\r
+ <td width="200px" align="center" valign="middle">\r
+ </td>\r
+ <td width="200px" align="center" valign="middle">\r
+ </td>\r
+ </tr>\r
</table>\r
browse:
title: フキダシテンプレート 生単票
add_to_panel: このフキダシをつかんだコマに追加する
+ writing_formats:
+ index:
+ title: 記法一覧
+ show:
+ title: 記法詳細
license_groups:
index:
title: ライセンスグループ一覧
delete :destroy
end
end
+ resources :writing_formats do
+ collection do
+ get :index
+ get :show
+ get :list
+ end
+ member do
+ get :browse
+ end
+ end
resources :licenses do
collection do
get :index
''
end
- def self.himlist_where anybody
+ def self.himlist_where anyone
''
end
self.where(self.mylist_where(me)).includes(self.list_opt).order(self.mylist_order).offset((page -1) * page_size).limit(page_size)
end
- def self.himlist anybody, page = 1, page_size = self.default_page_size
- self.where(self.himlist_where(anybody)).includes(self.list_opt).order(self.mylist_order).offset((page -1) * page_size).limit(page_size)
+ def self.himlist anyone, operators, page = 1, page_size = self.default_page_size
+ where_str = if operators.admin?
+ self.list_where
+ else
+ self.himlist_where(anyone)
+ end
+ self.where(where_str).includes(self.list_opt).order(self.mylist_order).offset((page -1) * page_size).limit(page_size)
end
def self.mylist_paginate me, page = 1, page_size = self.default_page_size
).includes(self.list_opt).count, nil)).page(page).per(page_size)
end
- def self.himlist_paginate anybody, page = 1, page_size = self.default_page_size
+ def self.himlist_paginate anyone, operators, page = 1, page_size = self.default_page_size
+ where_str = if operators.admin?
+ self.list_where
+ else
+ self.himlist_where(anyone)
+ end
Kaminari.paginate_array(
- Array.new(self.where(self.himlist_where(anybody)
+ Array.new(self.where(where_str)
).includes(self.list_opt).count, nil)).page(page).per(page_size)
end
{}
end
- def self.show item_id, au
+ def self.show item_id, operators
opt = {}
opt.merge!(self.show_opt)
item = self.find(item_id, opt)
- raise ActiveRecord::Forbidden unless item.visible?(au)
+ raise ActiveRecord::Forbidden unless item.visible?(operators)
item
end
+++ /dev/null
-require 'element'
+++ /dev/null
-=begin
-module ActiveRecord
- class Base
- module Element
- def self.included(base)
- base.extend(ClassMethods)
- base.__send__ :include, InstanceMethods
- end
-
- module ClassMethods
- end
-
- module InstanceMethods
- private
-
- public
-
- end
-
- end
- include Element
- end
-end
-
-=end