OSDN Git Service

clean
[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         body = new Pettanr.Views.Panel.Body({\r
79           panel: panel,\r
80           operators: @operators,\r
81           spot: null\r
82         })\r
83         this.$el.append(body.render().el)\r
84         footer = new Pettanr.Views.Panel.Footer({\r
85           scroll_panel: scroll_panel,\r
86           panel: panel,\r
87           operators: @operators\r
88         })\r
89         this.$el.append(footer.render().el)\r
90         this.credits.push(panel.licensed_pictures())\r
91     this\r
92   \r
93 class Pettanr.Views.Scroll.PlayModule.Body extends Backbone.View\r
94   tagName: 'div'\r
95   \r
96   initialize: (options) ->\r
97     @parent = options.parent\r
98     @list = options.list\r
99     @operators = options.operators\r
100     @items = @list.items()\r
101     if @items.length < 1\r
102       @render_empty()\r
103     else\r
104       @render()\r
105   \r
106   render_empty: () ->\r
107     this.$el.html('')\r
108     this.$el.append((new Tag.H2({content: I18n.t('scrolls.play.empty')})).render().el)\r
109     this\r
110   \r
111   render: () ->\r
112     this.$el.html('')\r
113     # paginate(@pager)\r
114     credits = new Pettanr.Views.Scroll.PlayModule.Credits({parent: this})\r
115     panels = new Pettanr.Views.Scroll.PlayModule.Panels({\r
116       parent: this,\r
117       items: @items,\r
118       credits: credits,\r
119       operators: @operators\r
120     })\r
121     this.$el.append(panels.render().el)\r
122     this.$el.append(credits.render().el)\r
123     rb = new Tag.RowBreak()\r
124     this.$el.append(rb.render().el)\r
125     # paginate(@pager)\r
126     this\r
127   \r
128 class Pettanr.Views.Scroll.Play extends Backbone.View\r
129   tagName: 'div'\r
130   className: 'show'\r
131   \r
132   initialize: (options) ->\r
133     @item = options.item\r
134     @list = options.list\r
135     @operators = options.operators\r
136     icon_url = Pettanr.url(@item.table_name(), 'show', {id: @item.get('id')})\r
137     caption_url = Pettanr.url(@item.table_name(), 'play', {id: @item.get('id')})\r
138     prof_url = Pettanr.url(@item.table_name(), 'show', {id: @item.get('id'), format: 'prof'})\r
139     @header = new Pettanr.Views.Scroll.PlayModule.Header({\r
140       item: @item, \r
141       operators: @operators,\r
142       caption: @item.get('title'), \r
143       icon_url: icon_url,\r
144       caption_url: caption_url,\r
145       prof_url: prof_url\r
146     })\r
147     @author = new Pettanr.Views.Show.HeaderAuthor({item: @item})\r
148     @body = new Pettanr.Views.Scroll.PlayModule.Body({\r
149       parent: this,\r
150       list: @list, \r
151       operators: @operators\r
152     })\r
153     @owner = new Pettanr.Views.Scroll.PlayModule.Owner({item: @item, operators: @operators})\r
154   \r
155   render: () ->\r
156     this.$el.html('')\r
157     this.$el.append(@header.render().el)\r
158     this.$el.append(@author.render().el)\r
159     this.$el.append(@body.render().el)\r
160     this.$el.append(@owner.render().el) if @item.is_own(@operators)\r
161     this\r
162   \r