OSDN Git Service

fix js manifest
[pettanr/pettanr.git] / app / assets / javascripts / manifest / model / association.js.coffee
1 class Manifest.ModelModule.Association extends ManifestBase.Values\r
2   _belongs_to = null\r
3   _has_many = null\r
4   _has_one = null\r
5   \r
6   belongs_to: () ->\r
7     _belongs_to\r
8   \r
9   has_many: () ->\r
10     _has_many\r
11   \r
12   has_one: () ->\r
13     _has_one\r
14   \r
15   set_default: () ->\r
16     super()\r
17     @values['belongs_to'] ||= {}\r
18     @values['has_many'] ||= {}\r
19     @values['has_one'] ||= {}\r
20     \r
21   init: () ->\r
22     super()\r
23     _belongs_to = ManifestBase.load_name_values this, @values, 'belongs_to', Manifest.ModelModule.AssociationModule.BelongsTo\r
24     _has_many = ManifestBase.load_name_values this, @values, 'has_many', Manifest.ModelModule.AssociationModule.HasMany\r
25     _has_one = ManifestBase.load_name_values this, @values, 'has_one', Manifest.ModelModule.AssociationModule.HasOne\r
26   \r
27   model_name: () ->\r
28     _parent.name\r
29   \r
30   each_parent_model: () ->\r
31     _.each _belongs_to, (belongs_to_manifest, name) ->\r
32       next if not _parent.classify.is_element()\r
33       if _parent.classify.my_peta.type == 'element'\r
34         next if not belongs_to_manifest.model.my_peta.type == 'root'\r
35       if _parent.classify.my_peta.type == 'leaf'\r
36         next if not belongs_to_manifest.model.my_peta.type == 'binder'\r
37       #yield belongs_to_manifest.model\r
38   \r
39   child_element_name: (child_model) -> \r
40     if is_has_one child_model\r
41       child_model.item_name\r
42     else\r
43       child_model.table_name\r
44   \r
45   is_has_one: (child_model) ->\r
46     if _has_one[child_model.item_name]\r
47       true\r
48     else\r
49       false\r
50   \r
51 class Manifest.ModelModule.AssociationModule\r