179 |
179 |
180 function _submitAjaxForm(form, options) { |
180 function _submitAjaxForm(form, options) { |
181 |
181 |
182 var button, |
182 var button, |
183 buttonData, |
183 buttonData, |
184 buttonTarget; |
184 buttonTarget, |
185 var data = form.data(); |
185 data = form.data(), |
186 var formOptions = data.amsFormOptions; |
186 formOptions = data.amsFormOptions, |
187 var formData; |
187 formData, |
188 var formDataCallback; |
188 formDataCallback; |
189 |
189 |
190 var progressHandler; |
190 var progressHandler, |
191 var progressInterval; |
191 progressInterval, |
192 var progressCallback; |
192 progressCallback, |
193 var progressEndCallback; |
193 progressEndCallback; |
194 |
194 |
195 // Inner progress status handler |
195 // Inner progress status handler |
196 function _getProgress(handler, progress_id) { |
196 function _getProgress(handler, progress_id) { |
197 |
197 |
198 var timeout; |
198 var timeout; |
361 success: function(result, status, request, form) { |
361 success: function(result, status, request, form) { |
362 var modal = $(form).parents('.modal-dialog'); |
362 var modal = $(form).parents('.modal-dialog'); |
363 if (modal.exists()) { |
363 if (modal.exists()) { |
364 ams.dialog && ams.dialog.close(form); |
364 ams.dialog && ams.dialog.close(form); |
365 } else { |
365 } else { |
366 var callback; |
366 var callback, |
367 var button = form.data('ams-submit-button'); |
367 button = form.data('ams-submit-button'); |
368 if (button) { |
368 if (button) { |
369 callback = button.data('ams-form-submit-callback'); |
369 callback = button.data('ams-form-submit-callback'); |
370 } |
370 } |
371 if (!callback) { |
371 if (!callback) { |
372 callback = ams.getFunctionByName(data.amsFormSubmitCallback) || ams.form._submitCallback; |
372 callback = ams.getFunctionByName(data.amsFormSubmitCallback) || ams.form._submitCallback; |
460 * @param this: the submitted form |
460 * @param this: the submitted form |
461 * @param target: the form submit container target |
461 * @param target: the form submit container target |
462 * @param message: the optional message |
462 * @param message: the optional message |
463 */ |
463 */ |
464 initSubmit: function(target, message) { |
464 initSubmit: function(target, message) { |
465 var form = $(this); |
465 var form = $(this), |
466 var spin = '<i class="fa fa-3x fa-gear fa-spin"></i>'; |
466 spin = '<i class="fa fa-3x fa-gear fa-spin"></i>'; |
467 if (!message) { |
467 if (!message) { |
468 message = form.data('ams-form-submit-message'); |
468 message = form.data('ams-form-submit-message'); |
469 } |
469 } |
470 if (message) { |
470 if (message) { |
471 spin += '<strong>' + message + '</strong>'; |
471 spin += '<strong>' + message + '</strong>'; |
507 * |
507 * |
508 * @param this: the submitted form |
508 * @param this: the submitted form |
509 * @param message: the optional submit message |
509 * @param message: the optional submit message |
510 */ |
510 */ |
511 initSubmitFooter: function(message) { |
511 initSubmitFooter: function(message) { |
512 var form = $(this); |
512 var form = $(this), |
513 var spin = '<i class="fa fa-3x fa-gear fa-spin"></i>'; |
513 spin = '<i class="fa fa-3x fa-gear fa-spin"></i>'; |
514 if (!message) { |
514 if (!message) { |
515 message = $(this).data('ams-form-submit-message'); |
515 message = $(this).data('ams-form-submit-message'); |
516 } |
516 } |
517 if (message) { |
517 if (message) { |
518 spin += '<strong class="submit-message align-top padding-left-10 margin-top-10">' + message + '</strong>'; |
518 spin += '<strong class="submit-message align-top padding-left-10 margin-top-10">' + message + '</strong>'; |
527 * |
527 * |
528 * @param this: the submitted form |
528 * @param this: the submitted form |
529 * @param target: the form submit container target |
529 * @param target: the form submit container target |
530 */ |
530 */ |
531 finalizeSubmitFooter: function(/*target*/) { |
531 finalizeSubmitFooter: function(/*target*/) { |
532 var form = $(this); |
532 var form = $(this), |
533 var footer = $('footer', form); |
533 footer = $('footer', form); |
534 if (footer) { |
534 if (footer) { |
535 $('.row', footer).remove(); |
535 $('.row', footer).remove(); |
536 $('button', footer).show(); |
536 $('button', footer).show(); |
537 } |
537 } |
538 }, |
538 }, |
563 if (button) { |
563 if (button) { |
564 button.button('reset'); |
564 button.button('reset'); |
565 } |
565 } |
566 } |
566 } |
567 |
567 |
568 var data = form.data(); |
568 var data = form.data(), |
569 var dataType; |
569 dataType; |
570 if (data.amsFormDatatype) { |
570 if (data.amsFormDatatype) { |
571 dataType = data.amsFormDatatype; |
571 dataType = data.amsFormDatatype; |
572 } else { |
572 } else { |
573 var response = ams.ajax && ams.ajax.getResponse(request); |
573 var response = ams.ajax && ams.ajax.getResponse(request); |
574 if (response) { |
574 if (response) { |
648 _checkSubmitValidators: function(form) { |
648 _checkSubmitValidators: function(form) { |
649 var validators = ams.form._getSubmitValidators(form); |
649 var validators = ams.form._getSubmitValidators(form); |
650 if (!validators.length) { |
650 if (!validators.length) { |
651 return true; |
651 return true; |
652 } |
652 } |
653 var output = []; |
653 var output = [], |
654 var result = true; |
654 result = true; |
655 for (var index=0; index < validators.length; index++) { |
655 for (var index=0; index < validators.length; index++) { |
656 var validator = validators[index]; |
656 var validator = validators[index], |
657 var source = validator[0]; |
657 source = validator[0], |
658 var handler = validator[1]; |
658 handler = validator[1], |
659 var validatorResult = ams.executeFunctionByName(handler, form, source); |
659 validatorResult = ams.executeFunctionByName(handler, form, source); |
660 if (validatorResult === false) { |
660 if (validatorResult === false) { |
661 result = false; |
661 result = false; |
662 } else if (typeof(validatorResult) === 'string') { |
662 } else if (typeof(validatorResult) === 'string') { |
663 output.push(validatorResult); |
663 output.push(validatorResult); |
664 } else if (result.length && (result.length > 0)) { |
664 } else if (result.length && (result.length > 0)) { |