1 # form_name_with_sub_form
\r
3 # mounted: true/false
\r
4 # submit: string / 'submit'
\r
6 class Locmare.FormBase extends Backbone.View
\r
9 initialize: (options) ->
\r
10 @form_name_with_sub_form = options.form_name_with_sub_form
\r
11 @item = options.item
\r
12 @mounted = options.mounted
\r
13 @submit = options.submit
\r
14 @operators = options.operators
\r
15 if /\./.test(form_name_with_sub_form)
\r
16 @sub_form_names = form_name_with_sub_form.split('.')
\r
17 @form_name = @sub_form_names.last
\r
18 @root_form_name = @sub_form_names.shift
\r
20 @sub_form_names = []
\r
21 @form_name = @form_name_with_sub_form
\r
22 @root_form_name = @form_name
\r
23 @manifest = LocalManifest.manifest().forms[@form_name]
\r
26 fold_extend_settings: (params) ->
\r
27 @item.my_class().fold_extend_settings params[@item.item_name()]
\r
29 sub_form_name: () ->
\r
30 r = _.map @sub_form_names, (name) ->
\r
31 '[' + name + '_attributes' + ']'
\r
34 form_field_name: (field_name) ->
\r
35 @root_form_name + @sub_form_name() + '[' + field_name + ']'
\r
40 class Locmare.Bucket extends Backbone.View
\r
42 @factory: (options) ->
\r
43 @bucket_name = options.bucket_name
\r
44 @item = options.item
\r
45 @mounted = options.mounted
\r
46 @submit = options.submit
\r
47 @operators = options.operators
\r
49 bucket = LocalManifest.manifest().buckets[bucket_or_form_name]
\r
50 c = if bucket and bucket.has_member
\r
55 bucket_or_form_name,
\r
62 initialize: (options) ->
\r
63 @bucket_name = options.bucket_name
\r
64 @item = options.item
\r
65 @mounted = options.mounted
\r
66 @submit = options.submit
\r
67 @operators = options.operators
\r
70 @manifest = LocalManifest.manifest().buckets[@bucket_name]
\r
73 @forms[@item.item_name()] = new Locmare.Form({
\r
74 @item.item_name, @item, @mounted, false, @operators
\r
76 @init_forms(@item.item_name, @manifest, @item)
\r
79 fold_extend_settings: (params) ->
\r
80 @item.class.fold_extend_settings params[@item.item_name]
\r
81 self.members_fold_extend_settings @item, params[@item.item_name], @manifest
\r
83 members_fold_extend_settings: (fold_item, attr, man) ->
\r
84 man.members.each do |member_name, member_manifest|
\r
85 member_item = fold_item.__send__ member_name
\r
86 member_item.class.fold_extend_settings attr[member_name + '_attributes']
\r
87 self.members_fold_extend_settings member_item, attr[member_name + '_attributes'], member_manifest
\r
90 @form_fields.each do |form_field|
\r
91 yield form_field.field_name, form_field
\r
93 push_form: (key, form_name, item) ->
\r
95 init_forms: (key, man, item) ->
\r
96 man.members.each do |member_name, member_manifest|
\r
97 form_name = member_name # write exchange function if you want
\r
98 member_item = item.__send__(form_name)
\r
99 new_key = key + '.' + form_name
\r
100 @forms[new_key] = Locmare::Form.new new_key, member_item, @mounted, false, @operators
\r
101 self.init_forms new_key, member_manifest, member_item
\r
104 @manifest.form_field_names.each do |form_field_name|
\r
105 r = form_field_name.form_name.blank? ? '' : '.' + form_field_name.form_name
\r
106 key = @item.item_name + r
\r
108 field = form.fields[form_field_name.field_name]
\r
109 @form_fields << field
\r
116 @item.table_name() + '.submit.new'
\r
118 @item.table_name() + '.submit.edit'
\r
123 class Locmare.BucketModule
\r