OSDN Git Service

fix:
[pettanr/pettanr.git] / app / assets / javascripts / locmare / filer / body / file_body / file_item.js.coffee
1 class Locmare.FilerModule.BodyModule.FileBodyModule.FileItem extends Backbone.View\r
2   tagName: 'li'\r
3   \r
4   initialize: (options) ->\r
5     @file_body = options.file_body\r
6     @item = options.item\r
7     @symbol = @module().SymbolItemColumnFactory.factory this, @manifest().symbol, @item\r
8     @caption = @module().CaptionItemColumnFactory.factory this, @manifest().caption, @item\r
9     @summary = @module().SummaryItemColumnFactory.factory this, @manifest().summary, @item\r
10     @icon = @module().IconItemColumnFactory.factory this, @manifest().icon, @item\r
11     @date = @module().DateItemColumnFactory.factory this, @manifest().date, @item\r
12     @edit = @module().EditItemColumnFactory.factory this, @manifest().edit, @item\r
13     @el.className = 'filer-item filer-item-' + @item.item_name()\r
14     @listenTo(@symbol, 'click:symbol', @click_symbol)\r
15     @listenTo(@caption, 'click:caption', @click_caption)\r
16     @listenTo(@icon, 'click:prof', @click_prof)\r
17     @listenTo(@symbol, 'http_get', @http_get)\r
18     @listenTo(@caption, 'http_get', @http_get)\r
19     @listenTo(@summary, 'http_get', @http_get)\r
20     @listenTo(@icon, 'http_get', @http_get)\r
21     @listenTo(@edit, 'http_get', @http_get)\r
22     @listenTo(@edit, 'http_post', @http_post)\r
23     @listenTo(@edit, 'remove', @click_remove)\r
24     @listenTo(@edit, 'update', @click_update)\r
25   \r
26   render: () ->\r
27     this.$el.html('')\r
28     if @pick\r
29       this.$el.append(@pick.render().el)\r
30     if @symbol.is_visible()\r
31       this.$el.append(@symbol.render().el)\r
32     if @caption.is_visible()\r
33       this.$el.append(@caption.render().el)\r
34     if @summary.is_visible()\r
35       this.$el.append(@summary.render().el)\r
36     if @icon.is_visible()\r
37       this.$el.append(@icon.render().el)\r
38     if @date.is_visible()\r
39       this.$el.append(@date.render().el)\r
40     if !@pick and @edit.is_visible()\r
41       this.$el.append(@edit.render().el)\r
42     this\r
43   \r
44   filer: () ->\r
45     @file_body.filer()\r
46   \r
47   manifest: () ->\r
48     @filer().manifest\r
49   \r
50   item_name: () ->\r
51     @filer().item_name\r
52   \r
53   model: () ->\r
54     @filer().model\r
55   \r
56   items: () ->\r
57     @filer().items\r
58   \r
59   add_pick: (target_model) ->\r
60     @pick = new Pettanr.Views.Common.PickIcon({\r
61       name: target_model.pick_type(@item_name()), class_name: 'filer-item-pick'\r
62     })\r
63     @listenTo(@pick, 'click', @click_pick)\r
64     @render()\r
65   \r
66   click_pick: () ->\r
67     @trigger('click:pick', this)\r
68   \r
69   click_symbol: () ->\r
70     @trigger('click:symbol', this)\r
71   \r
72   click_caption: () ->\r
73     @trigger('click:caption', this)\r
74   \r
75   click_prof: (url) ->\r
76     @trigger('click:prof', this)\r
77     @trigger('http_get', url)\r
78   \r
79   http_get: (url) ->\r
80     @trigger('http_get', url)\r
81   \r
82   http_post: (url) ->\r
83     @trigger('http_post', url)\r
84   \r
85   click_remove: () ->\r
86     return if !confirm('remove?')\r
87     proxy = new Pettanr.Proxy({})\r
88     @listenTo(proxy, 'success', @remove_success)\r
89     @listenTo(proxy, 'fail', @remove_fail)\r
90     @listenTo(proxy, 'deny', @remove_deny)\r
91     proxy.http_post(@item.destroy_url())\r
92   \r
93   remove_success: () ->\r
94     @trigger('remove:success', this)\r
95   \r
96   remove_fail: () ->\r
97     @trigger('remove:fail')\r
98   \r
99   remove_deny: () ->\r
100   \r
101   click_update: () ->\r
102     # do fetch / update item\r
103     Pettanr.cache.refresh(@item)\r
104     @remove()\r
105     @render()\r
106   \r
107   module: () ->\r
108     Locmare.FilerModule.BodyModule.FileBodyModule.FileItemModule\r
109   \r
110 class Locmare.FilerModule.BodyModule.FileBodyModule.FileItemModule\r
111 \r