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' +