OSDN Git Service

50bc6b9a4832230abd517fcb8ee3a58cd19217a1
[pettanr/pettanr.git] / app / assets / javascripts / locmare / profiler / association / belongs_to.js.coffee
1 class Locmare.ProfilerModule.AssociationModule.BelongsTo extends Pettanr.View\r
2   tagName: 'div'\r
3   \r
4   initialize: (options) ->\r
5     @association = options.association\r
6     @belongs_to_manifest = options.belongs_to_manifest\r
7   \r
8   clear: () ->\r
9     this.$el.html('')\r
10     @item().get_parent(@belongs_to_manifest.name, this, {\r
11       success: (@parent_item) =>\r
12         @set_filer()\r
13         @render()\r
14     })\r
15     this\r
16   \r
17   \r
18   render: () ->\r
19     this.$el.html('')\r
20     this.$el.append(@filer.el)\r
21     this\r
22   \r
23   set_filer: () ->\r
24     @filer = new Locmare.Filer({\r
25       item_name: @parent_item.item_name(), \r
26       items: [@parent_item], \r
27       pager: null, \r
28     })\r
29     @filer.render()\r
30     @listenTo(@filer, 'http_get', @http_get)\r
31     @listenTo(@filer, 'pick', @pick)\r
32   \r
33   item: () ->\r
34     @profiler().item\r
35   \r
36   parent_model: () ->\r
37     @belongs_to_manifest.model()\r
38   \r
39   parent_id: () ->\r
40     c = @model_belongs_to_manifest().id_column\r
41     @item().get(c)\r
42   \r
43   model_manifest: () ->\r
44     Manifest.manifest().models[@profiler().item_name]\r
45   \r
46   model_belongs_to_manifest: () ->\r
47     @model_manifest().associations.belongs_to[@belongs_to_manifest.item_name]\r
48   \r
49   profiler: () ->\r
50     @association.profiler\r
51   \r
52   add_pick: (target_model) ->\r
53     @parent_model().retrieve(@parent_id(), this, {\r
54       success: (@parent_item) =>\r
55         @set_filer()\r
56         @render()\r
57         @filer.add_pick(target_model)\r
58     })\r
59   \r
60   http_get: (url) ->\r
61     @trigger('http_get', url)\r
62   \r
63   pick: (item) ->\r
64     @trigger('pick', item)\r
65   \r