src/pyams_skin/resources/js/myams-form.js
changeset 547 9fe15f541572
parent 539 5f7cda8f9da3
child 553 644d0f6f6503
equal deleted inserted replaced
546:9f02c09d2393 547:9fe15f541572
   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)) {