OSDN Git Service

fix js 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   item_name: () ->\r
78     @my_class().item_name()\r
79   \r
80   model_name: () ->\r
81     @item_name()\r
82   \r
83   table_name: () ->\r
84     @my_class().table_name()\r
85   \r
86   path_name: (with_engine = false) ->\r
87     @my_class().path_name(with_engine)\r
88   \r
89   pickup_item_name: () ->\r
90     @my_class().pickup_item_name()\r
91   \r
92   pickup_column_name: () ->\r
93     @my_class().pickup_column_name()\r
94   \r
95   pickup_id: () ->\r
96     @get(pickup_column_name())\r
97   \r
98   form_template: (with_engine = false) ->\r
99     @path_name(with_engine) + '/form'\r
100   \r
101   form_name: () ->\r
102     if @extend_column()\r
103       @get(@extend_column())\r
104     else\r
105       @item_name()\r
106   \r
107   boosts: (level) ->\r
108     _.each @my_class().my_peta().boost, (boost_name, boost_manifest) ->\r
109       next if level == 'read' and boost_manifest.level == 'post'\r
110       @boost boost_manifest\r
111   \r
112   boost: (boost_manifest) ->\r
113     @boosters ||= {}\r
114     @boosters[boost_manifest.name] ||= new Locmare.Booster(boost_manifest, this)\r
115   \r
116   boosters: () ->\r
117     @boosters ||= {}\r
118   \r
119   is_extend_column: (column_name) ->\r
120     @is_extend_column column_name\r
121   \r
122   is_user_visible: (operators) ->\r
123     if Manifest.manifest.magic_numbers['run_mode'] == 0\r
124       return false if not operators.is_guest\r
125     else\r
126       return false if not operators.is_resource_reader\r
127     true\r
128   \r
129   is_visible: (operators) ->\r
130     return false if not @is_user_visible(operators)\r
131     true\r
132   \r
133   is_editize: () ->\r
134     @editor\r
135   \r
136   dom_id: () ->\r
137     (@get('id') || '').toString()\r
138   \r
139   dom_pool_type: () ->\r
140     @new_record ? 'stored' : 'new'\r
141   \r
142   merge_dom_item_id: (attr, name = null) ->\r
143     if @is_editize()\r
144       _.extend(attr, {'id': @dom_item_id(name)})\r
145     else\r
146       attr\r
147   \r
148   tag_attributes: (name = null, opt = {}) ->\r
149     r = {\r
150       'data-pool_type': @dom_pool_type(), 'data-id': @dom_id(), \r
151       'data-item_name': @item_name()\r
152     }\r
153     r = @merge_dom_item_id(r, name)\r
154     _.extend(r, opt)\r
155     r\r
156   \r
157   field_tag_attributes: (column_name, opt = {}) ->\r
158     r = @tag_attributes(column_name, opt)\r
159     _.extend(r, {'data-column_name': column_name})\r
160     r\r
161   \r
162   post_attribute_key: () ->\r
163     @dom_id\r
164   \r
165   @test: () ->\r
166     console.log(@child_models())\r
167     console.log(@child_element_names())\r
168     console.log(@my_peta())\r
169     console.log(@my_manifest())\r
170     console.log()\r
171     console.log()\r
172   \r
173   test: () ->\r
174     console.log(@my_class())\r
175     console.log(@item_name())\r
176     console.log(@model_name())\r
177     console.log(@table_name())\r
178     console.log(@path_name())\r
179     console.log(@pickup_item_name())\r
180     console.log(@pickup_column_name())\r
181     console.log(@dom_id())\r
182     console.log(@dom_pool_type())\r
183     console.log(@tag_attributes())\r
184     console.log(@field_tag_attributes('id'))\r
185     console.log(@post_attribute_key())\r