1 class Pettanr.Inspire
\r
3 constructor: (@item) ->
\r
4 _.extend(this, Backbone.Events)
\r
6 go: (context, options) ->
\r
7 @item = @item.with_elements() # retake panel for 'with_elements' mode
\r
8 @item.fetch({cache: false}).done =>
\r
9 @item.attributes = @item.replaced_attributes()
\r
10 delete @item.attributes['id']
\r
14 @save(context, options)
\r
17 @root_form = Locmare.Form.factory({
\r
18 form_name: @item.item_name(),
\r
19 use_name: 'default'
\r
25 @element_forms = _.map @item.zorderd_elements(), (element) =>
\r
26 form = Locmare.Form.factory({
\r
27 form_name: element.item_name(),
\r
28 use_name: 'default'
\r
30 element_form: true,
\r
36 save: (context, options) ->
\r
37 # merge panel and elements
\r
38 attrs = @root_form.save_data()
\r
40 _.extend(attrs, @elements_save_data())
\r
41 # save json data by panel form
\r
42 new_panel = new Pettanr.Panel.WithElements()
\r
43 new_form = Locmare.Form.factory({
\r
44 form_name: new_panel.item_name(),
\r
45 use_name: 'default'
\r
49 success = (model, response) ->
\r
50 options.success.call(context, model)
\r
51 fail = (model, response) ->
\r
52 options.fail.call(context, response)
\r
53 @listenTo(new_form, 'success', success)
\r
54 @listenTo(new_form, 'fail', fail)
\r
55 new_form.save(attrs)
\r
57 elements_save_data: () ->
\r
59 _.each @element_forms, (element_form) =>
\r
60 mm = @item.my_class().my_manifest()
\r
61 em = element_form.item.my_class().my_manifest()
\r
62 child_element_name = mm.associations.child_element_name(element_form.item.my_class())
\r
63 if mm.associations.is_has_one(em)
\r
64 name = element_form.item.item_name() + '_attributes'
\r
65 d = element_form.save_data(true)
\r
67 delete d['panel_id']
\r
70 name = element_form.item.table_name() + '_attributes'
\r
72 d = element_form.save_data(true)
\r
74 delete d['panel_id']
\r