OSDN Git Service

075573aed09fc728db0f5f4cc2f37c6e44ee15a4
[pettanr/pettanr.git] / app / assets / javascripts / views / resource_pictures / show.js.coffee
1 class Pettanr.Views.ResourcePicture.ShowModule\r
2 class Pettanr.Views.ResourcePicture.ShowModule.Header extends Pettanr.Views.Show.Header\r
3   \r
4   initialize: (options) ->\r
5     super(options)\r
6   \r
7 class Pettanr.Views.ResourcePicture.ShowModule.LinkedReplaceButton extends Tag.A\r
8   \r
9   initialize: (options) ->\r
10     item = options.item\r
11     op = new Pettanr.OriginalPicture({id: item.get('original_picture_id')})\r
12     super({\r
13       attr: {href: '/' + op.edit_url()}, \r
14       content: I18n.t('original_pictures.show.replace')\r
15     })\r
16   \r
17 class Pettanr.Views.ResourcePicture.ShowModule.LinkedSourceButton extends Tag.A\r
18   \r
19   initialize: (options) ->\r
20     item = options.item\r
21     op = new Pettanr.OriginalPicture({id: item.get('original_picture_id')})\r
22     super({\r
23       attr: {href: '/' + op.show_url()}, \r
24       content: I18n.t('original_pictures.show.title')\r
25     })\r
26   \r
27 class Pettanr.Views.ResourcePicture.ShowModule.LinkedStopButton extends Tag.A\r
28   \r
29   initialize: (options) ->\r
30     item = options.item\r
31     super({\r
32       attr: {href: '/' + item.destroy_url()}, \r
33       content: I18n.t('original_pictures.index.stop')\r
34     })\r
35   \r
36 class Pettanr.Views.ResourcePicture.ShowModule.OwnerFooter extends Backbone.View\r
37   tagName: 'div'\r
38   className: 'show-owner-footer'\r
39   \r
40   initialize: (options) ->\r
41     super(options)\r
42     @item = options.item\r
43     @replace = new Pettanr.Views.ResourcePicture.ShowModule.LinkedReplaceButton({item: @item})\r
44     @source = new Pettanr.Views.ResourcePicture.ShowModule.LinkedSourceButton({item: @item})\r
45     @stop = new Pettanr.Views.ResourcePicture.ShowModule.LinkedStopButton({item: @item})\r
46     @listenTo(@replace, 'click', @click_replace)\r
47     @listenTo(@source, 'click', @click_source)\r
48     @listenTo(@stop, 'click', @click_stop)\r
49   \r
50   render: () ->\r
51     super()\r
52     this.$el.append(@replace.render().el)\r
53     this.$el.append(@source.render().el)\r
54     this.$el.append(@stop.render().el)\r
55     this\r
56   \r
57   click_replace: () ->\r
58     @trigger('click:replace')\r
59   \r
60   click_source: () ->\r
61     @trigger('click:source')\r
62   \r
63   click_stop: () ->\r
64     @trigger('click:stop')\r
65   \r
66 class Pettanr.Views.ResourcePicture.ShowModule.Owner extends Pettanr.Views.Show.Owner\r
67   \r
68   initialize: (options) ->\r
69     super(options)\r
70     @listenTo(@footer, 'click:replace', @click_replace)\r
71     @listenTo(@footer, 'click:source', @click_source)\r
72     @listenTo(@footer, 'click:stop', @click_stop)\r
73   \r
74   click_replace: () ->\r
75     @trigger('click:replace')\r
76   \r
77   click_source: () ->\r
78     @trigger('click:source')\r
79   \r
80   click_stop: () ->\r
81     @trigger('click:stop')\r
82   \r
83   footer_class: () ->\r
84     Pettanr.Views.ResourcePicture.ShowModule.OwnerFooter\r
85   \r
86 class Pettanr.Views.ResourcePicture.Show extends Backbone.View\r
87   tagName: 'div'\r
88   className: 'show'\r
89   \r
90   initialize: (options) ->\r
91     @item = options.item\r
92     @header = new Pettanr.Views.ResourcePicture.ShowModule.Header({\r
93       item: @item, \r
94       icon_url: @item.show_url(),\r
95       caption_url: @item.show_url(),\r
96       prof_url: @item.prof_url()\r
97     })\r
98     @artist = new Pettanr.Views.Show.HeaderArtist({item: @item})\r
99     @img = new Pettanr.Views.ResourcePicture.Img({item: @item})\r
100     @credit = @item.credit_view(false)\r
101     @owner = new Pettanr.Views.ResourcePicture.ShowModule.Owner({item: @item, original_picture: @original_picture})\r
102     @listenTo(@header, 'click:pick', @click_pick)\r
103     @listenTo(@header, 'click:icon', @click_show)\r
104     @listenTo(@header, 'click:prof', @click_prof)\r
105     @listenTo(@artist, 'click:artist', @click_artist)\r
106     @listenTo(@owner, 'click:replace', @click_replace)\r
107     @listenTo(@owner, 'click:source', @click_source)\r
108     @listenTo(@owner, 'click:stop', @click_stop)\r
109   \r
110   render: () ->\r
111     this.$el.html('')\r
112     this.$el.append(@header.render().el)\r
113     this.$el.append(@artist.render().el)\r
114     this.$el.append(@img.render().el)\r
115     this.$el.append(@credit.render().el)\r
116     this.$el.append(@owner.render().el)\r
117     this\r
118   \r
119   click_show: () ->\r
120     @trigger('http_get', @item.show_url())\r
121   \r
122   click_prof: () ->\r
123     @trigger('http_get', @item.prof_url())\r
124   \r
125   click_artist: () ->\r
126     @trigger('http_get', @item.artist().show_url())\r
127   \r
128   click_replace: () ->\r
129     op = new Pettanr.OriginalPicture({id: @item.get('original_picture_id')})\r
130     @trigger('http_get', op.edit_url())\r
131   \r
132   click_source: () ->\r
133     op = new Pettanr.OriginalPicture({id: @item.get('original_picture_id')})\r
134     @trigger('http_get', op.show_url())\r
135   \r
136   click_stop: () ->\r
137     redirect = (url) =>\r
138       @trigger('http_get', url)\r
139     Pettanr.Proxy.destroy(@item, {redirect: redirect})\r
140   \r
141   click_pick: () ->\r
142     @trigger('pick', @item)\r
143   \r
144   is_pickable: () ->\r
145     true\r
146   \r
147   add_pick: (target_model) ->\r
148     @header.add_pick(target_model)\r
149   \r