Parcourir la source

tracing queryName to reviewComments by following lookup containerNames, changing UNDEF to empty

Andrej Studen il y a 2 ans
Parent
commit
686006bf63
1 fichiers modifiés avec 55 ajouts et 20 suppressions
  1. 55 20
      web/crf/crfVisit.js

+ 55 - 20
web/crf/crfVisit.js

@@ -149,13 +149,15 @@ function generateDebugSection(){
 	let div=config.document.createElement('div');
 	div.id=sectionName;
 	config.document.getElementById(formName).appendChild(div);	
+	
 	//start open (for debug)
-	input.value="Hide";
-	div.style.display="block";
+	
+	//input.value="Hide";
+	//div.style.display="block";
 
 	//start hidden (for production)
-	//input.value="Show";
-	//div.style.display="none";
+	input.value="Show";
+	div.style.display="none";
 
 	let debugArea=config.document.createElement('textarea');
 	debugArea.rows=10;
@@ -350,6 +352,8 @@ function generateSection(formSetupEntry){
 		
 
 		let setup=fullAccessSetup(qName);
+		//only set master query for additionalData
+		setup.masterQuery=listName;
 		//if (readonly) setup=readonlySetup(config);
 		generateTable(qName,dName,additionalData,setup);
 		//generateTable(formSetupEntry,qName,dName,additionalData,setup);
@@ -793,8 +797,11 @@ function generateReviewSection2(pid){
 function generateReview(divReviewId,divReviewListId, listName, accessMode){
 	let listId=config.formConfig.fields[listName].queryId;
 
+	//listId is a number->should it be queryName?
+	
+
 	let debug=true;
-	if (debug) print("Generate review for: "+listId);
+	if (debug) print("Generate review for: "+listId+'/'+listName);
 	
 	let reviewSetup=new Object();
 	reviewSetup.readonlyFlag=function(vName){
@@ -1237,20 +1244,25 @@ function populateSubQuery(entry,field,setup){
 
 function populateField(entry,field,setup){
 
-	print('populateFieldRow ['+field.name+']: '+entry[field.name]+' ['+
-		setup.getInputId(field.name)+']');
-	
 	let vName=field.name;
-	let vType=field.type;
-	let id=setup.getInputId(vName);
-	let input=config.document.getElementById(id);
-	let isLookup=("lookup" in field);
+	let fName='[populateFieldName/'+vName+']';
 
 	let varValue="UNDEF";
+
 	//if (vName in setup.filters) varValue=setup.filters[vName];
 	if (vName in entry) varValue=entry[vName];
 	//if part of the filter, set it to value
 	if (vName in setup.filters) varValue=setup.filters[vName];
+	
+	let isLookup=("lookup" in field);
+	
+	print(fName+' v='+varValue+'/'+isLookup+' ['+
+		setup.getInputId(field.name)+']');
+	
+	let vType=field.type;
+	let id=setup.getInputId(vName);
+	let input=config.document.getElementById(id);
+
 		
 	//date
 	if (vType=="date"){
@@ -1271,6 +1283,8 @@ function populateField(entry,field,setup){
 	let eType=input.nodeName.toLowerCase();
 	print('Element type: '+eType);
 
+	//change varValue for printing
+	if (varValue=="UNDEF") varValue="";
 	//HTMLTextArea, createElement(textArea)
 	if (eType==="textarea"){
 		input.value=varValue;
@@ -1364,6 +1378,8 @@ function generateTable(listName,divName,additionalData,setup){
 	let debug=true;
 	let fName="[generateTable/"+listName+"]";	
 	if (debug) print(fName);
+
+	//is listName and setup.queryName a duplicate of the same value
 	print(fName+': setup.queryName '+setup.queryName);	
 	//assume data is set in config.formConfig.dataQueries[data.queryName].rows;
 	
@@ -1569,6 +1585,11 @@ function updateLastSavedFlag(data,setup,elementId){
 	let writeMode=!setup.readonlyFlag();
 	if ("unique" in setup)
 		setData(function (){populateTable(data.queryName,writeMode);});
+	if ("masterQuery" in setup){
+		let ad=config.formConfig.additionalData[setup.masterQuery];
+		print('Updating list display: '+setup.queryName+'/'+ad.queryName);
+		updateListDisplay(ad.divQueryName,ad.queryName,ad.filters,false);
+	}
 }
 
 //******************************************upload to database *********************
@@ -1688,12 +1709,14 @@ function afterParticipantId(fc){
 
 
 function copyToDataset(){
-	print('copyToDataset');
+	let fName='[copyToDataset]: ';
+	print(fName+'['+config.upload.queryId+'/'+config.upload.queries.length+']');
 	//watch dog + scheduler
 	//
 
 	//watchdog part
 	if (config.upload.queryId==config.upload.queries.length) {
+		print(fName+'completing');
 		let targetStatus=config.formConfig.targetStatus['onDatabaseUpload'];
 		let targetRecipient=config.formConfig.targetRecipient['onDatabaseUpload'];
 		let action=new Object();
@@ -1717,10 +1740,10 @@ function copyToDataset(){
 }
 
 function afterListData(data){
+	let fName='[afterListData]: ';
 
 	let queryName=config.upload.queries[config.upload.queryId].queryName;
-	let msg="["+queryName+"/list]: "+data.rows.length+" entries";
-	print(msg);
+	print(fName+" ["+queryName+"/list]: "+data.rows.length+" entries");
 	config.upload.queries[config.upload.queryId].listData=data;
 	let id=config.upload.participantId;
 
@@ -1736,10 +1759,12 @@ function afterListData(data){
 
 
 function afterStudyData(data){
+
+	let fName='[afterStudyData]: ';
 	let queryObj=config.upload.queries[config.upload.queryId];
 	queryObj.studyData=data;
 
-	let msg="["+queryObj.queryName+"/study]: "+data.rows.length+" entries";
+	let msg=fName+"["+queryObj.queryName+"/study]: "+data.rows.length+" entries";
 	print(msg);
 	
 
@@ -1759,22 +1784,27 @@ function afterStudyData(data){
 
 	for (let i=0;i<studyRows.length;i++){
 		let entry=studyRows[i];
+		//
 		if (! (i<listRows.length) ) continue;
 		let entryList=listRows[i];
 		//keeps study only variables (ParticipantId, SequenceNum)
 		for (let f in entryList) {
 			entry[f]=entryList[f];
-			print("Copying ["+f+"]: "+entry[f]+"/"+entryList[f]);
+			print(fName+"Copying ["+f+"]: "+entry[f]+"/"+entryList[f]);
 		}
 	}
+	print(fName+' copying completed');
+
 	if (studyRows.length>0) {
 		let qconfig=new Object();
-		qconfig.queryName=queryName;
+		qconfig.queryName=queryObj.queryName;
 		qconfig.schemaName="study";
 		qconfig.rows=studyRows;
 		qconfig.containerPath=getContainer('data');
 		qconfig.success=afterStudyUpload;
-		LABKEY.Query.updateRows(qconfig)
+		LABKEY.Query.updateRows(qconfig);
+		print(fName+'updateRows sent');
+
 	}
 	else{
 		let data=new Object();
@@ -1784,9 +1814,11 @@ function afterStudyData(data){
 }
 
 function afterStudyUpload(data){
-	
+	let fName='[afterStudyUpload] ';
+	print(fName);
 	//let participantField=config.participantField;
 	let participantField=config.formConfig.studyData["SubjectColumnName"];
+	print(fName+' participantField: '+participantField);
 
 	let queryObj=config.upload.queries[config.upload.queryId];
 	let queryName=queryObj.queryName;
@@ -3264,6 +3296,9 @@ function afterDatasets(data,cb){
 		selectRows.schemaName=field.lookup.schemaName;
 		selectRows.queryName=field.lookup.queryName;
 		selectRows.containerPath=getContainer('data');
+		if ("containerPath" in field.lookup){
+			selectRows.containerPath=field.lookup.containerPath;
+		}
 		selectRows.columns=field.lookup.keyColumn+","+
 			field.lookup.displayColumn;
 		//wait for all lookups to return