OSDN Git Service

fix filer
[pettanr/pettanr.git] / app / assets / javascripts / peta / item.js.coffee
1 class Peta.Item extends Backbone.Model\r
2   @child_models: () ->\r
3     @my_manifest().child_models()\r
4   \r
5   @child_element_names: () ->\r
6     @my_manifest().child_element_names()\r
7   \r
8   # ClassMethods\r
9   \r
10   my_class: () ->\r
11     Pettanr[@constructor.name]\r
12   \r
13   @my_peta: () ->\r
14     return null if not Manifest.manifest().items\r
15     Manifest.manifest().items[@item_name()]\r
16   \r
17   @my_manifest: () ->\r
18     return null if not Manifest.manifest().models\r
19     Manifest.manifest().models[@item_name()]\r
20   \r
21   @singular: () ->\r
22     'Name'\r
23   \r
24   @plural: () ->\r
25     'Names'\r
26   \r
27   @class_name: () ->\r
28     @singular()\r
29   \r
30   @model_name: () ->\r
31     @class_name()\r
32   \r
33   @item_name: () ->\r
34     Pettanr.underscore(@singular())\r
35   \r
36   @table_name: () ->\r
37     Pettanr.underscore(@plural())\r
38   \r
39   @is_item: () ->\r
40     true\r
41   \r
42   @is_content: () ->\r
43     false\r
44   \r
45   @is_element: () ->\r
46     false\r
47   \r
48   @is_root: () ->\r
49     false\r
50  \r
51   @parent_model: () ->\r
52     null\r
53   \r
54   @path_name: (with_engine = false) ->\r
55     @table_name()\r
56   \r
57   @pickup_item_name: () ->\r
58     @item_name()\r
59   \r
60   @pickup_column_name: () ->\r
61     'id'\r
62   \r
63   @find_boost_name: (column_name) ->\r
64     my_peta().find_boost_name column_name\r
65  \r
66   @is_extend_column: (column_name) -> \r
67     my_peta().is_extend_column column_name\r
68   \r
69   @fold_extend_settings: (attr) ->\r
70     _.each my_peta().boost, (name, manifest) ->\r
71       my_settings = attr[manifest.settings_column_name]\r
72       if my_settings\r
73         attr[manifest.settings_column_name] = my_settings.to_json\r
74   \r
75   #InstanceMethods\r
76   \r
77   singular: () ->\r
78     Pettanr[@constructor.name].singular()\r
79   \r
80   plural: () ->\r
81     Pettanr[@constructor.name].plural()\r
82   \r
83   item_name: () ->\r
84     @my_class().item_name()\r
85   \r
86   model_name: () ->\r
87     @item_name()\r
88   \r
89   table_name: () ->\r
90     @my_class().table_name()\r
91   \r
92   path_name: (with_engine = false) ->\r
93     @my_class().path_name(with_engine)\r
94   \r
95   pickup_item_name: () ->\r
96     @my_class().pickup_item_name()\r
97   \r
98   pickup_column_name: () ->\r
99     @my_class().pickup_column_name()\r
100   \r
101   pickup_id: () ->\r
102     @get(pickup_column_name())\r
103   \r
104   form_template: (with_engine = false) ->\r
105     @path_name(with_engine) + '/form'\r
106   \r
107   form_name: () ->\r
108     if @extend_column()\r
109       @get(@extend_column())\r
110     else\r
111       @item_name()\r
112   \r
113   boosts: (level) ->\r
114     _.each @my_class().my_peta().boost, (boost_name, boost_manifest) ->\r
115       next if level == 'read' and boost_manifest.level == 'post'\r
116       @boost boost_manifest\r
117   \r
118   boost: (boost_manifest) ->\r
119     @boosters ||= {}\r
120     @boosters[boost_manifest.name] ||= new Locmare.Booster(boost_manifest, this)\r
121   \r
122   boosters: () ->\r
123     @boosters ||= {}\r
124   \r
125   is_extend_column: (column_name) ->\r
126     @is_extend_column column_name\r
127   \r
128   is_user_visible: (operators) ->\r
129     if Manifest.manifest.magic_numbers['run_mode'] == 0\r
130       return false if not operators.is_guest\r
131     else\r
132       return false if not operators.is_resource_reader\r
133     true\r
134   \r
135   is_visible: (operators) ->\r
136     return false if not @is_user_visible(operators)\r
137     true\r
138   \r
139   is_editize: () ->\r
140     @editor\r
141   \r
142   dom_id: () ->\r
143     (@get('id') || '').toString()\r
144   \r
145   dom_pool_type: () ->\r
146     @new_record ? 'stored' : 'new'\r
147   \r
148   merge_dom_item_id: (attr, name = null) ->\r
149     if @is_editize()\r
150       _.extend(attr, {'id': @dom_item_id(name)})\r
151     else\r
152       attr\r
153   \r
154   tag_attributes: (name = null, opt = {}) ->\r
155     r = {\r
156       'data-pool_type': @dom_pool_type(), 'data-id': @dom_id(), \r
157       'data-item_name': @item_name()\r
158     }\r
159     r = @merge_dom_item_id(r, name)\r
160     _.extend(r, opt)\r
161     r\r
162   \r
163   field_tag_attributes: (column_name, opt = {}) ->\r
164     r = @tag_attributes(column_name, opt)\r
165     _.extend(r, {'data-column_name': column_name})\r
166     r\r
167   \r
168   post_attribute_key: () ->\r
169     @dom_id\r
170   \r
171   @test: () ->\r
172     console.log(@child_models())\r
173     console.log(@child_element_names())\r
174     console.log(@my_peta())\r
175     console.log(@my_manifest())\r
176     console.log()\r
177     console.log()\r
178   \r
179   test: () ->\r
180     console.log(@my_class())\r
181     console.log(@item_name())\r
182     console.log(@model_name())\r
183     console.log(@table_name())\r
184     console.log(@path_name())\r
185     console.log(@pickup_item_name())\r
186     console.log(@pickup_column_name())\r
187     console.log(@dom_id())\r
188     console.log(@dom_pool_type())\r
189     console.log(@tag_attributes())\r
190     console.log(@field_tag_attributes('id'))\r
191     console.log(@post_attribute_key())\r