1 class Pettanr.Inspire
\r
3 constructor: (@item) ->
\r
4 _.extend(this, Backbone.Events)
\r
6 go: (context, options) ->
\r
11 delete @item.attributes['id']
\r
15 @save(context, options)
\r
16 fail: (model, response) ->
\r
17 options.fail.call(context, response)
\r
21 @root_form = Locmare.Form.factory({
\r
22 form_name: @item.item_name(),
\r
23 use_name: 'default'
\r
29 @element_forms = _.map @item.zorderd_elements(), (element) =>
\r
30 form = Locmare.Form.factory({
\r
31 form_name: element.item_name(),
\r
32 use_name: 'default'
\r
34 element_form: true,
\r
40 save: (context, options) ->
\r
41 # merge panel and elements
\r
42 attrs = @root_form.save_data()
\r
44 _.extend(attrs, @elements_save_data())
\r
45 # save json data by panel form
\r
46 new_panel = new Pettanr.Panel.Edit()
\r
47 new_form = Locmare.Form.factory({
\r
48 form_name: new_panel.item_name(),
\r
49 use_name: 'default'
\r
53 success = (model, response) ->
\r
54 options.success.call(context, model)
\r
55 fail = (model, response) ->
\r
56 options.fail.call(context, response)
\r
57 @listenTo(new_form, 'success', success)
\r
58 @listenTo(new_form, 'fail', fail)
\r
59 new_form.save(attrs)
\r
61 elements_save_data: () ->
\r
63 _.each @element_forms, (element_form) =>
\r
64 mm = @item.my_class().my_manifest()
\r
65 em = element_form.item.my_class().my_manifest()
\r
66 child_element_name = mm.associations.child_element_name(element_form.item.my_class())
\r
67 if mm.associations.is_has_one(em)
\r
68 name = element_form.item.item_name() + '_attributes'
\r
69 d = element_form.save_data(true)
\r
71 delete d['panel_id']
\r
74 name = element_form.item.table_name() + '_attributes'
\r
76 d = element_form.save_data(true)
\r
78 delete d['panel_id']
\r