4 attr :manifest, :bucket_name, :item, :mounted, :submit, :operators, :template_dir,
7 def self.factory bucket_or_form_name, item, mounted, submit, operators
8 bucket = LocalManifest.manifest.buckets[bucket_or_form_name]
9 c = if bucket and bucket.has_member?
14 c.new bucket_or_form_name, item, mounted, submit, operators
17 def initialize bucket_name, item, mounted, submit, operators
18 @bucket_name = bucket_name
22 @operators = operators
25 @manifest = LocalManifest.manifest.buckets[@bucket_name]
26 @template_dir = 'templates/r/form/'
29 @forms[@item.item_name] = Locmare::Form.new @item.item_name, @item, @mounted, false, @operators
30 self.init_forms @item.item_name, @manifest, @item
34 def fold_extend_settings params
35 @item.class.fold_extend_settings params[@item.item_name]
36 self.members_fold_extend_settings @item, params[@item.item_name], @manifest
39 def members_fold_extend_settings fold_item, attr, man
40 man.members.each do |member_name, member_manifest|
41 member_item = fold_item.__send__ member_name
42 member_item.class.fold_extend_settings attr[member_name + '_attributes']
43 self.members_fold_extend_settings member_item, attr[member_name + '_attributes'], member_manifest
48 @form_fields.each do |form_field|
49 yield form_field.field_name, form_field
53 def push_form key, form_name, item
56 def init_forms key, man, item
57 man.members.each do |member_name, member_manifest|
58 form_name = member_name # write exchange function if you want
59 member_item = item.__send__(form_name)
60 new_key = key + '.' + form_name
61 @forms[new_key] = Locmare::Form.new new_key, member_item, @mounted, false, @operators
62 self.init_forms new_key, member_manifest, member_item
67 @manifest.form_field_names.each do |form_field_name|
68 r = form_field_name.form_name.blank? ? '' : '.' + form_field_name.form_name
69 key = @item.item_name + r
71 field = form.fields[form_field_name.field_name]
76 def template_file_name
81 self.template_dir + self.template_file_name
84 def fields_template_name
85 self.template_dir + 'fields'
94 @item.table_name + '.submit.new'
96 @item.table_name + '.submit.edit'
100 def submit_template_dir
101 self.template_dir + 'submit/'
104 def submit_template_name
106 self.submit_template_dir + 'submit'
108 self.submit_template_dir + 'none'