image_dir: () ->\r
'/images/'\r
\r
+ quit: () ->\r
+ null\r
+ \r
class Locmare.Form extends Locmare.FormBase\r
\r
@factory: (options) ->\r
\r
post: () ->\r
_.each @fields, (field) =>\r
+ field.fold() if field.is_extend()\r
@item.set(field.field_name, field.val())\r
@item.unset('id') # isNew use flag that id attr set\r
@trigger('http_post', @item.create_url(), this)\r
\r
put: () ->\r
_.each @fields, (field) =>\r
+ field.fold() if field.is_extend()\r
@item.set(field.field_name, field.val())\r
@trigger('http_post', @item.update_url(), this)\r
return false\r
\r
- save: (attrs = null, options = null) ->\r
+ save: () ->\r
@listenTo(@item, 'save:success', @success)\r
@listenTo(@item, 'save:fail', @fail)\r
- if attrs\r
- @item.save(attrs, options)\r
- else\r
- @item.save()\r
+ @item.save()\r
\r
success: (model, response) ->\r
@trigger('success', model, response)\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
- \r
- invalid: () ->\r
- alert('invalid')\r
- \r
save_data: () ->\r
@item.my_class().child_models()\r
attrs = {}\r
@parent = options.parent\r
@field_name = options.field_name\r
super(options)\r
+ @listenTo(@item, 'input', @input)\r
@field = new Locmare.FormModule.Field({\r
form: @parent, \r
field_name: @field_name, \r
\r
render: () ->\r
this.$el.html('')\r
+ this.$el.append(@label.render().el) if not @label.hidden()\r
@div_fields = new Locmare.FormModule.Fields({\r
fields: @fields\r
})\r
refresh: () ->\r
@field.refresh()\r
\r
+ input: (field) ->\r
+ a = {}\r
+ a[@field_name] = @val()\r
+ @parent.item.set(a, {silent: true})\r
+ @parent.item.trigger('input:' + @field_name + ':' + field)\r
+ @parent.item.trigger('input:' + @field_name)\r
+ @parent.item.trigger('input')\r
+ \r
+ fold: () ->\r
+ _.each @fields, (field) =>\r
+ @item.set(field.field_name, field.val())\r
+ \r
+ val: () ->\r
+ JSON.stringify(@item.attributes)\r
+ \r
init_fields: () ->\r
_.each @manifest.field_names, (field_name) =>\r
field_manifest = @manifest.fields[field_name]\r
# parent is field\r
@parent.form_field_name(@field_name) + '[' + extend_field_name + ']'\r
\r
+ is_extend: () ->\r
+ true\r
+ \r
class Locmare.FormModule\r
class Locmare.FormModule.Fields extends Backbone.View\r
tagName: 'div'\r