X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=lib%2Flocmare%2Fform.rb;h=179c50055ffffbf21e9e9e2074251d7f6879ae60;hb=fb67ce965f46e26de56b4fa86f4600037260c702;hp=a9e30545167b434f04e3177c50c6e6cae7249227;hpb=639c24165411e37d076f8c7638b5fb3e91163585;p=pettanr%2Fpettanr.git diff --git a/lib/locmare/form.rb b/lib/locmare/form.rb index a9e30545..179c5005 100644 --- a/lib/locmare/form.rb +++ b/lib/locmare/form.rb @@ -4,7 +4,7 @@ require_dependency "locmare/form/extend_field" 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 @@ -17,6 +17,10 @@ module Locmare @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] @@ -55,9 +59,8 @@ module Locmare @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 @@ -87,23 +90,21 @@ module Locmare 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 @@ -111,6 +112,10 @@ module Locmare "extend_form" end + def template_option + {:form=> self} + end + end end