OSDN Git Service

Merge branch 'v06' of git.sourceforge.jp:/gitroot/pettanr/pettanr into v06
[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.History extends Pettanr.View\r
3   \r
4   initialize: (options) ->\r
5     super(options)\r
6     @item = options.item\r
7     @list = @item.history()\r
8   \r
9   render: () ->\r
10     this.$el.html('')\r
11     h = new Tag.H2({\r
12       content: I18n.t('original_pictures.show.history')\r
13     })\r
14     this.$el.append(h.render().el)\r
15     @list.fetch().done =>\r
16       _.each @list.models, (picture) =>\r
17         view = picture.history_view()\r
18         @listenTo(view, 'http_get', @http_get)\r
19         this.$el.append(view.render().el)\r
20     this\r
21   \r
22   http_get: (url) ->\r
23     @trigger('http_get', url)\r
24   \r
25 class Pettanr.Views.OriginalPicture.Show extends Pettanr.View.Show\r
26   \r
27   initialize: (options) ->\r
28     @header = new Pettanr.View.Show.Header(@item, this, @default_header_options())\r
29     @authored_by = @item.authored_by()\r
30     @img = @item.real_picture()\r
31     @listenTo(@header, 'click:pick', @click_pick)\r
32     @listenTo(@authored_by, 'click', @click_authored_by)\r
33     @owner = new Pettanr.View.Show.Footer(@item, this, {\r
34       actions: {\r
35         select: {\r
36           url: @original_picture.license_url(),\r
37           dic_name: 'original_pictures.show.select', \r
38           click: () =>\r
39             @create_dialog()\r
40             @trigger('click:license', @dialog)\r
41         }, \r
42         replace: {\r
43           url: @original_picture.edit_url(),\r
44           dic_name: 'original_pictures.show.replace', \r
45           click: () =>\r
46             @trigger('http_get', @item.edit_url())\r
47         }, \r
48         destroy: {\r
49           url: @item.destroy_url(),\r
50           click: () =>\r
51             redirect = (url) =>\r
52               @trigger('http_get', url)\r
53             Pettanr.Proxy.destroy(@item, {redirect: redirect})\r
54         }, \r
55       }, \r
56     })\r
57     @history = new Pettanr.Views.OriginalPicture.ShowModule.History({item: @item})\r
58     @listenTo(@history, 'http_get', @http_get)\r
59   \r
60   render: () ->\r
61     this.$el.html('')\r
62     this.$el.append(@header.render().el)\r
63     this.$el.append(@authored_by.render().el)\r
64     this.$el.append(@img.render().el)\r
65     @item.get_parent('picture', this, {\r
66       success: (@picture) =>\r
67         @credit = new Pettanr.View.Credit(@picture, {\r
68           icon: {\r
69             click: () =>\r
70               @trigger('http_get', @picture.show_url())\r
71           }\r
72         })\r
73         this.$el.append(@credit.render().el)\r
74         this.$el.append(@owner.render().el)\r
75     })\r
76     this.$el.append(@history.render().el)\r
77     this\r
78   \r
79   http_get: (url) ->\r
80     @trigger('http_get', url)\r
81   \r
82   create_dialog: () ->\r
83     @dialog = new Editor.PicturePublisher.Dialog({\r
84       parent: this\r
85     })\r
86     this.$el.append(@dialog.render().el)\r
87     _this = this\r
88     @dialog.$el.dialog({\r
89       autoOpen: false,\r
90       width: 500, \r
91       height: 500,\r
92       close: (ui, event) ->\r
93         _this.close_dialog()\r
94     })\r
95     params = {\r
96       controller: 'original_picture_license_groups', action: 'new', id: @item.get('id'), \r
97     }\r
98     @listenTo(@dialog, 'success', @success)\r
99     @dialog.start(params, null)\r
100     @dialog\r
101   \r
102   is_pickable: () ->\r
103     false\r
104   \r
105   success: (resource_picture) ->\r
106     #Pettanr.cache.fix(@item)\r
107     @trigger('success', @params, @dialog)\r
108     @trigger('http_get', resource_picture.show_url())\r
109     Pettanr.cache.refresh(@item)\r
110   \r
111   close_dialog: () ->\r
112     #Pettanr.cache.release(@item)\r
113     @trigger('click:close', @dialog)\r
114   \r