328 type: 'post', |
328 type: 'post', |
329 cache: false, |
329 cache: false, |
330 data: formData, |
330 data: formData, |
331 dataType: data.amsFormDatatype, |
331 dataType: data.amsFormDatatype, |
332 beforeSerialize: function(/*form, options*/) { |
332 beforeSerialize: function(/*form, options*/) { |
|
333 form.trigger('myams.form.before-serialize'); |
333 if (typeof (globals.tinyMCE) !== 'undefined') { |
334 if (typeof (globals.tinyMCE) !== 'undefined') { |
334 globals.tinyMCE.triggerSave(); |
335 globals.tinyMCE.triggerSave(); |
335 } |
336 } |
336 }, |
337 }, |
337 beforeSubmit: function(data, form /*, options*/) { |
338 beforeSubmit: function(data, form /*, options*/) { |
|
339 form.trigger('myams.form.before-submit', [data]); |
338 form.data('submitted', true); |
340 form.data('submitted', true); |
|
341 if (form.data('ams-form-reset-before-submit')) { |
|
342 setTimeout(function() { |
|
343 ams.form.resetAfterSubmit(form); |
|
344 }, 250); |
|
345 } |
339 }, |
346 }, |
340 error: function(request, status, error, form) { |
347 error: function(request, status, error, form) { |
|
348 form.trigger('myams.form.submit-error', [request, status, error]); |
341 if (target) { |
349 if (target) { |
342 ams.executeFunctionByName(data.amsFormSubmitError || 'MyAMS.form.finalizeSubmitOnError', form, target); |
350 ams.executeFunctionByName(data.amsFormSubmitError || 'MyAMS.form.finalizeSubmitOnError', form, target); |
343 } |
351 } |
344 ams.form.resetAfterSubmit(form); |
352 ams.form.resetAfterSubmit(form); |
345 }, |
353 }, |
357 } |
365 } |
358 defaults = $.extend({}, defaults, { |
366 defaults = $.extend({}, defaults, { |
359 iframe: true, |
367 iframe: true, |
360 iframeTarget: iframe, |
368 iframeTarget: iframe, |
361 success: function(result, status, request, form) { |
369 success: function(result, status, request, form) { |
|
370 form.trigger('myams.form.after-submit', [result, status, request]); |
362 var modal = $(form).parents('.modal-dialog'); |
371 var modal = $(form).parents('.modal-dialog'); |
363 if (modal.exists()) { |
372 if (modal.exists()) { |
364 ams.dialog && ams.dialog.close(form); |
373 ams.dialog && ams.dialog.close(form); |
365 } else { |
374 } else { |
366 var callback, |
375 var callback, |
387 ams.executeFunctionByName(data.amsFormSubmitError || 'MyAMS.form.finalizeSubmitOnError', form, target); |
396 ams.executeFunctionByName(data.amsFormSubmitError || 'MyAMS.form.finalizeSubmitOnError', form, target); |
388 } |
397 } |
389 ams.form.resetAfterSubmit(form); |
398 ams.form.resetAfterSubmit(form); |
390 }, |
399 }, |
391 success: function(result, status, request, form) { |
400 success: function(result, status, request, form) { |
392 var callback; |
401 form.trigger('myams.form.after-submit', [result, status, request]); |
393 var button = form.data('ams-submit-button'); |
402 var callback, |
|
403 button = form.data('ams-submit-button'); |
394 if (button) { |
404 if (button) { |
395 callback = button.data('ams-form-submit-callback'); |
405 callback = button.data('ams-form-submit-callback'); |
396 } |
406 } |
397 if (!callback) { |
407 if (!callback) { |
398 callback = ams.getFunctionByName(data.amsFormSubmitCallback) || ams.form._submitCallback; |
408 callback = ams.getFunctionByName(data.amsFormSubmitCallback) || ams.form._submitCallback; |
478 * Reset form status after submit |
488 * Reset form status after submit |
479 * |
489 * |
480 * @param form: the submitted form |
490 * @param form: the submitted form |
481 */ |
491 */ |
482 resetAfterSubmit: function(form) { |
492 resetAfterSubmit: function(form) { |
483 if (form.is(':visible')) { |
493 if (form.data('submitted')) { |
484 var button = form.data('ams-submit-button'); |
494 if (form.is(':visible')) { |
485 if (button) { |
495 var button = form.data('ams-submit-button'); |
486 button.button('reset'); |
496 if (button) { |
487 } |
497 button.button('reset'); |
488 ams.form.finalizeSubmitFooter.call(form); |
498 } |
489 } |
499 ams.form.finalizeSubmitFooter.call(form); |
490 form.data('submitted', false); |
500 } |
491 form.removeData('ams-submit-button'); |
501 form.data('submitted', false); |
|
502 form.removeData('ams-submit-button'); |
|
503 form.trigger('myams.form.after-reset'); |
|
504 } |
492 }, |
505 }, |
493 |
506 |
494 /** |
507 /** |
495 * Finalize AJAX submit call |
508 * Finalize AJAX submit call |
496 * |
509 * |