X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=app%2Fassets%2Fjavascripts%2Flocmare%2Fform.js.coffee;h=bb545af45ec54e8416802486da2262fa6b948aa3;hb=b6289ebd47279820bd7238bf106ec5440b6832fe;hp=78f5dc97385fab921dac6336374bf567e7ae507a;hpb=36cca46b64bbb26ebd43ca7e59426aec776d6c5b;p=pettanr%2Fpettanr.git
diff --git a/app/assets/javascripts/locmare/form.js.coffee b/app/assets/javascripts/locmare/form.js.coffee
index 78f5dc97..bb545af4 100644
--- a/app/assets/javascripts/locmare/form.js.coffee
+++ b/app/assets/javascripts/locmare/form.js.coffee
@@ -4,21 +4,21 @@
# submit: string / 'submit'
# operators:
class Locmare.FormBase extends Backbone.View
- tagName: 'div'
+ tagName: 'form'
initialize: (options) ->
- @form_name_with_sub_form = options.form_name_with_sub_form
+ @form_name = options.form_name #_with_sub_form
@item = options.item
@mounted = options.mounted
@submit = options.submit
@operators = options.operators
- if /\./.test(form_name_with_sub_form)
- @sub_form_names = form_name_with_sub_form.split('.')
+ if /\./.test(@form_name)
+ @sub_form_names = @form_name.split('.')
@form_name = @sub_form_names.last
@root_form_name = @sub_form_names.shift
else
@sub_form_names = []
- @form_name = @form_name_with_sub_form
+ #@form_name = @form_name
@root_form_name = @form_name
@manifest = LocalManifest.manifest().forms[@form_name]
@fields = {}
@@ -38,13 +38,27 @@ class Locmare.FormBase extends Backbone.View
'/images/'
class Locmare.Form extends Locmare.FormBase
+ events: {
+ 'submit': 'post'
+ }
+
initialize: (options) ->
super(options)
@submit = options.submit
+ @action = options.action
@item.boosts 'post'
@init_fields()
render: () ->
+ m = if @item.isNew()
+ 'post'
+ else
+ 'put'
+ @attr = {
+ method: m,
+ action: @action
+ }
+ this.$el.attr(@attr)
this.$el.html('')
@error_explanation = null
@div_fields = new Locmare.FormModule.Fields({
@@ -85,12 +99,6 @@ class Locmare.Form extends Locmare.FormBase
field_manifest: field_manifest
})
- submit_name: () ->
- if @item.isNew()
- @item.table_name() + '.submit.new'
- else
- @item.table_name() + '.submit.edit'
-
submits: () ->
{
default: Locmare.FormModule.SubmitModule.Default
@@ -99,16 +107,23 @@ class Locmare.Form extends Locmare.FormBase
submit_class: () ->
@submits()[@submit]
+ post: () ->
+ attr = {}
+ _this = this
+ _.each @fields, (field) ->
+ _this.item.set(field.field_name, field.val())
+ if @item.save()
+ window.router.navigate('/' + @item.table_name() + '/' + Pettanr.to_s(@item.get('id')), true)
+ return false
+ else
+ alert('invalid')
+
class Locmare.ExtendForm extends Locmare.FormBase
initialize: (options) ->
@parent = options.parent
- @form_name = options.form_name
- @item = options.item
- @mounted = options.mounted
- @operators = options.operators
@field_name = options.field_name
- super(@form_name, @item, @mounted, @operators)
+ super(options)
@field = new Locmare.FormModule.Field({
form: @parent,
field_name: @field_name,
@@ -144,6 +159,7 @@ class Locmare.FormModule.Fields extends Backbone.View
_this = this
_.each @fields, (field) ->
_this.$el.append(field.render().el)
+ _this.$el.append(field.rb.render().el) if field.rb
this
class Locmare.FormModule.SubmitModule
@@ -155,6 +171,13 @@ class Locmare.FormModule.SubmitModule.Default extends Backbone.View
@form = options.form
render: () ->
- this.$el.html('')
+ caption = I18n.t(@submit_name())
+ this.$el.html('')
this
+ submit_name: () ->
+ if @form.item.isNew()
+ @form.item.table_name() + '.submit.new'
+ else
+ @form.item.table_name() + '.submit.edit'
+