OSDN Git Service

3bce7426f59520eab949abf9648df96328e0f73f
[pettanr/pettanr.git] / app / assets / javascripts / views / sheets / play.js.coffee
1 class Pettanr.Views.Sheet.PlayModule\r
2 class Pettanr.Views.Sheet.PlayModule.Header extends Pettanr.Views.Show.Header\r
3   \r
4   initialize: (options) ->\r
5     super(options)\r
6   \r
7 class Pettanr.Views.Sheet.PlayModule.Owner extends Pettanr.Views.Show.Owner\r
8   \r
9   initialize: (options) ->\r
10     super(options)\r
11   \r
12 class Pettanr.Views.Sheet.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     @sheet_panel = options.sheet_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: @sheet_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(@sheet_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.Sheet.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, (retriever, pid) =>\r
57       return if @licensed_pictures[pid]\r
58       @listenTo(retriever, 'retrieve', @retrieve_picture)\r
59       retriever.retrieve()\r
60   \r
61   retrieve_picture: (picture) ->\r
62     @licensed_pictures[pid] = picture\r
63     credit = picture.credit_view()\r
64     this.$el.append(credit.render().el)\r
65   \r
66 class Pettanr.Views.Sheet.PlayModule.Panel extends Backbone.View\r
67   tagName: 'div'\r
68   \r
69   initialize: (options) ->\r
70     @sheet_panel = options.sheet_panel\r
71     @operators = options.operators\r
72   \r
73   clear: () ->\r
74     this.$el.html('')\r
75     retriever = @sheet_panel.panel()\r
76     @listenTo(retriever, 'retrieve', @retrieve_panel)\r
77     retriever.retrieve()\r
78     this\r
79   \r
80   retrieve_panel: (@panel) ->\r
81     @render()\r
82   \r
83   render: () ->\r
84     this.$el.html('')\r
85     body = new Pettanr.Views.Panel.Body({\r
86       panel: @panel,\r
87       operators: @operators,\r
88       spot: null\r
89     })\r
90     this.$el.append(body.render().el)\r
91     footer = new Pettanr.Views.Panel.Footer({\r
92       sheet_panel: sheet_panel,\r
93       panel: @panel,\r
94       operators: @operators\r
95     })\r
96     this.$el.append(footer.render().el)\r
97     this.credits.push(@panel.licensed_pictures())\r
98     this\r
99   \r
100 class Pettanr.Views.Sheet.PlayModule.Panels extends Backbone.View\r
101   tagName: 'div'\r
102   \r
103   initialize: (options) ->\r
104     @parent = options.parent\r
105     @items = options.items\r
106     @credits = options.credits\r
107     @operators = options.operators\r
108   \r
109   render: () ->\r
110     this.$el.html('')\r
111     _.each @items, (sheet_panel) =>\r
112       return if not sheet_panel.has_panel()\r
113       panel_view = new Pettanr.Views.Sheet.PlayModule.Panel({\r
114         sheet_panel: sheet_panel,\r
115         operators: @operators,\r
116       })\r
117       this.$el.append(panel_view.render().el)\r
118     this\r
119   \r
120 class Pettanr.Views.Sheet.PlayModule.Body extends Backbone.View\r
121   tagName: 'div'\r
122   \r
123   initialize: (options) ->\r
124     @parent = options.parent\r
125     @list = options.list\r
126     @operators = options.operators\r
127     @items = @list.items()\r
128     if @items.length < 1\r
129       @render_empty()\r
130     else\r
131       @render()\r
132   \r
133   render_empty: () ->\r
134     this.$el.html('')\r
135     this.$el.append((new Tag.H2({content: I18n.t('sheets.play.empty')})).render().el)\r
136     this\r
137   \r
138   render: () ->\r
139     this.$el.html('')\r
140     # paginate(@pager)\r
141     credits = new Pettanr.Views.Sheet.PlayModule.Credits({parent: this})\r
142     panels = new Pettanr.Views.Sheet.PlayModule.Panels({\r
143       parent: this,\r
144       items: @items,\r
145       credits: credits,\r
146       operators: @operators\r
147     })\r
148     this.$el.append(panels.render().el)\r
149     this.$el.append(credits.render().el)\r
150     rb = new Tag.RowBreak()\r
151     this.$el.append(rb.render().el)\r
152     # paginate(@pager)\r
153     this\r
154   \r
155 class Pettanr.Views.Sheet.Play extends Backbone.View\r
156   tagName: 'div'\r
157   className: 'show'\r
158   \r
159   initialize: (options) ->\r
160     @item = options.item\r
161     @list = options.list\r
162     @operators = options.operators\r
163     icon_url = Pettanr.url(@item.table_name(), 'show', {id: @item.get('id')})\r
164     caption_url = Pettanr.url(@item.table_name(), 'play', {id: @item.get('id')})\r
165     prof_url = Pettanr.url(@item.table_name(), 'show', {id: @item.get('id'), format: 'prof'})\r
166     @header = new Pettanr.Views.Sheet.PlayModule.Header({\r
167       item: @item, \r
168       operators: @operators,\r
169       caption: @item.get('caption'), \r
170       icon_url: icon_url,\r
171       caption_url: caption_url,\r
172       prof_url: prof_url\r
173     })\r
174     @author = new Pettanr.Views.Show.HeaderAuthor({item: @item})\r
175     @body = new Pettanr.Views.Sheet.PlayModule.Body({\r
176       parent: this,\r
177       list: @list, \r
178       operators: @operators\r
179     })\r
180     @owner = new Pettanr.Views.Sheet.PlayModule.Owner({item: @item, operators: @operators})\r
181   \r
182   render: () ->\r
183     this.$el.html('')\r
184     this.$el.append(@header.render().el)\r
185     this.$el.append(@author.render().el)\r
186     this.$el.append(@body.render().el)\r
187     this.$el.append(@owner.render().el) if @item.is_own(@operators)\r
188     this\r
189   \r