OSDN Git Service

merge:
[pettanr/pettanr.git] / app / assets / javascripts / locmare / profiler / association / has_one.js.coffee
1 class Locmare.ProfilerModule.AssociationModule.HasOne extends Backbone.View\r
2   tagName: 'div'\r
3   \r
4   initialize: (options) ->\r
5     @association = options.association\r
6     @has_one_manifest = options.has_one_manifest\r
7     @filer = null\r
8     controller = Manifest.manifest().controllers[@has_one_manifest.controller_name]\r
9     action = controller.actions[@has_one_manifest.action_name]\r
10     @list = Locmare.ListGroup.list(\r
11       action.path_name(), action.name, \r
12       @profiler().operators, \r
13       {id: @item().get('id')}\r
14     )\r
15     @list.open((page_status) =>\r
16       @set_filer()\r
17       @render()\r
18     )\r
19   \r
20   clear: () ->\r
21     this.$el.html('')\r
22     this\r
23   \r
24   render: () ->\r
25     this.$el.html('')\r
26     this.$el.html(@filer.el)\r
27     this\r
28   \r
29   set_filer: () ->\r
30     @filer = new Locmare.Filer({\r
31       item_name: @has_one_model().item_name(), \r
32       items: @list.items(), \r
33       pager: @pager, \r
34       operators: @profiler().operators\r
35     })\r
36     @filer.render()\r
37     @listenTo(@filer, 'http_get', @http_get)\r
38     @listenTo(@filer, 'pick', @pick)\r
39   \r
40   item: () ->\r
41     @profiler().item\r
42   \r
43   has_one_model: () ->\r
44     @has_one_manifest.model()\r
45   \r
46   profiler: () ->\r
47     @association.profiler\r
48   \r
49   add_pick: (target_model) ->\r
50     @list.open((page_status) =>\r
51       @set_filer()\r
52       @render()\r
53       @filer.add_pick(target_model)\r
54     )\r
55   \r
56   http_get: (url) ->\r
57     @trigger('http_get', url)\r
58   \r
59   pick: (item) ->\r
60     @trigger('pick', item)\r
61   \r