OSDN Git Service

fix:
[pettanr/pettanr.git] / app / assets / javascripts / views / scrolls / play.js.coffee
1 class Pettanr.Views.Scroll.PlayModule\r
2 class Pettanr.Views.Scroll.PlayModule.Header extends Pettanr.Views.Show.Header\r
3   \r
4   initialize: (options) ->\r
5     super(options)\r
6   \r
7 class Pettanr.Views.Scroll.PlayModule.Owner extends Pettanr.Views.Show.Owner\r
8   \r
9   initialize: (options) ->\r
10     super(options)\r
11   \r
12 class Pettanr.Views.Scroll.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     @operators = options.operators\r
20   \r
21   render: () ->\r
22     this.$el.html('')\r
23     this.$el.append(\r
24       (new Pettanr.Views.Panel.Icon({item: @panel, half: true})).render().el\r
25     )\r
26     this.$el.append(\r
27       (new Pettanr.Views.Author.Icon({item: @panel.author(), half: true})).render().el\r
28     )\r
29     this.$el.append(Pettanr.AppHelper.distance_of_time_in_words_to_now(@panel.get('updated_at')))\r
30     #\r
31     this.$el.append(\r
32       (new Pettanr.Views.Panel.Icon({item: @scroll_panel, half: true})).render().el\r
33     )\r
34     this.$el.append(\r
35       (new Pettanr.Views.Author.Icon({item: @panel.author(), half: true})).render().el\r
36     )\r
37     this.$el.append(Pettanr.AppHelper.distance_of_time_in_words_to_now(@scroll_panel.get('updated_at')))\r
38     #\r
39     if @panel.is_own(@operators)\r
40       this.$el.append('')\r
41     this\r
42   \r
43 class Pettanr.Views.Scroll.PlayModule.Credits extends Backbone.View\r
44   tagName: 'div'\r
45   className: 'credits'\r
46   \r
47   initialize: (options) ->\r
48     @parent = options.parent\r
49     @licensed_pictures = {}\r
50   \r
51   render: () ->\r
52     this.$el.html('')\r
53     this\r
54   \r
55   push: (append_pictures) ->\r
56     _.each append_pictures, (picture, pid) =>\r
57       return if @licensed_pictures[pid]\r
58       @licensed_pictures[pid] = picture\r
59       picture.fetch({cache: true}).done =>\r
60         credit = picture.credit_view()\r
61         this.$el.append(credit.render().el)\r
62   \r
63 class Pettanr.Views.Scroll.PlayModule.Panels extends Backbone.View\r
64   tagName: 'div'\r
65   \r
66   initialize: (options) ->\r
67     @parent = options.parent\r
68     @items = options.items\r
69     @credits = options.credits\r
70     @operators = options.operators\r
71   \r
72   render: () ->\r
73     this.$el.html('')\r
74     _.each @items, (scroll_panel) =>\r
75       return if not scroll_panel.has_panel()\r
76       panel = scroll_panel.panel()\r
77       panel.fetch({cache: true}).done =>\r
78         panel.attributes = panel.replaced_attributes()\r
79         body = new Pettanr.Views.Panel.Body({\r
80           panel: panel,\r
81           operators: @operators,\r
82           spot: null\r
83         })\r
84         this.$el.append(body.render().el)\r
85         footer = new Pettanr.Views.Panel.Footer({\r
86           scroll_panel: scroll_panel,\r
87           panel: panel,\r
88           operators: @operators\r
89         })\r
90         this.$el.append(footer.render().el)\r
91         this.credits.push(panel.licensed_pictures())\r
92     this\r
93   \r
94 class Pettanr.Views.Scroll.PlayModule.Body extends Backbone.View\r
95   tagName: 'div'\r
96   \r
97   initialize: (options) ->\r
98     @parent = options.parent\r
99     @list = options.list\r
100     @operators = options.operators\r
101     @items = @list.items()\r
102     if @items.length < 1\r
103       @render_empty()\r
104     else\r
105       @render()\r
106   \r
107   render_empty: () ->\r
108     this.$el.html('')\r
109     this.$el.append((new Tag.H2({content: I18n.t('scrolls.play.empty')})).render().el)\r
110     this\r
111   \r
112   render: () ->\r
113     this.$el.html('')\r
114     # paginate(@pager)\r
115     credits = new Pettanr.Views.Scroll.PlayModule.Credits({parent: this})\r
116     panels = new Pettanr.Views.Scroll.PlayModule.Panels({\r
117       parent: this,\r
118       items: @items,\r
119       credits: credits,\r
120       operators: @operators\r
121     })\r
122     this.$el.append(panels.render().el)\r
123     this.$el.append(credits.render().el)\r
124     rb = new Tag.RowBreak()\r
125     this.$el.append(rb.render().el)\r
126     # paginate(@pager)\r
127     this\r
128   \r
129 class Pettanr.Views.Scroll.Play extends Backbone.View\r
130   tagName: 'div'\r
131   className: 'show'\r
132   \r
133   initialize: (options) ->\r
134     @item = options.item\r
135     @list = options.list\r
136     @operators = options.operators\r
137     icon_url = Pettanr.url(@item.table_name(), 'show', {id: @item.get('id')})\r
138     caption_url = Pettanr.url(@item.table_name(), 'play', {id: @item.get('id')})\r
139     prof_url = Pettanr.url(@item.table_name(), 'show', {id: @item.get('id'), format: 'prof'})\r
140     @header = new Pettanr.Views.Scroll.PlayModule.Header({\r
141       item: @item, \r
142       operators: @operators,\r
143       caption: @item.get('title'), \r
144       icon_url: icon_url,\r
145       caption_url: caption_url,\r
146       prof_url: prof_url\r
147     })\r
148     @author = new Pettanr.Views.Show.HeaderAuthor({item: @item})\r
149     @body = new Pettanr.Views.Scroll.PlayModule.Body({\r
150       parent: this,\r
151       list: @list, \r
152       operators: @operators\r
153     })\r
154     @owner = new Pettanr.Views.Scroll.PlayModule.Owner({item: @item, operators: @operators})\r
155   \r
156   render: () ->\r
157     this.$el.html('')\r
158     this.$el.append(@header.render().el)\r
159     this.$el.append(@author.render().el)\r
160     this.$el.append(@body.render().el)\r
161     this.$el.append(@owner.render().el) if @item.is_own(@operators)\r
162     this\r
163   \r