Question

use asyncValidate in minipage

Hello Team!

What is the way to use asyncValidate validation in Minipage correctly?

 I have this code but is working in the page but no in the minipage of activities.

 

asyncValidate: function(callback, scope) {
				debugger;
				this.callParent([function() {
					var Status = this.get("Status");
					if (Status && Status.value == '4bdbb88f-58e6-df11-971b-001d60e938c6') {
 
						var Notes = this.get("Notes");
						var NoShow = this.get("SMNoShow");
 
 
						if (!Notes || Notes == "") {
							validationResult.message = "Please compleate notes.";
							validationResult.success = false;
						}
 
 
						var esq = Ext.create("Terrasoft.EntitySchemaQuery", { rootSchemaName: "SMActivityObjective" });
						esq.addColumn("Id"); 
						esq.addColumn("SMAnswer"); 
						esq.filters.addItem(
							esq.createColumnFilterWithParameter(Terrasoft.ComparisonType.EQUAL, "SMActivitySubject", this.get("Id"))
						);
						esq.getEntityCollection(function(result) {
							// create object to hold the validation result
							var validationResult = {
								success: true
							};
							if (result.collection.getItems().length > 0) {
 
								var collection = result.collection;
								var columns = {};
								if (!collection.isEmpty()) {
									collection.each(function(item) {
										var answer = item.get("SMAnswer");
										if (!answer && !NoShow) {
											validationResult.message = "Please compleate all objectives";
											validationResult.success = false;
										}
									});
								}						
							}
							// call callback function and pass object with validation result
							callback.call(scope || this, validationResult);
						}, this);
					}
				}, this]);  
			}

The function is triggered but is not saving at all.

Thanks!

 

Like 0

Like

2 comments

Hello Federico,

 

Try calling parent separately in your check. It will save the record successfully.

 

Best regards,

Oscar

Thanks Oscar works perfect.

Show all comments