src/pyams_skin/resources/js/myams-form.js
changeset 553 644d0f6f6503
parent 547 9fe15f541572
child 555 7d7ccf92d6af
equal deleted inserted replaced
552:de3ef58c6be8 553:644d0f6f6503
   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 		 *