7 def initialize conf, field
13 opt = @field.tag_options.merge(@conf['options'] || {})
14 @field.element.field_tag_attributes(@field.column, @field.tag_mounted, opt)
18 view.text_field_tag @field.tag_name, @field.tag_value, self.tag_options
25 view.text_area_tag @field.tag_name, @field.tag_value, self.tag_options
32 view.number_field_tag @field.tag_name, @field.tag_value, self.tag_options
39 view.hidden_field_tag @field.tag_name, @field.tag_value, self.tag_options
45 def initialize conf, field
47 @model = Pettanr::Application::manifest.model(@field.model_name)
48 @source_conf = @model.attributes[@field.column]['source']
52 Pettanr::Application::manifest.select_items[@source_conf['type']][@source_conf['key']]
56 view.select_tag @field.tag_name,
57 view.options_for_select(view.t_select_items(self.items), :selected => @field.tag_value.to_s ), self.tag_options
64 def initialize field, name, conf
84 attr :part, :column, :type, :mounted, :model_name, :tag_options, :helpers, :form
86 'text' => Text, 'text_area' => TextArea, 'number' => Number,
87 'hidden' => Hidden, 'select' => Select
89 def initialize form, mounted, conf, manifest
95 @model_name = @conf['model'] || @form.model_name
97 @column = @conf['column']
98 @label_conf = @conf['label'] || {}
99 @field_conf = @conf['field']
100 @helper_confs = @conf['helpers'] || {}
102 @tag_options = {'data-model' => @model_name}
104 @model_manifest = Pettanr::Application::manifest.model(@model_name)
105 model_attribute_conf = @model_manifest.attributes[self.column] || {}
106 @primary_key = model_attribute_conf['primary_key']
108 @helpers = @helper_confs.map do |helper_name, helper_conf|
109 Helper.new self, helper_name, helper_conf
114 @element ||= if self.part?
115 @form.element.__send__ self.part
126 @primary_key and self.element.new_record?
130 @label_conf['type'] == nil or @label_conf['type'] != 'hidden'
134 view.t 'activerecord.attributes.' + self.model_name + '.' + self.column
138 @label_conf['row_break'] == true
143 @form.model_name + '[' + self.model_name + '_attributes][' + self.column + ']'
145 @form.model_name + '[' + self.column + ']'
150 self.element.attributes[self.column]
158 @field ||= @@type[@field_conf['type']].new @field_conf, self
166 @conf['row_break'] == true
171 attr :element, :mounted, :attributes, :fields, :model_name
172 def initialize element, operators, mounted, manifest
174 @operators = operators
178 @base = @manifest.base
179 @model_name = @base || element.model_name
181 base_field_confs = if @base
182 base_form = Pettanr::Application::manifest.form(@base)
187 extend_field_confs = @manifest.fields
188 @field_confs = base_field_confs.merge(extend_field_confs)
189 @fields = @manifest.field_names.map do |field_name|
190 field_conf = @field_confs[field_name]
191 Field.new self, @mounted, field_conf, manifest
200 @fields.each do |field|
201 next if field.ignore_field?
208 attr :form_manifest, :item_name, :manifest, :form_conf
209 def initialize form_manifest
210 @form_manifest = form_manifest
211 @item_name = @form_manifest.item_name
212 @manifest = @form_manifest.manifest
213 @form_conf = @form_manifest.conf
217 def open element, operators, mounted
218 Form.new element, operators, mounted, @form_manifest