OSDN Git Service

fix form extend
[pettanr/pettanr.git] / lib / local_manifest / form / field.rb
1 ManifestBase.require_modules "local_manifest/form/field/", 
2   %w|tag label helper|
3
4 module LocalManifest
5   module FormModule
6     class Field < ManifestBase::NameValues
7       include FieldModule
8       
9       attr :label, :tag, :helpers, :row_break, :boost_name
10       
11       def set_default
12         super
13         @values['label'] ||= {}
14         @values['tag'] ||= {}
15         @values['helpers'] ||= {}
16         @values['row_break'] ||= true
17       end
18       
19       def init
20         super
21         @label = ManifestBase.load_type_args self, @values, 'label', LabelFactory
22         @tag = ManifestBase.load_type_args self, @values, 'tag', TagFactory
23         @helpers = ManifestBase.load_type_name_args self, @values, 'helpers', HelperFactory
24         @row_break = @values['row_break']
25         # @boost_name = @values['boost_name']
26       end
27       
28       def part?
29         @part_name != nil 
30       end
31       
32       def form_name
33         @parent.name
34       end
35       
36       def column_name
37         @name
38       end
39       
40       def model_name
41         form_name
42       end
43       
44       def form
45         @parent
46       end
47       
48     end
49     
50     class ElementField < Field
51     end
52     
53     class PartField < Field
54       attr :part_name
55       
56       def set_default
57         super
58         @values['part_name'] ||= @values['model_name']
59       end
60       
61       def init
62         super
63         @part_name = @values['part_name']
64       end
65       
66       def form_field_name
67         @model_name + '[' + @model_name + '_attributes][' + @column_name + ']'
68       end
69       
70     end
71     
72   end
73 end