1 require_dependency "locmare/form/field"
2 require_dependency "locmare/form/extend_field"
7 attr :manifest, :form_name, :item, :mounted, :operators, :template_dir,
9 def initialize form_name, item, mounted, operators
10 @form_name = form_name
13 @operators = operators
15 @manifest = LocalManifest.manifest.forms[@form_name]
16 @template_dir = 'templates/r/form/'
20 def fold_extend_settings params
21 @item.class.fold_extend_settings params[@item.item_name]
25 @manifest.field_names.each do |field_name|
26 yield field_name, @fields[field_name]
30 def template_file_name
35 self.template_dir + self.template_file_name
38 def fields_template_name
39 self.template_dir + 'fields'
51 def initialize form_name, item, mounted, submit, operators
52 super form_name, item, mounted, operators
59 @manifest.each_field do |field_name, field_manifest|
60 if boost_name = @item.class.find_boost_name(field_name)
61 extend_form_name = @item.boosters[boost_name].model_name
62 extend_item = @item.boosters[boost_name].extend_item
63 @fields[field_name] = ExtendForm.new self, extend_form_name, extend_item, @mounted, @operators, field_name
65 @fields[field_name] = Field.new self, field_name, field_manifest
72 @item.table_name + '.submit.new'
74 @item.table_name + '.submit.edit'
78 def submit_template_dir
79 self.template_dir + 'submit/'
82 def submit_template_name
84 self.submit_template_dir + 'submit'
86 self.submit_template_dir + 'none'
92 class ExtendForm < FormBase
94 attr :parent, :field_name, :field, :label
96 def initialize parent, form_name, item, mounted, operators, field_name
98 @field_name = field_name
99 super form_name, item, mounted, operators
100 @field = Field.new @parent, @field_name, @parent.manifest.fields[@field_name]
101 @label = @field.label
106 @manifest.each_field do |field_name, field_manifest|
107 @fields[field_name] = ExtendField.new self, field_name, field_manifest
111 def template_file_name