OSDN Git Service

e5293d3780c5cf7971f3be8865e6dd604684208e
[pettanr/pettanr.git] / app / assets / javascripts / views / original_pictures / show.js.coffee
1 class Pettanr.Views.OriginalPicture.ShowModule\r
2 class Pettanr.Views.OriginalPicture.ShowModule.Header extends Pettanr.Views.Show.Header\r
3   \r
4   initialize: (options) ->\r
5     super(options)\r
6   \r
7 class Pettanr.Views.OriginalPicture.ShowModule.LinkedLicenseButton extends Tag.A\r
8   \r
9   initialize: (options) ->\r
10     item = options.item\r
11     super({\r
12       attr: {href: '/' + item.license_url()}, \r
13       content: I18n.t('original_pictures.show.select')\r
14     })\r
15   \r
16 class Pettanr.Views.OriginalPicture.ShowModule.LinkedReplaceButton extends Tag.A\r
17   \r
18   initialize: (options) ->\r
19     item = options.item\r
20     super({\r
21       attr: {href: '/' + item.edit_url()}, \r
22       content: I18n.t('original_pictures.show.replace')\r
23     })\r
24   \r
25 class Pettanr.Views.OriginalPicture.ShowModule.LinkedDropButton extends Tag.A\r
26   \r
27   initialize: (options) ->\r
28     item = options.item\r
29     super({\r
30       attr: {href: '/' + item.destroy_url()}, \r
31       content: I18n.t('link.destroy')\r
32     })\r
33   \r
34 class Pettanr.Views.OriginalPicture.ShowModule.OwnerFooter extends Backbone.View\r
35   tagName: 'div'\r
36   className: 'show-owner-footer'\r
37   \r
38   initialize: (options) ->\r
39     super(options)\r
40     @item = options.item\r
41     @license = new Pettanr.Views.OriginalPicture.ShowModule.LinkedLicenseButton({item: @item})\r
42     @edit = new Pettanr.Views.OriginalPicture.ShowModule.LinkedReplaceButton({item: @item})\r
43     @destroy = new Pettanr.Views.OriginalPicture.ShowModule.LinkedDropButton({item: @item})\r
44     @listenTo(@license, 'click', @click_license)\r
45     @listenTo(@edit, 'click', @click_edit)\r
46     @listenTo(@destroy, 'click', @click_destroy)\r
47   \r
48   render: () ->\r
49     super()\r
50     this.$el.append(@license.render().el)\r
51     this.$el.append(@edit.render().el)\r
52     dh = new Tag.H3({\r
53       content: 'expert only'\r
54     })\r
55     this.$el.append(dh.render().el)\r
56     this.$el.append(@destroy.render().el)\r
57     this\r
58   \r
59   click_license: () ->\r
60     @trigger('click:license')\r
61   \r
62   click_edit: () ->\r
63     @trigger('click:edit')\r
64   \r
65   click_destroy: () ->\r
66     @trigger('click:destroy')\r
67   \r
68 class Pettanr.Views.OriginalPicture.ShowModule.Owner extends Pettanr.Views.Show.Owner\r
69   \r
70   initialize: (options) ->\r
71     super(options)\r
72     @listenTo(@footer, 'click:license', @click_license)\r
73   \r
74   click_license: () ->\r
75     @trigger('click:footer:license')\r
76     @trigger('click:license')\r
77   \r
78   footer_class: () ->\r
79     Pettanr.Views.OriginalPicture.ShowModule.OwnerFooter\r
80   \r
81 class Pettanr.Views.OriginalPicture.Show extends Backbone.View\r
82   tagName: 'div'\r
83   \r
84   initialize: (options) ->\r
85     @item = options.item\r
86     @header = new Pettanr.Views.OriginalPicture.ShowModule.Header({\r
87       item: @item, \r
88       icon_url: @item.show_url(),\r
89       prof_url: @item.prof_url()\r
90     })\r
91     @artist = new Pettanr.Views.Show.HeaderArtist({item: @item})\r
92     @img = new Pettanr.Views.OriginalPicture.Img({item: @item})\r
93     @owner = new Pettanr.Views.OriginalPicture.ShowModule.Owner({item: @item})\r
94     @listenTo(@header, 'click:icon', @click_show)\r
95     @listenTo(@header, 'click:prof', @click_prof)\r
96     @listenTo(@artist, 'click:artist', @click_artist)\r
97     @listenTo(@owner, 'click:license', @click_license)\r
98     @listenTo(@owner, 'click:edit', @click_edit)\r
99     @listenTo(@owner, 'click:destroy', @click_destroy)\r
100   \r
101   render: () ->\r
102     this.$el.html('')\r
103     this.$el.append(@header.render().el)\r
104     this.$el.append(@artist.render().el)\r
105     this.$el.append(@img.render().el)\r
106     this.$el.append(@owner.render().el)\r
107     this\r
108   \r
109   click_show: () ->\r
110     @trigger('http_get', @item.show_url())\r
111   \r
112   click_prof: () ->\r
113     @trigger('http_get', @item.prof_url())\r
114   \r
115   click_artist: () ->\r
116     @trigger('http_get', @item.artist().show_url())\r
117   \r
118   click_license: () ->\r
119     @create_dialog()\r
120     @trigger('click:license', @dialog)\r
121     #retriever = new Pettanr.Cache.Retriever(@item.my_class(), @item.get('id'))\r
122     #@listenTo(retriever, 'retrieve', @create_dialog)\r
123     #retriever.edit()\r
124   \r
125   click_edit: () ->\r
126     @trigger('http_get', @item.edit_url())\r
127   \r
128   click_destroy: () ->\r
129     @trigger('http_get', @item.destroy_url())\r
130   \r
131   create_dialog: () ->\r
132     @dialog = new Editor.PicturePublisher.Dialog({\r
133       parent: this\r
134     })\r
135     this.$el.append(@dialog.render().el)\r
136     _this = this\r
137     @dialog.$el.dialog({\r
138       autoOpen: false,\r
139       width: 500, \r
140       height: 500,\r
141       close: (ui, event) ->\r
142         _this.close_dialog()\r
143     })\r
144     params = {\r
145       controller: 'original_picture_license_groups', action: 'new', id: @item.get('id'), \r
146     }\r
147     @listenTo(@dialog, 'success', @success)\r
148     @dialog.start(params, null)\r
149     @dialog\r
150   \r
151   is_pickable: () ->\r
152     false\r
153   \r
154   success: (resource_picture) ->\r
155     #Pettanr.cache.fix(@item)\r
156     @trigger('success', @params, @dialog)\r
157     @trigger('http_get', resource_picture.show_url())\r
158     Pettanr.cache.refresh(@item)\r
159   \r
160   close_dialog: () ->\r
161     #Pettanr.cache.release(@item)\r
162     @trigger('click:close', @dialog)\r
163   \r