OSDN Git Service

fix: views
[pettanr/pettanr.git] / app / assets / javascripts / views / panels / show.js.coffee
1 # panel: panel item\r
2 # spot: no opacity element\r
3 class Pettanr.Views.Panel.Show extends Pettanr.View.Show\r
4   \r
5   initialize: (options) ->\r
6     @panel = @item\r
7     @spot = options.spot\r
8     \r
9     @header = new Pettanr.View.Show.Header(@item, this, @default_header_options())\r
10     @authored_by = @item.authored_by()\r
11     @body = new Pettanr.Views.Panel.Body({\r
12       panel: @panel,\r
13       spot: @spot\r
14     })\r
15     inspire = new Pettanr.Inspire(@panel, this, )\r
16     @footer = new Pettanr.Views.Panel.Show.Footer(@panel, {\r
17       inspire: inspire\r
18     })\r
19     @owner = new Pettanr.View.Show.Footer(@item, this, @default_footer_options())\r
20     @listenTo(@header, 'click:pick', @click_pick)\r
21     @listenTo(@authored_by, 'click', @click_authored_by)\r
22   \r
23   render: () ->\r
24     this.$el.html('')\r
25     this.$el.append(@header.render().el)\r
26     this.$el.append(@authored_by.render().el)\r
27     this.$el.append(@body.render().el)\r
28     this.$el.append(@footer.render().el)\r
29     @add_credits()\r
30     this.$el.append(@owner.render().el) if @item.is_own()\r
31     this\r
32   \r
33   click_pick: () ->\r
34     @trigger('pick', @item)\r
35   \r
36   is_pickable: () ->\r
37     true\r
38   \r
39   add_pick: (target_model) ->\r
40     @header.add_pick(target_model)\r
41   \r
42 class Pettanr.Views.Panel.Show.Footer extends Pettanr.View\r
43   tagName: 'ul'\r
44   \r
45   constructor: (@panel, options) ->\r
46     super(options)\r
47   \r
48   initialize: (options) ->\r
49     @inspire = options.inspire\r
50   \r
51   render: () ->\r
52     super()\r
53     this.$el.html('')\r
54     this.$el.append(\r
55       Pettanr.AppHelper.distance_of_time_in_words_to_now(@panel.get('updated_at'))\r
56     )\r
57     if Pettanr.cache.operators.is_author()\r
58       inspire_button = Pettanr.View.mini_face_button(\r
59         @panel, \r
60         Pettanr.View.Image.icon_inspire_file(), {\r
61           context: this,\r
62           click: () =>\r
63             @inspire.go(@inspire.context, {\r
64               success: (item) ->\r
65                 @trigger('http_get', item.show_url())\r
66               fail: (response) ->\r
67                 console.log(response)\r
68             })\r
69         }\r
70       )\r
71       this.$el.append(inspire_button.render().el)\r
72     this\r
73   \r