# submit: string / 'submit'\r
# operators: \r
class Locmare.FormBase extends Backbone.View\r
- tagName: 'div'\r
+ tagName: 'form'\r
\r
initialize: (options) ->\r
- @form_name_with_sub_form = options.form_name_with_sub_form\r
+ @form_name = options.form_name #_with_sub_form\r
@item = options.item\r
@mounted = options.mounted\r
@submit = options.submit\r
@operators = options.operators\r
- if /\./.test(form_name_with_sub_form)\r
- @sub_form_names = form_name_with_sub_form.split('.')\r
+ if /\./.test(@form_name)\r
+ @sub_form_names = @form_name.split('.')\r
@form_name = @sub_form_names.last\r
@root_form_name = @sub_form_names.shift\r
else\r
@sub_form_names = []\r
- @form_name = @form_name_with_sub_form\r
+ #@form_name = @form_name\r
@root_form_name = @form_name\r
@manifest = LocalManifest.manifest().forms[@form_name]\r
@fields = {}\r
'/images/'\r
\r
class Locmare.Form extends Locmare.FormBase\r
+ events: {\r
+ 'submit': 'post'\r
+ }\r
+ \r
initialize: (options) ->\r
super(options)\r
@submit = options.submit\r
+ @action = options.action\r
@item.boosts 'post'\r
@init_fields()\r
\r
render: () ->\r
+ m = if @item.isNew()\r
+ 'post'\r
+ else\r
+ 'put'\r
+ @attr = {\r
+ method: m,\r
+ action: @action\r
+ }\r
+ this.$el.attr(@attr)\r
this.$el.html('')\r
@error_explanation = null\r
@div_fields = new Locmare.FormModule.Fields({\r
field_manifest: field_manifest\r
})\r
\r
- submit_name: () ->\r
- if @item.isNew()\r
- @item.table_name() + '.submit.new'\r
- else\r
- @item.table_name() + '.submit.edit'\r
- \r
submits: () ->\r
{\r
default: Locmare.FormModule.SubmitModule.Default\r
submit_class: () ->\r
@submits()[@submit]\r
\r
+ post: () ->\r
+ attr = {}\r
+ _this = this\r
+ _.each @fields, (field) ->\r
+ _this.item.set(field.field_name, field.val())\r
+ if @item.save()\r
+ window.router.navigate('/' + @item.table_name() + '/' + Pettanr.to_s(@item.get('id')), true)\r
+ return false\r
+ else\r
+ alert('invalid')\r
+ \r
class Locmare.ExtendForm extends Locmare.FormBase\r
\r
initialize: (options) ->\r
@parent = options.parent\r
- @form_name = options.form_name\r
- @item = options.item\r
- @mounted = options.mounted\r
- @operators = options.operators\r
@field_name = options.field_name\r
- super(@form_name, @item, @mounted, @operators)\r
+ super(options)\r
@field = new Locmare.FormModule.Field({\r
form: @parent, \r
field_name: @field_name, \r
_this = this\r
_.each @fields, (field) ->\r
_this.$el.append(field.render().el)\r
+ _this.$el.append(field.rb.render().el) if field.rb\r
this\r
\r
class Locmare.FormModule.SubmitModule\r
@form = options.form\r
\r
render: () ->\r
- this.$el.html('<input type="submit" name="commit" class="submit" value="' + @form.submit_name() + '"></input>')\r
+ caption = I18n.t(@submit_name())\r
+ this.$el.html('<input type="submit" name="commit" class="submit" value="' + caption + '"></input>')\r
this\r
\r
+ submit_name: () ->\r
+ if @form.item.isNew()\r
+ @form.item.table_name() + '.submit.new'\r
+ else\r
+ @form.item.table_name() + '.submit.edit'\r
+ \r