123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- var runQuery={};
- //external dependencies:
- //LABKEY.Query
- //print -> configObject.print
- //getContainter -> parentClass.getContainer
- runQuery.makeQuery=
- function(targetObject,containerName,queryName,fieldName,filterArray){
- //call with makeQuery(config.formConfig,getContainer(name),...
- let e=new Object();
- e.containerName=containerName;
- e.queryName=queryName;
- e.fieldName=fieldName;
- e.filterArray=filterArray;
- e.targetObject=targetObject;
- return e;
- }
- runQuery.getDataFromQueries=
- function(parentClass,queryArray,cb){
- //queryArray should contain elements with
- //- fieldName to set the data variable
- //- containerName to select container (data,config,CRF)
- //- queryName to select query
- //- filterArray to perform filtering, empty array works
- //- callback cb to be called with no arguments
- //
- this.afterQuery(new Object(),-1,parentClass,queryArray,cb);
- }
- runQuery.afterQuery=
- function(data,id,parentClass,queryArray,cb){
- //queryArray should contain elements with
- //- fieldName to set the data variable
- //- containerName to select container (data,config,CRF)
- //- queryName to select query
- //- filterArray to perform filtering, empty array works
- //- callback cb to be called with no arguments
- //
- //it should be called with id -1.
- //
- //targetObject.print('afterQuery1['+id+'/'+queryArray.length+']: ');
- let fName='[afterQuery]';
- if (id>-1){
- let e1=queryArray[id];
- let fieldName=e1.fieldName;
- parentClass.print(fName+' ['+fieldName+']: '+data.rows.length);
- e1.targetObject[fieldName]=data;
- }
- id+=1;
- if (id==queryArray.length) {
- if (cb) cb();
- return;
- }
-
- let e=queryArray[id];
- for (v in e){
- parentClass.print(fName+' value ['+v+'] '+e[v]);
- }
- let qconfig=new Object();
- qconfig.containerPath=parentClass.getContainer(e.containerName);
- if ("containerPath" in e){
- parentClass.print(fName+' containerPath '+e.containerPath);
- qconfig.containerPath=e.containerPath;
- }
- qconfig.schemaName="lists";
- if ("schemaName" in e){
- parentClass.print(fName+' schemaName='+e.schemaName);
- qconfig.schemaName=e.schemaName;
- }
- if ("columns" in e){
- parentClass.print(fName+' columns='+e.columns);
- qconfig.columns=e.columns;
- }
- qconfig.queryName=e.queryName;
- //this should point to configuration container
- //don't filter -> so we can pick up other forms (say registration) later on
- //qconfig.filterArray=[LABKEY.Filter.create('Key',config.formId)];
- if ("filterArray" in e)
- qconfig.filterArray=e.filterArray;
-
- //qconfig.filterArray=[LABKEY.Filter.create('formStatus',1)]
- let that=this;
- qconfig.success=function(data){that.afterQuery(data,id,parentClass,queryArray,cb);};
- qconfig.failure=function(errorInfo,responseObj){that.onTAFailure(parentClass,errorInfo,responseObj);};
- LABKEY.Query.selectRows(qconfig);
- }
- runQuery.onTAFailure=
- function(parentClass, errorInfo, responseObj){
- //don't have configObject to rely to
- parentClass.print('[afterQuery]: Failure: '+errorInfo.exception);
- }
|