OSDN Git Service

separate manifest
[pettanr/pettanr.git] / lib / locmare / form.rb
1 require_dependency "locmare/form/field"
2 module Locmare
3   class Form
4     include FormModule
5     attr :form_name, :item, :mounted, :submit, :operators, :template_dir, 
6       :fields
7     def initialize form_name, item, mounted, submit, operators
8       @form_name = form_name
9       @item = item
10       @mounted = mounted
11       @submit = submit
12       @operators = operators
13       @manifest = LocalManifest.manifest.forms[@form_name]
14       @template_dir = 'templates/r/form/'
15       @fields = {}
16       @manifest.each_field do |field_name, field_manifest| 
17         @fields[field_name] = Field.new self, field_name, field_manifest
18       end
19     end
20     
21     def each_field
22       @manifest.each_field do |field_name, field_manifest| 
23         yield field_name, @fields[field_name]
24       end
25     end
26     
27     def template_file_name
28       "form"
29     end
30     
31     def template_name
32       self.template_dir + self.template_file_name
33     end
34     
35     def submit_name
36       if @item.new_record?
37         @item.table_name + '.submit.new'
38       else
39         @item.table_name + '.submit.edit'
40       end
41     end
42     
43     def submit_template_dir
44       self.template_dir + 'submit/'
45     end
46     
47     def submit_template_name
48       if @submit
49         self.submit_template_dir + 'submit'
50       else
51         self.submit_template_dir + 'none'
52       end
53     end
54     
55     def fields_template_name
56       self.template_dir + 'fields'
57     end
58     
59     def image_dir
60       '/images/'
61     end
62     
63   end
64 end
65