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
19 @root_form = Locmare.Form.factory({
\r
20 form_name: @item.item_name(),
\r
21 use_name: 'default'
\r
27 @element_forms = _.map @item.zorderd_elements(), (element) =>
\r
28 form = Locmare.Form.factory({
\r
29 form_name: element.item_name(),
\r
30 use_name: 'default'
\r
32 element_form: true,
\r
38 save: (context, options) ->
\r
39 # merge panel and elements
\r
40 attrs = @root_form.save_data()
\r
42 _.extend(attrs, @elements_save_data())
\r
43 # save json data by panel form
\r
44 new_panel = new Pettanr.Panel.Edit()
\r
45 new_form = Locmare.Form.factory({
\r
46 form_name: new_panel.item_name(),
\r
47 use_name: 'default'
\r
51 success = (model, response) ->
\r
52 options.success.call(context, model)
\r
53 fail = (model, response) ->
\r
54 options.fail.call(context, response)
\r
55 @listenTo(new_form, 'success', success)
\r
56 @listenTo(new_form, 'fail', fail)
\r
57 new_form.save(attrs)
\r
59 elements_save_data: () ->
\r
61 _.each @element_forms, (element_form) =>
\r
62 mm = @item.my_class().my_manifest()
\r
63 em = element_form.item.my_class().my_manifest()
\r
64 child_element_name = mm.associations.child_element_name(element_form.item.my_class())
\r
65 if mm.associations.is_has_one(em)
\r
66 name = element_form.item.item_name() + '_attributes'
\r
67 d = element_form.save_data(true)
\r
69 delete d['panel_id']
\r
72 name = element_form.item.table_name() + '_attributes'
\r
74 d = element_form.save_data(true)
\r
76 delete d['panel_id']
\r