Project

General

Profile

1
function checkSearch(submitFormObj) {
2
	//alert("calling method");
3
	
4
    //var checkBox = document.getElementById("searchAll");
5
	var docId = submitFormObj.docid.value;
6
	//alert("docId=" + docId);
7
	
8
	//do we want question metadata?
9
	var includeQuestions = submitFormObj.includeQuestions.checked;
10
	var questionIds = new Array();
11
	questionIds[0] = "";
12
	
13
	if (includeQuestions) {
14
		if (submitFormObj.assessmentItemId.length > 1) {
15
			for (var i=0; i < submitFormObj.assessmentItemId.length; i++) {
16
				questionIds[i] = submitFormObj.assessmentItemId[i].value;
17
			}
18
		}
19
		else {
20
			questionIds[0] = submitFormObj.assessmentItemId.value;
21
		}
22
	}
23
	
24
	//alert("questionIds=" + questionIds);
25
	
26
	//construct the assessment metadata query
27
	var metadataAttributes = "";
28
	var index = 0;
29
	for (var i=0; i < submitFormObj.length; i++) {
30
		var formElement = submitFormObj.elements[i];
31
		if (formElement.type == "checkbox" && formElement.checked) {
32
			//ignore certain other checkboxes, kind of a hack 
33
			if (formElement.name == "includeQuestions") {
34
				continue;
35
			}
36
		
37
			metadataAttributes += "<attribute index=\"";
38
			metadataAttributes += index;
39
			metadataAttributes += "\">";
40
			
41
			metadataAttributes += "<pathexpr label=\"";
42
			metadataAttributes += formElement.name;
43
			metadataAttributes += "\">";
44
			metadataAttributes += formElement.value;
45
			metadataAttributes += "</pathexpr>";
46
			
47
			metadataAttributes += "</attribute>";
48
			
49
			index++;
50
		}
51
	}
52
	
53
	//assemble the assessment metadata
54
	metadataAttributes = 
55
				"<datapackage id=\"" + docId + "\">"
56
					+ "<entity id=\"" + docId + "\">"
57
						+ metadataAttributes
58
					+ "</entity>"
59
				+ "</datapackage>";
60
	
61
	//construct the entire query
62
	var tempQuery = 
63
        "<?xml version=\"1.0\"?>"
64
        + "<dataquery>"
65
			+ "<union>";
66
			
67
			//loop for each question item
68
			for (var i=0; i < questionIds.length; i++) {
69
				var questionId = questionIds[i];
70
				
71
				tempQuery +=
72
					"<query>"
73
					//select the data
74
					+ "<selection>"
75
						+ "<datapackage id=\"" + docId + "\">"
76
							+ "<entity index=\"0\">"
77
								+ "<attribute index=\"0\"/>"
78
								+ "<attribute index=\"1\"/>"
79
								//omit student id attribute
80
								+ "<attribute index=\"3\"/>"
81
								+ "<attribute index=\"4\"/>"
82
							+ "</entity>"
83
						+ "</datapackage>";
84
						
85
						//select the metadata
86
						tempQuery += metadataAttributes;
87

    
88
						//select the question metadata						
89
						if (questionId.length > 0) {
90
							tempQuery +=
91
							"<datapackage id=\"" + questionId + "\">"
92
								+ "<entity id=\"" + questionId + "\">"
93
									+ "<attribute index=\"0\">"
94
										+ "<pathexpr label=\"qId\">//assessment/section/item/@ident</pathexpr>"
95
									+ "</attribute>"
96
									+ "<attribute index=\"1\">"
97
										+ "<pathexpr label=\"qTitle\">//assessment/section/item/@title</pathexpr>"
98
									+ "</attribute>"
99
									+ "<attribute index=\"2\">"
100
										+ "<pathexpr label=\"qLabel\">//assessment/section/item/presentation/@label</pathexpr>"
101
									+ "</attribute>"
102
								+ "</entity>"
103
							+ "</datapackage>";
104
						}
105
						
106
					tempQuery += "</selection>";
107
					
108
					//join to the quesion "table"
109
					if (questionId.length > 0) {
110
						tempQuery +=
111
							"<where>"
112
								+ "<condition type=\"join\">"
113
									+ "<left>"
114
										+ "<datapackage id=\"" + docId + "\">"
115
											+ "<entity index=\"0\">"
116
												+ "<attribute index=\"1\"/>"
117
											+ "</entity>"
118
										+ "</datapackage>"
119
									+ "</left>"
120
									+ "<operator>=</operator>"
121
									+ "<right>"
122
										+ "<datapackage id=\"" + questionId + "\">"
123
											+ "<entity id=\"" + questionId + "\">"
124
												+ "<attribute index=\"0\">"
125
													+ "<pathexpr label=\"qId\">//assessment/section/item/@ident</pathexpr>"
126
												+ "</attribute>"
127
											+ "</entity>"
128
										+ "</datapackage>"
129
									+ "</right>"
130
								+ "</condition>"
131
							+ "</where>";
132
					}
133
					
134
					tempQuery += "</query>";
135
				}
136
				 
137
			tempQuery +=
138
			 "</union>"	
139
        + "</dataquery>";
140
         
141
         submitFormObj.dataquery.value = tempQuery;
142
         
143
         //alert(submitFormObj.dataquery.value);
144
         
145
    return true;
146
}
(11-11/11)