OSDN Git Service

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