OSDN Git Service

add bucket
[pettanr/pettanr.git] / app / assets / javascripts / locmare / bucket / form_field_name.js.coffee
1 class Locmare.FormModule.Field extends Backbone.View\r
2   tagName: 'div'\r
3   className: 'field'\r
4   \r
5   initialize: (options) ->\r
6     @form = options.form\r
7     @field_name = options.field_name\r
8     @field_manifest = options.field_manifest\r
9     @label = Locmare.FormModule.FieldModule.LabelFactory.factory this, @field_manifest.label\r
10     @tag = Locmare.FormModule.FieldModule.TagFactory.factory this, @field_manifest.tag\r
11     @helpers = {}\r
12     _this = this\r
13     _.each @field_manifest.helpers, (helper_manifest, helper_name) ->\r
14       _this.helpers[helper_name] = Locmare.FormModule.FieldModule.HelperFactory.factory(_this, helper_manifest)\r
15     @rb = @row_break()\r
16     @options = {'data-model': @field_manifest.form_name}\r
17   \r
18   render: () ->\r
19     this.$el.html('')\r
20     this.$el.append(@label.render().el) if not @label.hidden()\r
21     this.$el.append(@tag.render().el)\r
22     _this = this\r
23     _.each @helpers, (helper) ->\r
24       _this.$el.append(helper.render().el)\r
25     this.$el.append(@rb.render().el) if @rb\r
26     this\r
27   \r
28   mounted: () ->\r
29     if @form.mounted\r
30       0\r
31     else\r
32       1\r
33   \r
34   mount_option: () ->\r
35     {'mount': @mounted()}\r
36   \r
37   item: () ->\r
38     @form.item\r
39   \r
40   value: () ->\r
41     @item().get(@field_manifest.column_name)\r
42   \r
43   options: (tag_options = {}) ->\r
44     tag_options\r
45   \r
46   form_field_name: () ->\r
47     @form.form_field_name @field_name\r
48   \r
49   form_name: () ->\r
50     @form.form_name\r
51   \r
52   row_break: () ->\r
53     if @field_manifest.row_break\r
54       new Tag.Div({\r
55         content: null,\r
56         class_name: 'row_break'\r
57       })\r
58     else\r
59       null\r
60   \r
61 class Locmare.FormModule.FieldModule\r
62 module Locmare\r
63   module BucketModule\r
64     class FieldName\r
65       attr :bucket, :field_name, :field_manifest, \r
66         :label, :tag, :helpers, :options\r
67   def initialize bucket, field_name, field_manifest\r
68     @bucket = bucket\r
69     @field_name = field_name\r
70     @field_manifest = field_manifest\r
71     @label = LabelFactory.factory self, @field_manifest.label\r
72     @tag = TagFactory.factory self, @field_manifest.tag\r
73     @helpers = {}\r
74     @field_manifest.helpers.each {|helper_name, helper_manifest|\r
75       @helpers[helper_name] = HelperFactory.factory self, helper_manifest\r
76     }\r
77     @options = {'data-model' => @field_manifest.form_name}\r
78   end\r
79   \r
80   def item\r
81     @form.item\r
82   end\r
83   \r
84   def form_field_name\r
85     self.form_name + '[' + @field_name + ']'\r
86   end\r
87   \r
88   def form_name\r
89     @form.form_name\r
90   end\r
91   \r
92   def template_dir\r
93     @form.template_dir + 'field/'\r
94   end\r
95   \r
96   def template_file_name\r
97     'default'\r
98   end\r
99   \r
100   def template_name\r
101     self.template_dir + self.template_file_name\r
102   end\r
103   \r
104   def template_option\r
105     {:field => self}\r
106   end\r
107   \r
108   def row_break_template_dir\r
109     @form.template_dir + 'row_break/'\r
110   end\r
111   \r
112   def row_break_template_file_name\r
113     if @field_manifest.row_break\r
114       'br'\r
115     else\r
116       'no_break'\r
117     end\r
118   end\r
119   \r
120   def row_break_template_name\r
121     self.row_break_template_dir + self.row_break_template_file_name\r
122   end\r
123   \r
124 end\r
125 end\r
126 end\r