\r
initialize: (options) ->\r
@form_name = options.form_name #_with_sub_form\r
+ @use_name = options.use_name || 'default'\r
@item = options.item\r
@mounted = options.mounted\r
@submit = options.submit\r
@sub_form_names = []\r
#@form_name = @form_name\r
@root_form_name = @form_name\r
- @manifest = LocalManifest.manifest().forms[@form_name]\r
+ @manifest = LocalManifest.manifest().forms[@form_name].uses[@use_name]\r
@fields = {}\r
@on('change:field', @change)\r
\r
@delegateEvents({'submit': method_type})\r
this\r
\r
+ refresh: () ->\r
+ _.each @fields, (field) =>\r
+ field.refresh()\r
+ _.each @child_forms, (child_form, name) =>\r
+ child_form.refresh()\r
+ \r
add_element: (element) ->\r
form = Locmare.Form.factory({\r
form_name: element.item_name(), \r
+ use_name: @use_name,\r
item: element, \r
mounted: @mounted, \r
submit: null, \r
@fields[field_name] = new Locmare.ExtendForm({\r
parent: this, \r
form_name: extend_form_name, \r
+ use_name: @use_name,\r
item: extend_item, \r
mounted: @mounted, \r
operators: @operators, \r
post: () ->\r
_.each @fields, (field) =>\r
@item.set(field.field_name, field.val())\r
- if @item.save()\r
- window.router.navigate('/' + @item.table_name() + '/' + Pettanr.to_s(@item.get('id')), true)\r
- return false\r
- else\r
- alert('invalid')\r
+ @item.unset('id') # isNew use flag that id attr set\r
+ @trigger('http_post', @item.create_url(), this)\r
+ return false\r
\r
put: () ->\r
_.each @fields, (field) =>\r
@item.set(field.field_name, field.val())\r
- @item.overwrite({operators: @operators})\r
- if @save()\r
- @valid()\r
- else\r
- @invalid()\r
+ @trigger('http_post', @item.update_url(), this)\r
+ return false\r
\r
- save: (attrs = null) ->\r
+ save: (attrs = null, options = null) ->\r
+ @listenTo(@item, 'save:success', @success)\r
+ @listenTo(@item, 'save:fail', @fail)\r
if attrs\r
- @item.save(attrs)\r
+ @item.save(attrs, options)\r
else\r
@item.save()\r
\r
+ success: (model, response) ->\r
+ @trigger('success', model, response)\r
+ \r
+ fail: (model, response) ->\r
+ @trigger('fail', response)\r
+ \r
valid: () ->\r
window.router.navigate('/' + @item.table_name() + '/' + Pettanr.to_s(@item.get('id')), true)\r
return false\r
this.$el.append(@div_fields.render().el)\r
this\r
\r
+ refresh: () ->\r
+ @field.refresh()\r
+ \r
init_fields: () ->\r
_.each @manifest.field_names, (field_name) =>\r
field_manifest = @manifest.fields[field_name]\r