+ form_attr: () ->\r
+ {\r
+ method: @method_type(),\r
+ action: @action_url()\r
+ }\r
+ \r
+ refresh: () ->\r
+ _.each @fields, (field) =>\r
+ field.refresh()\r
+ _.each @child_forms, (child_form, name) =>\r
+ child_form.refresh()\r
+ \r
+ method_type: () ->\r
+ if @item.isNew()\r
+ 'post'\r
+ else\r
+ 'put'\r
+ \r
+ action_url: () ->\r
+ return null if !@submit # element has not create actions\r
+ if @item.isNew()\r
+ @item.create_url()\r
+ else\r
+ @item.edit_url()\r
+ \r
+ add_elements: () ->\r
+ _.each @item.my_class().child_models(), (element_model) =>\r
+ items = @item.element_items(element_model)\r
+ if @item.my_class().my_manifest().associations.is_has_one(element_model)\r
+ @add_element(items)\r
+ else\r
+ _.each items, (item) =>\r
+ @add_element(item)\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
+ element_form: @element_form, \r
+ submit: null, \r
+ })\r
+ this.$el.append(form.render().el)\r
+ mm = @item.my_class().my_manifest()\r
+ em = element.my_class().my_manifest()\r
+ child_element_name = mm.associations.child_element_name(element.my_class())\r
+ if mm.associations.is_has_one(em)\r
+ @child_forms[child_element_name] = form\r
+ else\r
+ @child_forms[child_element_name] ||= []\r
+ @child_forms[child_element_name].push(form)\r
+ form\r
+ \r
+ remove_elements: () ->\r
+ _.each @child_forms, (child_form, name) =>\r
+ child_form.item.set({_destroy: true}, {silent: true})\r
+ child_form.remove_elements()\r
+ \r