OSDN Git Service

ea1eff0f226905cde035a87f52685a1e187b5da0
[pettanr/pettanr.git] / app / assets / javascripts / views / comics / play.js.coffee
1 class Pettanr.Views.Comic.PlayModule\r
2 class Pettanr.Views.Comic.PlayModule.Header extends Pettanr.Views.Show.Header\r
3   \r
4   initialize: (options) ->\r
5     super(options)\r
6   \r
7 class Pettanr.Views.Comic.PlayModule.Owner extends Pettanr.Views.Show.Owner\r
8   \r
9   initialize: (options) ->\r
10     super(options)\r
11   \r
12 class Pettanr.Views.Comic.PlayModule.Footer extends Pettanr.View\r
13   tagName: 'table'\r
14   className: 'no-border'\r
15   \r
16   initialize: (options) ->\r
17     @panel = options.panel\r
18     @scroll_panel = options.scroll_panel\r
19   \r
20   render: () ->\r
21     this.$el.html('')\r
22     this.$el.append(\r
23       (new Pettanr.Views.Panel.Icon({item: @panel, half: true})).render().el\r
24     )\r
25     this.$el.append(\r
26       (new Pettanr.Views.Author.Icon({item: @panel.author(), half: true})).render().el\r
27     )\r
28     this.$el.append(Pettanr.AppHelper.distance_of_time_in_words_to_now(@panel.get('updated_at')))\r
29     #\r
30     this.$el.append(\r
31       (new Pettanr.Views.Panel.Icon({item: @scroll_panel, half: true})).render().el\r
32     )\r
33     this.$el.append(\r
34       (new Pettanr.Views.Author.Icon({item: @panel.author(), half: true})).render().el\r
35     )\r
36     this.$el.append(Pettanr.AppHelper.distance_of_time_in_words_to_now(@scroll_panel.get('updated_at')))\r
37     #\r
38     if @panel.is_own()\r
39       this.$el.append('')\r
40     this\r
41   \r
42 class Pettanr.Views.Comic.PlayModule.Story extends Pettanr.View\r
43   tagName: 'div'\r
44   \r
45   initialize: (options) ->\r
46     @comic_story = options.comic_story\r
47     @comic_story.get_parent('story', this, {\r
48       success: (@story) =>\r
49         @render()\r
50     })\r
51   \r
52   render: () ->\r
53     this.$el.html('')\r
54     this.$el.append('title')\r
55     this.$el.append('order')\r
56     this\r
57   \r
58 class Pettanr.Views.Comic.PlayModule.Stories extends Pettanr.View\r
59   tagName: 'div'\r
60   \r
61   initialize: (options) ->\r
62     @parent = options.parent\r
63     @items = options.items\r
64   \r
65   render: () ->\r
66     this.$el.html('')\r
67     _.each @items, (comic_story) =>\r
68       return if not comic_story.has_story()\r
69       story_view = new Pettanr.Views.Comic.PlayModule.Story({\r
70         comic_story: comic_story\r
71       })\r
72       this.$el.append(story_view.render().el)\r
73     this\r
74   \r
75 class Pettanr.Views.Comic.PlayModule.Body extends Pettanr.View\r
76   tagName: 'div'\r
77   \r
78   initialize: (options) ->\r
79     @parent = options.parent\r
80     @list = options.list\r
81     @items = @list.items()\r
82     if @items.length < 1\r
83       @render_empty()\r
84     else\r
85       @render()\r
86   \r
87   render_empty: () ->\r
88     this.$el.html('')\r
89     this.$el.append((new Tag.H2({content: I18n.t('comics.play.empty')})).render().el)\r
90     this\r
91   \r
92   render: () ->\r
93     this.$el.html('')\r
94     panels = new Pettanr.Views.Comic.PlayModule.Stories({\r
95       parent: this,\r
96       items: @items,\r
97     })\r
98     this.$el.append(panels.render().el)\r
99     this\r
100   \r
101 class Pettanr.Views.Comic.Play extends Pettanr.View\r
102   tagName: 'div'\r
103   className: 'show'\r
104   \r
105   initialize: (options) ->\r
106     @item = options.item\r
107     @list = options.list\r
108     icon_url = Pettanr.url(@item.table_name(), 'show', {id: @item.get('id')})\r
109     caption_url = Pettanr.url(@item.table_name(), 'play', {id: @item.get('id')})\r
110     prof_url = Pettanr.url(@item.table_name(), 'show', {id: @item.get('id'), format: 'prof'})\r
111     @header = new Pettanr.Views.Comic.PlayModule.Header({\r
112       item: @item, \r
113       caption: @item.get('title'), \r
114       icon_url: icon_url,\r
115       caption_url: caption_url,\r
116       prof_url: prof_url\r
117     })\r
118     @author = new Pettanr.Views.Show.HeaderAuthor({item: @item})\r
119     @body = new Pettanr.Views.Comic.PlayModule.Body({\r
120       parent: this,\r
121       list: @list, \r
122     })\r
123     @owner = new Pettanr.Views.Comic.PlayModule.Owner({item: @item})\r
124   \r
125   render: () ->\r
126     this.$el.html('')\r
127     this.$el.append(@header.render().el)\r
128     this.$el.append(@author.render().el)\r
129     this.$el.append(@body.render().el)\r
130     this.$el.append(@owner.render().el) if @item.is_own()\r
131     this\r
132   \r