Browse Source

Adding generateRow

Eager Beaver 5 years ago
parent
commit
889acfc5a7
1 changed files with 43 additions and 0 deletions
  1. 43 0
      web/tecant/crfPortal.js

+ 43 - 0
web/tecant/crfPortal.js

@@ -8,6 +8,7 @@ function drawForm(par){
 	populateSourceTable(par); //populateSourceTableData
 	let tableId="entryTable"; 
 	generateTable(par,"formDiv",tableId);
+	generateRow(par,tableId,"User");//generateTableRow
 	
 
 }
@@ -30,6 +31,19 @@ function sourceVar(crfEntryName,elementId,sourceName){
 	return f;
 }
 
+function getField(config, data, varName){
+	let debug=false;
+	if (debug) print(config, "getField");
+	let fields=data.metaData.fields;
+	for (f in fields){
+		if (debug) print(config,"Checking "+f+": name "+fields[f].name+"/"+varName);
+		if (fields[f].name!=varName) continue;
+		return fields[f];
+	}
+	return null;
+}
+
+
 function generateHead(config, headDivName,divName,title){
 	print(config,"generateHead");
 	let tb=config.document.createElement('table');
@@ -125,6 +139,35 @@ function generateTable(par,divName,elementId){
 }
 
 
+function generateRow(parameters, tableId, rowId){
+	let debug=true;
+	if (debug)
+		print(parameters.config,"generateRow: Start");
+	let config=generateQConfig(parameters.masterQuery);
+	config.success=function(data){generateTableRow(data, parameters, tableId, rowId)};
+	LABKEY.Query.selectRows(config);
+	if (debug)
+		print(parameters.config,"generateRow: End");
+	return;
+
+}
+
+function generateTableRow(data, parameters, tableId, rowId){
+	let tb=parameters.config.document.getElementById(tableId);
+	let row=parameters.vars[rowId];
+	let field=getField(parameters.config,data,row.masterSelectVarName);
+	let trow=tb.insertRow();
+	let cell=parameters.config.document.createElement('th');
+	trow.appendChild(cell);
+	let text = parameters.config.document.createTextNode(field.shortCaption);
+	cell.appendChild(text);
+	cell=trow.insertCell();
+	let input = parameters.config.document.createElement("select");
+	input.id = row.selectId;
+	input.onchange=function(){row.callback(parameters,rowId)};
+	cell.appendChild(input); 
+}
+
 function generateListAndPopulateDaughterSelect(parameters,rowId){;}
 function generateList(parameters,rowId){;}