OSDN Git Service

2ceb7b0b31779aee35d309f7c785eac891ed6ace
[pettanr/pettanr.git] / app / assets / javascripts / views / speeches / show.js.coffee
1 class Pettanr.Views.Speech.Show extends Pettanr.View.Show\r
2   \r
3   initialize: (options) ->\r
4     @header = new Pettanr.View.Show.Header(@item, this, @default_header_options())\r
5   \r
6   render: () ->\r
7     this.$el.html('')\r
8     @item.get_parent('speech_balloon', this, {\r
9       success: (@speech_balloon) =>\r
10         @speech_balloon.get_parent('panel', this, {\r
11           success: (item) =>\r
12             @panel = item.play()\r
13             @panel.fetch({\r
14               success: (model, response, opt) => \r
15                 @panel.attributes = @panel.decoded_attributes()\r
16                 @authored_by = @panel.authored_by()\r
17                 @body = new Pettanr.Views.Panel.Body({\r
18                   panel: @panel,\r
19                   spot: @item\r
20                 })\r
21                 @listenTo(@header, 'click:pick', @click_pick)\r
22                 @listenTo(@authored_by, 'click', @click_authored_by)\r
23                 this.$el.append(@header.render().el)\r
24                 this.$el.append(@authored_by.render().el)\r
25                 this.$el.append(@body.render().el)\r
26                 @add_credits()\r
27               error: (item, response, opt) =>\r
28                 @open_error_dialog(response, opt)\r
29             })\r
30           fail: (response, opt) =>\r
31             @open_error_dialog(response, opt)\r
32         })\r
33     })\r
34     this\r
35   \r
36   click_pick: () ->\r
37     @trigger('pick', @item)\r
38   \r
39   is_pickable: () ->\r
40     true\r
41   \r
42   add_pick: (target_model) ->\r
43     @header.add_pick(target_model)\r
44   \r