+++ /dev/null
-ManifestBase.require_modules "local_manifest/form/field/",
- %w|tag label helper|
-
-module LocalManifest
- module FormModule
- class Field < ManifestBase::TypeNameArgs
- include FieldModule
-
- attr :model_name, :column_name, :label, :tag, :helpers, :row_break
-
- def set_default
- super
- n = @name.split '.'
- if n.size > 1
- @args['model_name'] ||= n[0]
- @args['column_name'] ||= n[1]
- else
- @args['model_name'] ||= self.form.name
- @args['column_name'] ||= @name
- end
- @args['label'] ||= {}
- @args['tag'] ||= {}
- @args['helpers'] ||= {}
- @args['row_break'] ||= true
- end
-
- def init
- super
- @model_name = @args['model_name']
- @column_name = @args['column_name']
- @label = ManifestBase.load_type_args self, @args, 'label', LabelFactory
- @tag = ManifestBase.load_type_args self, @args, 'tag', TagFactory
- @helpers = ManifestBase.load_type_name_args self, @args, 'helpers', HelperFactory
- @row_break = @args['row_break']
- end
-
- def part?
- @part_name != nil
- end
-
- def form_name
- @parent.name
- end
-
- def form
- @parent
- end
-
- end
-
- class ElementField < Field
- def form_field_name
- @model_name + '[' + @column_name + ']'
- end
-
- end
-
- class PartField < Field
- attr :part_name
-
- def set_default
- super
- @args['part_name'] ||= @args['model_name']
- end
-
- def init
- super
- @part_name = @args['part_name']
- end
-
- def form_field_name
- @model_name + '[' + @model_name + '_attributes][' + @column_name + ']'
- end
-
- end
-
- end
-end