OSDN Git Service

add frm view
authoryasushiito <yas@pen-chan.jp>
Thu, 30 Jan 2014 09:43:31 +0000 (18:43 +0900)
committeryasushiito <yas@pen-chan.jp>
Thu, 30 Jan 2014 09:43:31 +0000 (18:43 +0900)
22 files changed:
app/views/templates/r/form/_field.html.erb [new file with mode: 0644]
app/views/templates/r/form/_form.html.erb [new file with mode: 0644]
app/views/templates/r/form/_helper.html.erb [new file with mode: 0644]
app/views/templates/r/form/_row_break.html.erb [new file with mode: 0644]
app/views/templates/r/form/label/_default.html.erb [new file with mode: 0644]
app/views/templates/r/form/label/_none.html.erb [new file with mode: 0644]
lib/manifest/form/field/field.rb
lib/manifest/local/view.rb
lib/manifest/local/view/form.rb [new file with mode: 0644]
lib/manifest/local/view/form/field.rb [new file with mode: 0644]
lib/manifest/local/view/form/field/field.rb [new file with mode: 0644]
lib/manifest/local/view/form/field/helper.rb [new file with mode: 0644]
lib/manifest/local/view/form/field/helper/helper.rb [new file with mode: 0644]
lib/manifest/local/view/form/field/label.rb [new file with mode: 0644]
lib/manifest/local/view/form/field/label/label.rb [new file with mode: 0644]
lib/manifest/local/view/form/field/tag.rb [new file with mode: 0644]
lib/manifest/local/view/form/field/tag/base.rb [new file with mode: 0644]
lib/manifest/local/view/form/field/tag/hidden.rb [new file with mode: 0644]
lib/manifest/local/view/form/field/tag/number.rb [new file with mode: 0644]
lib/manifest/local/view/form/field/tag/select.rb [new file with mode: 0644]
lib/manifest/local/view/form/field/tag/text.rb [new file with mode: 0644]
lib/manifest/local/view/form/field/tag/text_area.rb [new file with mode: 0644]

diff --git a/app/views/templates/r/form/_field.html.erb b/app/views/templates/r/form/_field.html.erb
new file mode 100644 (file)
index 0000000..6e64bbc
--- /dev/null
@@ -0,0 +1,7 @@
+<div class="field">
+  <%= render field.label.template_name, :label => field.label %>
+  <%= render field.tag.template_name, :tag => field.tag %>
+  <% field.helpers.each do |helper_name, helper| %>
+    <%= render helper.template_name, :helper => helper %>
+  <% end %>
+</div>
diff --git a/app/views/templates/r/form/_form.html.erb b/app/views/templates/r/form/_form.html.erb
new file mode 100644 (file)
index 0000000..fb8ca18
--- /dev/null
@@ -0,0 +1,6 @@
+<%= form_for(form.element, :html => form.element.tag_attributes('form', 'data-form-name' => form.name)) do |f| %>
+  <% form.each_field do |field| %>
+    <%= render field.template_name, :field => field %>
+    <%= render field.row_break.template_name, :row_break => field.row_break %>
+  <% end %>
+<% end %>
diff --git a/app/views/templates/r/form/_helper.html.erb b/app/views/templates/r/form/_helper.html.erb
new file mode 100644 (file)
index 0000000..aa7b685
--- /dev/null
@@ -0,0 +1,11 @@
+    <span id="<%= form.element.tag_id 'helpers' -%>">
+      <% field.helpers.each do |helper| %>
+        <% if helper.wrapper %>
+          <div class="<%= helper.wrapper -%>">
+        <% end %>
+        <%= render helper.path, :helper => helper %>
+        <% if helper.wrapper %>
+          </div>
+        <% end %>
+      <% end %>
+    </span>
diff --git a/app/views/templates/r/form/_row_break.html.erb b/app/views/templates/r/form/_row_break.html.erb
new file mode 100644 (file)
index 0000000..39aad2c
--- /dev/null
@@ -0,0 +1,3 @@
+<% if field.row_break? %>
+  <div class="row_break"></div>
+<% end %>
diff --git a/app/views/templates/r/form/label/_default.html.erb b/app/views/templates/r/form/label/_default.html.erb
new file mode 100644 (file)
index 0000000..04d7b26
--- /dev/null
@@ -0,0 +1,6 @@
+<label>
+<%= field.label self %>
+<% if field.label_break? %>
+  <br>
+<% end %>
+</label>
diff --git a/app/views/templates/r/form/label/_none.html.erb b/app/views/templates/r/form/label/_none.html.erb
new file mode 100644 (file)
index 0000000..e69de29
index 97ae78b..8437232 100644 (file)
@@ -37,7 +37,7 @@ module Manifest
         @model_name = @args['model_name']
         @column_name = @args['column_name']
         @label = LabelFactory.factory(self, @args['label'])
-        @field = TagFactory.factory(self, @args['tag'])
+        @tag = TagFactory.factory(self, @args['tag'])
         @helper = HelperFactory.factory(self, @args['helper'])
         @row_break = @args['row_break']
       end
index aa1c7f1..695e96d 100644 (file)
@@ -1,11 +1,13 @@
 require_dependency "manifest/local/view/filer"
+require_dependency "manifest/local/view/form"
 module Manifest
   class View
     attr :manifest, 
-      :filers, :caption, :summary, :icon, :date, :edit
+      :filers, :forms, :summary, :icon, :date, :edit
     def initialize manifest
       @manifest = manifest
       @filers = ViewModule::Filer.manager(@manifest.filers)
+      @forms = ViewModule::Form.manager(@manifest.forms)
     end
     
   end
diff --git a/lib/manifest/local/view/form.rb b/lib/manifest/local/view/form.rb
new file mode 100644 (file)
index 0000000..721180d
--- /dev/null
@@ -0,0 +1,44 @@
+require_dependency "manifest/local/view/form/field"
+module Manifest
+  module ViewModule
+    module FormModule
+      class FormView
+        attr :filer_manifest, :item_name, :manifest, :filer_conf, 
+          :fields, :label, :helper, :row_break
+        def initialize form_manager, item, operators, mounted
+          @form_manifest = form_manifest
+          @fields = @items.map {|item| 
+            FieldView.new self, @filer_manifest
+          }
+        end
+        
+        def render view
+        end
+        
+      end
+    end
+    
+    class Form
+      include FormModule
+      def self.manager forms
+        form_views = {}
+        forms.each {|form_name, form_manifest|
+          form_views[form_name] = self.new(form_name, form_manifest)
+        }
+        form_views
+      end
+      
+      attr :form_name, :form_manifest
+      def initialize form_name, form_manifest
+        @form_name = form_name
+        @form_manifest = form_manifest
+      end
+      
+      def open element, operators, mounted
+        FormView.new @form_manifest, item, operators, mounted
+      end
+      
+    end
+  end
+  
+end
diff --git a/lib/manifest/local/view/form/field.rb b/lib/manifest/local/view/form/field.rb
new file mode 100644 (file)
index 0000000..18a81ae
--- /dev/null
@@ -0,0 +1,19 @@
+module Manifest
+  module ViewModule
+    module FormModule
+      class FieldView
+        attr :filer_manifest, :item_name, :manifest, :filer_conf, 
+          :label, :tag, :helpers, :row_break
+        def initialize form_manager, item, operators, mounted
+          @form_manifest = form_manifest
+          @label = LabelView
+          @tag = TagView
+          @helpers = HelperView
+          @row_break = View
+        end
+        
+        def render view
+        end
+        
+      end
+    end
diff --git a/lib/manifest/local/view/form/field/field.rb b/lib/manifest/local/view/form/field/field.rb
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/lib/manifest/local/view/form/field/helper.rb b/lib/manifest/local/view/form/field/helper.rb
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/lib/manifest/local/view/form/field/helper/helper.rb b/lib/manifest/local/view/form/field/helper/helper.rb
new file mode 100644 (file)
index 0000000..67cd573
--- /dev/null
@@ -0,0 +1,42 @@
+module Manifest
+  module FormModule
+    module FieldModule
+      module HelperModule
+        class Base
+          attr :field, :helper_manifest
+          
+          def initialize field, helper_manifest
+            @field = field
+            @helper_manifest = helper_manifest
+            self.set_default
+            self.init
+          end
+          
+          def set_default
+            @helper_manifest['args'] ||= {}
+          end
+          
+          def init
+            @args = @helper_manifest['args']
+          end
+          
+          def form_name
+            @field.form_name
+          end
+          
+          def field_name
+            @field.field_name
+          end
+          
+        end
+        
+        class Default < Base
+        end
+        
+        class None < Base
+        end
+        
+      end
+    end
+  end
+end
diff --git a/lib/manifest/local/view/form/field/label.rb b/lib/manifest/local/view/form/field/label.rb
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/lib/manifest/local/view/form/field/label/label.rb b/lib/manifest/local/view/form/field/label/label.rb
new file mode 100644 (file)
index 0000000..1e7381a
--- /dev/null
@@ -0,0 +1,42 @@
+module Manifest
+  module FormModule
+    module FieldModule
+      module LabelModule
+        class Base
+          attr :field, :label_manifest
+          
+          def initialize field, label_manifest
+            @field = field
+            @label_manifest = label_manifest
+            self.set_default
+            self.init
+          end
+          
+          def set_default
+            @label_manifest['args'] ||= {}
+          end
+          
+          def init
+            @args = @label_manifest['args']
+          end
+          
+          def form_name
+            @field.form_name
+          end
+          
+          def field_name
+            @field.field_name
+          end
+          
+        end
+        
+        class Default < Base
+        end
+        
+        class None < Base
+        end
+        
+      end
+    end
+  end
+end
diff --git a/lib/manifest/local/view/form/field/tag.rb b/lib/manifest/local/view/form/field/tag.rb
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/lib/manifest/local/view/form/field/tag/base.rb b/lib/manifest/local/view/form/field/tag/base.rb
new file mode 100644 (file)
index 0000000..ad0f006
--- /dev/null
@@ -0,0 +1,53 @@
+module Manifest
+  module FormModule
+    module FieldModule
+      module TagModule
+        class Base
+          attr :field, :tag_manifest, 
+            :size
+          
+          def initialize field, tag_manifest
+            @field = field
+            @tag_manifest = tag_manifest
+            self.set_default
+            self.init
+          end
+          
+          def set_default
+            @tag_manifest['args'] ||= {}
+          end
+          
+          def init
+            @args = @tag_manifest['args']
+            @size = @args['size']
+          end
+          
+          def form_name
+            @field.form_name
+          end
+          
+          def field_name
+            @field.field_name
+          end
+          
+        end
+        
+        class TextTag < Base
+        end
+        
+        class NumberTag < Base
+        end
+        
+        class TextAreaTag < Base
+        end
+        
+        class SelectTag < Base
+        end
+        
+        class HiddenTag < Base
+        end
+        
+      end
+    end
+  end
+end
diff --git a/lib/manifest/local/view/form/field/tag/hidden.rb b/lib/manifest/local/view/form/field/tag/hidden.rb
new file mode 100644 (file)
index 0000000..087c594
--- /dev/null
@@ -0,0 +1,11 @@
+module Manifest
+  module FormModule
+    module FieldModule
+      module TagModule
+        class HiddenTag < Base
+        end
+        
+      end
+    end
+  end
+end
diff --git a/lib/manifest/local/view/form/field/tag/number.rb b/lib/manifest/local/view/form/field/tag/number.rb
new file mode 100644 (file)
index 0000000..1dac3d4
--- /dev/null
@@ -0,0 +1,11 @@
+module Manifest
+  module FormModule
+    module FieldModule
+      module TagModule
+        class NumberTag < Base
+        end
+        
+      end
+    end
+  end
+end
diff --git a/lib/manifest/local/view/form/field/tag/select.rb b/lib/manifest/local/view/form/field/tag/select.rb
new file mode 100644 (file)
index 0000000..0a20eec
--- /dev/null
@@ -0,0 +1,11 @@
+module Manifest
+  module FormModule
+    module FieldModule
+      module TagModule
+        class SelectTag < Base
+        end
+        
+      end
+    end
+  end
+end
diff --git a/lib/manifest/local/view/form/field/tag/text.rb b/lib/manifest/local/view/form/field/tag/text.rb
new file mode 100644 (file)
index 0000000..24188fb
--- /dev/null
@@ -0,0 +1,11 @@
+module Manifest
+  module FormModule
+    module FieldModule
+      module TagModule
+        class TextTag < Base
+        end
+        
+      end
+    end
+  end
+end
diff --git a/lib/manifest/local/view/form/field/tag/text_area.rb b/lib/manifest/local/view/form/field/tag/text_area.rb
new file mode 100644 (file)
index 0000000..0dae212
--- /dev/null
@@ -0,0 +1,11 @@
+module Manifest
+  module FormModule
+    module FieldModule
+      module TagModule
+        class TextAreaTag < Base
+        end
+        
+      end
+    end
+  end
+end