OSDN Git Service

operator move to cache
[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 Backbone.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 Backbone.View\r
43   tagName: 'div'\r
44   \r
45   initialize: (options) ->\r
46     @comic_story = options.comic_story\r
47     retriever = @comic_story.story()\r
48     @listenTo(retriever, 'retrieve', @retrieve_story)\r
49     retriever.retrieve()\r
50   \r
51   retrieve_story: (@story) ->\r
52     @render()\r
53   \r
54   render: () ->\r
55     this.$el.html('')\r
56     this.$el.append('title')\r
57     this.$el.append('order')\r
58     this\r
59   \r
60 class Pettanr.Views.Comic.PlayModule.Stories extends Backbone.View\r
61   tagName: 'div'\r
62   \r
63   initialize: (options) ->\r
64     @parent = options.parent\r
65     @items = options.items\r
66   \r
67   render: () ->\r
68     this.$el.html('')\r
69     _.each @items, (comic_story) =>\r
70       return if not comic_story.has_story()\r
71       story_view = new Pettanr.Views.Comic.PlayModule.Story({\r
72         comic_story: comic_story\r
73       })\r
74       this.$el.append(story_view.render().el)\r
75     this\r
76   \r
77 class Pettanr.Views.Comic.PlayModule.Body extends Backbone.View\r
78   tagName: 'div'\r
79   \r
80   initialize: (options) ->\r
81     @parent = options.parent\r
82     @list = options.list\r
83     @items = @list.items()\r
84     if @items.length < 1\r
85       @render_empty()\r
86     else\r
87       @render()\r
88   \r
89   render_empty: () ->\r
90     this.$el.html('')\r
91     this.$el.append((new Tag.H2({content: I18n.t('comics.play.empty')})).render().el)\r
92     this\r
93   \r
94   render: () ->\r
95     this.$el.html('')\r
96     panels = new Pettanr.Views.Comic.PlayModule.Stories({\r
97       parent: this,\r
98       items: @items,\r
99     })\r
100     this.$el.append(panels.render().el)\r
101     this\r
102   \r
103 class Pettanr.Views.Comic.Play extends Backbone.View\r
104   tagName: 'div'\r
105   className: 'show'\r
106   \r
107   initialize: (options) ->\r
108     @item = options.item\r
109     @list = options.list\r
110     icon_url = Pettanr.url(@item.table_name(), 'show', {id: @item.get('id')})\r
111     caption_url = Pettanr.url(@item.table_name(), 'play', {id: @item.get('id')})\r
112     prof_url = Pettanr.url(@item.table_name(), 'show', {id: @item.get('id'), format: 'prof'})\r
113     @header = new Pettanr.Views.Comic.PlayModule.Header({\r
114       item: @item, \r
115       caption: @item.get('title'), \r
116       icon_url: icon_url,\r
117       caption_url: caption_url,\r
118       prof_url: prof_url\r
119     })\r
120     @author = new Pettanr.Views.Show.HeaderAuthor({item: @item})\r
121     @body = new Pettanr.Views.Comic.PlayModule.Body({\r
122       parent: this,\r
123       list: @list, \r
124     })\r
125     @owner = new Pettanr.Views.Comic.PlayModule.Owner({item: @item})\r
126   \r
127   render: () ->\r
128     this.$el.html('')\r
129     this.$el.append(@header.render().el)\r
130     this.$el.append(@author.render().el)\r
131     this.$el.append(@body.render().el)\r
132     this.$el.append(@owner.render().el) if @item.is_own()\r
133     this\r
134   \r