module Locmare
class FormBase
include FormModule
- attr :form_name, :item, :mounted, :operators, :template_dir,
+ attr :manifest, :form_name, :item, :mounted, :operators, :template_dir,
:fields
def initialize form_name, item, mounted, operators
@form_name = form_name
@fields = {}
end
+ def fold_extend_settings params
+ @item.class.fold_extend_settings params[@item.item_name]
+ end
+
def each_field
@manifest.field_names.each do |field_name|
yield field_name, @fields[field_name]
@manifest.each_field do |field_name, field_manifest|
if boost_name = @item.class.find_boost_name(field_name)
extend_form_name = @item.boosters[boost_name].model_name
- extend_form_manifest = LocalManifest.manifest.forms[extend_form_name]
extend_item = @item.boosters[boost_name].extend_item
- @fields[field_name] = ExtendForm.new self, extend_form_name, extend_item, @mounted, @operators
+ @fields[field_name] = ExtendForm.new self, extend_form_name, extend_item, @mounted, @operators, field_name
else
@fields[field_name] = Field.new self, field_name, field_manifest
end
end
class ExtendForm < FormBase
- attr :parent
+ include FieldModule
+ attr :parent, :field_name, :field, :label
- def initialize parent, form_name, item, mounted, operators
+ def initialize parent, form_name, item, mounted, operators, field_name
@parent = parent
+ @field_name = field_name
super form_name, item, mounted, operators
+ @field = Field.new @parent, @field_name, @parent.manifest.fields[@field_name]
+ @label = @field.label
self.init_fields
end
def init_fields
@manifest.each_field do |field_name, field_manifest|
- if boost_name = @item.class.find_boost_name(field_name)
- extend_form_name = @item.boosters[boost_name].model_name
- extend_form_manifest = LocalManifest.manifest.forms[extend_form_name]
- @fields[field_name] = ExtendField.new self, field_name, field_manifest, @item.boosters[n].extend_item
- else
- # @fields[field_name] = Field.new self, field_name, field_manifest
- end
+ @fields[field_name] = ExtendField.new self, field_name, field_manifest
end
end
"extend_form"
end
+ def template_option
+ {:form=> self}
+ end
+
end
end