OSDN Git Service

86884b47f1377ef170c848f2376a45f5b7180baf
[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(@item, 'destroy', @destroy)\r
24   \r
25   render: () ->\r
26     this.$el.html('')\r
27     if @pick\r
28       this.$el.append(@pick.render().el)\r
29     if @symbol.is_visible()\r
30       this.$el.append(@symbol.render().el)\r
31     if @caption.is_visible()\r
32       this.$el.append(@caption.render().el)\r
33     if @summary.is_visible()\r
34       this.$el.append(@summary.render().el)\r
35     if @icon.is_visible()\r
36       this.$el.append(@icon.render().el)\r
37     if @date.is_visible()\r
38       this.$el.append(@date.render().el)\r
39     if !@pick and @edit.is_visible()\r
40       this.$el.append(@edit.render().el)\r
41     this\r
42   \r
43   filer: () ->\r
44     @file_body.filer()\r
45   \r
46   manifest: () ->\r
47     @filer().manifest\r
48   \r
49   item_name: () ->\r
50     @filer().item_name\r
51   \r
52   model: () ->\r
53     @filer().model\r
54   \r
55   items: () ->\r
56     @filer().items\r
57   \r
58   add_pick: (target_model) ->\r
59     @pick = new Locmare.FilerModule.BodyModule.FileBodyModule.FileItemModule.Pick.factory({\r
60       parent: this,\r
61       target_model: target_model\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   destroy: (model, collection, options) ->\r
86     @trigger('remove', this)\r
87   \r
88   module: () ->\r
89     Locmare.FilerModule.BodyModule.FileBodyModule.FileItemModule\r
90   \r
91 class Locmare.FilerModule.BodyModule.FileBodyModule.FileItemModule\r
92 \r
93 \r
94 class Locmare.FilerModule.BodyModule.FileBodyModule.FileItemModule.Pick extends Backbone.View\r
95   tagName: 'div'\r
96   \r
97   @factory: (options) ->\r
98     @target_model = options.target_model\r
99     @parent = options.parent\r
100     filer = @parent.filer()\r
101     klass = if filer.item_name == @target_model.item_name()\r
102       Locmare.FilerModule.BodyModule.FileBodyModule.FileItemModule.PickModule.Inspire\r
103     else if @target_model.is_traceable(filer.item_name)\r
104       Locmare.FilerModule.BodyModule.FileBodyModule.FileItemModule.PickModule.Trace\r
105     else if filer.item_name == @target_model.pick_item_name()\r
106       Locmare.FilerModule.BodyModule.FileBodyModule.FileItemModule.PickModule.Pick\r
107     else\r
108       Locmare.FilerModule.BodyModule.FileBodyModule.FileItemModule.PickModule.None\r
109     new klass({\r
110       target_model: @target_model\r
111     })\r
112   \r
113 class Locmare.FilerModule.BodyModule.FileBodyModule.FileItemModule.PickModule\r
114 class Locmare.FilerModule.BodyModule.FileBodyModule.FileItemModule.PickModule.Base extends Backbone.View\r
115   tagName: 'div'\r
116   \r
117   initialize: (options) ->\r
118     @target_model = options.target_model\r
119     @el.className = 'filer-item-pick'\r
120     @button = @set_button()\r
121   \r
122   render: () ->\r
123     this.$el.html('')\r
124     @listenTo(@button, 'click', @click)\r
125     this.$el.append(@button.render().el)\r
126     this\r
127   \r
128   name: () ->\r
129     'none'\r
130   \r
131   icon: () ->\r
132     new Pettanr.Image.SymbolImg({attr: {src: '/images/' + @name() + '.gif'}})\r
133   \r
134   linked_icon: () ->\r
135     new Tag.A({\r
136       attr: {href: '#'},\r
137       content: @icon().render().el\r
138     })\r
139   \r
140   click: () ->\r
141     @trigger('click', this)\r
142   \r
143 class Locmare.FilerModule.BodyModule.FileBodyModule.FileItemModule.PickModule.None extends Locmare.FilerModule.BodyModule.FileBodyModule.FileItemModule.PickModule.Base\r
144   \r
145   set_button: () ->\r
146     @button = @icon()\r
147   \r
148   name: () ->\r
149     'none'\r
150   \r
151 class Locmare.FilerModule.BodyModule.FileBodyModule.FileItemModule.PickModule.Pick extends Locmare.FilerModule.BodyModule.FileBodyModule.FileItemModule.PickModule.Base\r
152   \r
153   set_button: () ->\r
154     @button = @linked_icon()\r
155   \r
156   name: () ->\r
157     'pick'\r
158   \r
159 class Locmare.FilerModule.BodyModule.FileBodyModule.FileItemModule.PickModule.Inspire extends Locmare.FilerModule.BodyModule.FileBodyModule.FileItemModule.PickModule.Base\r
160   \r
161   set_button: () ->\r
162     @button = @linked_icon()\r
163   \r
164   name: () ->\r
165     'inspire'\r
166   \r
167 class Locmare.FilerModule.BodyModule.FileBodyModule.FileItemModule.PickModule.Trace extends Locmare.FilerModule.BodyModule.FileBodyModule.FileItemModule.PickModule.Base\r
168   \r
169   set_button: () ->\r
170     @button = @linked_icon()\r
171   \r
172   name: () ->\r
173     'trace'\r
174   \r