瀏覽代碼

adding starting form

Eager Beaver 5 年之前
父節點
當前提交
c429f2fa80
共有 2 個文件被更改,包括 51 次插入1 次删除
  1. 1 1
      views/crfPortal.html
  2. 50 0
      web/tecant/crfPortal.js

+ 1 - 1
views/crfPortal.html

@@ -34,7 +34,7 @@ div.d1 {text-align:center; width=400px; background-color:#e0e0e0;
 <div id="pickFormHead"></div>
 <div id="pickFormDiv" style="display:none">
 	<div id="formDiv"></div>
-	<div id="selectFormDiv" style="display:block"></div>
+	<div id="selectFormDiv" style="display:block"/>
 	<div id="listDiv"></div>
 </div>
 

+ 50 - 0
web/tecant/crfPortal.js

@@ -27,6 +27,7 @@ function drawForm(par){
 	populateSelectTableEntry(par,"Form");
 
 	generateTable(par,"startDiv","startTable");
+	generateButtonRow("startTable","Start filling the selected form","Start", par, startForm);
 	
 	
 
@@ -633,3 +634,52 @@ function addNewEntry(par){
 		generateList(par,"Crf");};
 	LABKEY.Query.insertRows(config);
 }
+
+
+function startForm(par){
+	let crfVar=par.vars["Crf"];
+	let el=par.config.document.getElementById(crfVar.selectId);
+	let config=generateQConfig(par.masterQuery);
+	config.filterArray=[LABKEY.Filter.create(crfVar.masterSelectVarName,el.value)]
+       	config.success=function(data){findURL(data,par)};
+	LABKEY.Query.selectRows(config);
+	// The set of URL par.
+}
+
+function findURL(data,par){
+	let entry=data.rows[0];
+	
+	let fields=data.metaData.fields;
+	let formVar=par.vars["Form"];
+	let formVarName=formVar.masterSelectVarName;
+	let lookup;
+	for (f in fields){
+		if (fields[f].name!=formVarName) continue;
+		lookup=fields[f].lookup;
+		break;
+	}
+	let config=generateQConfig(lookup.queryName);
+	config.schemaName=lookup.schemaName;
+	config.filterArray=[LABKEY.Filter.create(lookup.keyColumn,entry[formVarName])];
+	config.success=function(data){finalRedirect(data,entry,par)};
+	LABKEY.Query.selectRows(config);
+}
+
+function finalRedirect(data,entry,par){
+	let formEntry=data.rows[0];
+	let formVar=par.vars["Form"];
+	let formUrl=formEntry[formVar.urlName];
+	var params = {
+		"name": formUrl, // The destination wiki page. The name of this parameter is not arbitrary.
+		"userid": entry[par.vars["User"].masterSelectVarName], 
+		"entryId": entry[par.vars["Crf"].masterSelectVarName]
+	};
+
+	let containerPath="TECANT/Data";//part of data?
+        // This changes the page after building the URL. 
+	//Note that the wiki page destination name is set in params.
+        var wikiURL = LABKEY.ActionURL.buildURL("wiki", "page", containerPath, params);
+        print("Redirecting to "+wikiURL);
+		 
+	window.location = wikiURL;
+}