nickjillings@1749
|
1 <!DOCTYPE html>
|
nickjillings@1749
|
2 <html lang="en">
|
nickjillings@1749
|
3 <head>
|
nickjillings@1749
|
4 <meta charset="utf-8">
|
nickjillings@1749
|
5
|
nickjillings@1749
|
6 <!-- Always force latest IE rendering engine (even in intranet) & Chrome Frame
|
nickjillings@1749
|
7 Remove this if you use the .htaccess -->
|
nickjillings@1749
|
8 <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
nickjillings@1749
|
9
|
nickjillings@1749
|
10 <title>WAET Create Test</title>
|
nickjillings@1749
|
11 <meta name="description" content="">
|
nickjillings@1749
|
12 <meta name="author" content="">
|
nickjillings@1749
|
13
|
nickjillings@1749
|
14 <meta name="viewport" content="width=device-width; initial-scale=1.0">
|
nickjillings@1591
|
15
|
nickjillings@1591
|
16 <script type="text/javascript">
|
nickjillings@1591
|
17 // To aid 'one-page set-up' all scripts and CSS must be included directly in this file!
|
nickjillings@1591
|
18 var topLevel;
|
nickjillings@1591
|
19 window.onload = function() {
|
nickjillings@1591
|
20 // Initialise page
|
nickjillings@1591
|
21 topLevel = document.getElementById('topLevelBody');
|
nickjillings@1591
|
22 var setup = document.createElement('div');
|
nickjillings@1591
|
23 setup.id = 'setupTagDiv';
|
nickjillings@1591
|
24
|
nickjillings@1591
|
25 };
|
nickjillings@1591
|
26
|
nickjillings@1594
|
27 function attributePair(string, type, mandatory){
|
nickjillings@1591
|
28 var id = document.createElement("span");
|
nickjillings@1591
|
29 id.textContent = string;
|
nickjillings@1591
|
30 var input = document.createElement("input");
|
nickjillings@1591
|
31 input.type = type;
|
nickjillings@1594
|
32 if (type == 'text') {
|
nickjillings@1594
|
33 if (mandatory == true) {
|
nickjillings@1594
|
34 input.setAttribute('mandatory','true');
|
nickjillings@1594
|
35 }
|
nickjillings@1594
|
36 else {
|
nickjillings@1594
|
37 input.setAttribute('mandatory','false');
|
nickjillings@1594
|
38 }
|
nickjillings@1594
|
39 }
|
nickjillings@1591
|
40 return [id, input];
|
nickjillings@1591
|
41 }
|
nickjillings@1591
|
42
|
nickjillings@1592
|
43 function removeNode(event) {
|
nickjillings@1592
|
44 event.srcElement.parentElement.parentElement.removeChild(event.srcElement.parentElement);
|
nickjillings@1592
|
45 }
|
nickjillings@1592
|
46
|
nickjillings@1594
|
47 function buttonClickedValidate() {
|
nickjillings@1594
|
48 var ready = validate();
|
nickjillings@1594
|
49 if (ready == false) {
|
nickjillings@1594
|
50 var errMsg = document.getElementById('errorMessage');
|
nickjillings@1595
|
51 errMsg.textContent = "There were some errors with your XML. Any input boxes highlighted in red are invalid because they are empty or because its ID matches another elements ID. Please fill these in correctly. Any boxes which are yellow are not-invalid but will use the default value.";
|
nickjillings@1594
|
52 errMsg.style.visibility = 'visible';
|
nickjillings@1594
|
53 document.getElementById('createXML').disabled = true;
|
nickjillings@1594
|
54
|
nickjillings@1594
|
55 } else {
|
nickjillings@1594
|
56 var errMsg = document.getElementById('errorMessage');
|
nickjillings@1594
|
57 errMsg.textContent = "";
|
nickjillings@1594
|
58 errMsg.style.visiblity = 'hidden';
|
nickjillings@1594
|
59 document.getElementById('createXML').disabled = false;
|
nickjillings@1594
|
60 }
|
nickjillings@1594
|
61 }
|
nickjillings@1594
|
62
|
nickjillings@1595
|
63 function buttonClickedSubmit() {
|
nickjillings@1595
|
64 var ready = validate();
|
nickjillings@1595
|
65 if (ready == true) {
|
nickjillings@1595
|
66 var xmlDoc = document.createElement('BrowserEvalProjectDocument');
|
nickjillings@1595
|
67 var setup = document.createElement('setup');
|
nickjillings@1595
|
68 setup.setAttribute('interface',document.getElementById('interface').value);
|
nickjillings@1595
|
69 if (document.getElementById('projectReturn').value == "") {
|
nickjillings@1595
|
70 setup.setAttribute('projectReturn',"null");
|
nickjillings@1595
|
71 } else {
|
nickjillings@1595
|
72 setup.setAttribute('projectReturn',document.getElementById('projectReturn').value);
|
nickjillings@1595
|
73 }
|
nickjillings@1595
|
74 setup.setAttribute('randomiseOrder',document.getElementById('randomisePageOrder').checked);
|
nickjillings@1595
|
75 setup.setAttribute('collectMetrics',document.getElementById('collectMetrics').checked);
|
nickjillings@1595
|
76
|
nickjillings@1595
|
77 var globalPreTest = document.createElement('preTest');
|
nickjillings@1595
|
78 var options = document.getElementById('globalPreTest').getElementsByClassName('head');
|
nickjillings@1595
|
79 constructPrePost(globalPreTest, options);
|
nickjillings@1595
|
80
|
nickjillings@1595
|
81 var globalPostTest = document.createElement('postTest');
|
nickjillings@1595
|
82 options = document.getElementById('globalPostTest').getElementsByClassName('head');
|
nickjillings@1595
|
83 constructPrePost(globalPostTest, options);
|
nickjillings@1595
|
84
|
nickjillings@1595
|
85 var globalMetrics = document.createElement('metric');
|
nickjillings@1595
|
86 options = document.getElementById('globalMetric').getElementsByClassName('attrib')[0].getElementsByTagName('input');
|
nickjillings@1595
|
87 for (var i=0; i<options.length; i++) {
|
nickjillings@1595
|
88 if (options[i].checked) {
|
nickjillings@1595
|
89 var metric = document.createElement('metricEnable');
|
nickjillings@1595
|
90 metric.textContent = options[i].id;
|
nickjillings@1595
|
91 globalMetrics.appendChild(metric);
|
nickjillings@1595
|
92 }
|
nickjillings@1595
|
93 }
|
nickjillings@1595
|
94
|
nickjillings@1595
|
95 }
|
nickjillings@1595
|
96 }
|
nickjillings@1595
|
97
|
nickjillings@1595
|
98 function constructPrePost(parent, options) {
|
nickjillings@1595
|
99 for (var i=0; i<options.length; i++) {
|
nickjillings@1595
|
100 var elem = options[i];
|
nickjillings@1595
|
101 var attributes = elem.getElementsByClassName('attrib')[0].getElementsByTagName('input');
|
nickjillings@1595
|
102 if (elem.getAttribute('name') == 'question-node') {
|
nickjillings@1595
|
103 var node = document.createElement('question');
|
nickjillings@1595
|
104 node.setAttribute('id',attributes[0].value);
|
nickjillings@1595
|
105 node.textContent = attributes[1].value;
|
nickjillings@1595
|
106 } else if (elem.getAttribute('name') == 'statement-node') {
|
nickjillings@1595
|
107 var node = document.createElement('statment');
|
nickjillings@1595
|
108 node.textContent = attributes[0].value;
|
nickjillings@1595
|
109 }
|
nickjillings@1595
|
110 parent.appendChild(node);
|
nickjillings@1595
|
111 }
|
nickjillings@1595
|
112 }
|
nickjillings@1595
|
113
|
nickjillings@1594
|
114 function validate() {
|
nickjillings@1594
|
115 var canExport = true;
|
nickjillings@1594
|
116 // Checks if the XML can be created from the given entries
|
nickjillings@1594
|
117 var inputs = document.getElementsByTagName('input');
|
nickjillings@1594
|
118 for (var i=0; i<inputs.length; i++) {
|
nickjillings@1594
|
119 if (inputs[i].type == 'text') {
|
nickjillings@1594
|
120 if (inputs[i].value == "") {
|
nickjillings@1594
|
121 var mandatory = inputs[i].getAttribute('mandatory');
|
nickjillings@1594
|
122 if (mandatory == "true") {
|
nickjillings@1594
|
123 errorInput(inputs[i]);
|
nickjillings@1594
|
124 canExport = false;
|
nickjillings@1594
|
125 } else {
|
nickjillings@1594
|
126 warningInput(inputs[i]);
|
nickjillings@1594
|
127 }
|
nickjillings@1594
|
128 } else {
|
nickjillings@1594
|
129 goodInput(inputs[i]);
|
nickjillings@1594
|
130 }
|
nickjillings@1594
|
131 }
|
nickjillings@1594
|
132 }
|
nickjillings@1595
|
133
|
nickjillings@1595
|
134 var audioHolders = document.getElementsByName('audio-holder');
|
nickjillings@1595
|
135 for (var i=0; i<audioHolders.length; i++) {
|
nickjillings@1595
|
136 var divs = audioHolders[i].getElementsByClassName('head');
|
nickjillings@1595
|
137 var IDs = [];
|
nickjillings@1595
|
138 for (var j=0; j<divs.length; j++) {
|
nickjillings@1595
|
139 if (divs[j].getAttribute('name') == 'audio-element') {
|
nickjillings@1595
|
140 var obj = divs[j].getElementsByClassName('attrib')[0].children[1];
|
nickjillings@1595
|
141 var aeID = obj.value;
|
nickjillings@1595
|
142 if (aeID != "") {
|
nickjillings@1595
|
143 var unique = true;
|
nickjillings@1595
|
144 for (var k=0; k<IDs.length; k++) {
|
nickjillings@1595
|
145 if (aeID == IDs[k]) {
|
nickjillings@1595
|
146 unique = false;
|
nickjillings@1595
|
147 break;
|
nickjillings@1595
|
148 }
|
nickjillings@1595
|
149 }
|
nickjillings@1595
|
150 if (unique == true) {
|
nickjillings@1595
|
151 IDs.push(aeID);
|
nickjillings@1595
|
152 } else {
|
nickjillings@1595
|
153 errorInput(obj);
|
nickjillings@1595
|
154 canExport = false;
|
nickjillings@1595
|
155 }
|
nickjillings@1595
|
156 }
|
nickjillings@1595
|
157 }
|
nickjillings@1595
|
158 }
|
nickjillings@1595
|
159 }
|
nickjillings@1594
|
160 return canExport;
|
nickjillings@1594
|
161 };
|
nickjillings@1594
|
162
|
nickjillings@1594
|
163 function errorInput(node) {
|
nickjillings@1594
|
164 node.style.backgroundColor = "#FF0000";
|
nickjillings@1594
|
165 }
|
nickjillings@1594
|
166
|
nickjillings@1594
|
167 function warningInput(node) {
|
nickjillings@1594
|
168 node.style.backgroundColor = "#FFFF00";
|
nickjillings@1594
|
169 }
|
nickjillings@1594
|
170
|
nickjillings@1594
|
171 function goodInput(node) {
|
nickjillings@1594
|
172 node.style.backgroundColor = "#FFFFFF";
|
nickjillings@1594
|
173 }
|
nickjillings@1594
|
174
|
nickjillings@1591
|
175 function questionNode() {
|
nickjillings@1591
|
176 var node = document.createElement("div");
|
nickjillings@1591
|
177 node.setAttribute('class','head');
|
nickjillings@1591
|
178 node.setAttribute('name','question-node');
|
nickjillings@1591
|
179 var nodeTitle = document.createElement("span");
|
nickjillings@1591
|
180 nodeTitle.textContent = "Question";
|
nickjillings@1591
|
181 var attributes = document.createElement("div");
|
nickjillings@1591
|
182 attributes.setAttribute('class','attrib');
|
nickjillings@1594
|
183 var id = attributePair("ID:","text", true);
|
nickjillings@1594
|
184 var question = attributePair("Question:","text", false);
|
nickjillings@1591
|
185 node.appendChild(nodeTitle);
|
nickjillings@1591
|
186 id.forEach(function(item){attributes.appendChild(item);},false);
|
nickjillings@1591
|
187 question.forEach(function(item){attributes.appendChild(item);},false);
|
nickjillings@1591
|
188 node.appendChild(attributes);
|
nickjillings@1592
|
189
|
nickjillings@1592
|
190 var removeButton = document.createElement("button");
|
nickjillings@1592
|
191 removeButton.textContent = "Remove";
|
nickjillings@1592
|
192 removeButton.onclick = removeNode;
|
nickjillings@1592
|
193 node.appendChild(removeButton);
|
nickjillings@1591
|
194 return node;
|
nickjillings@1591
|
195 }
|
nickjillings@1591
|
196
|
nickjillings@1591
|
197 function statementNode() {
|
nickjillings@1591
|
198 var node = document.createElement("div");
|
nickjillings@1591
|
199 node.setAttribute('class','head');
|
nickjillings@1594
|
200 node.setAttribute('name','statement-node');
|
nickjillings@1591
|
201 var nodeTitle = document.createElement("span");
|
nickjillings@1591
|
202 nodeTitle.textContent = "Statement";
|
nickjillings@1591
|
203 var attributes = document.createElement("div");
|
nickjillings@1591
|
204 attributes.setAttribute('class','attrib');
|
nickjillings@1594
|
205 var statement = attributePair("Statement:","text",false);
|
nickjillings@1591
|
206 node.appendChild(nodeTitle);
|
nickjillings@1591
|
207 statement.forEach(function(item){attributes.appendChild(item);},false);
|
nickjillings@1591
|
208 node.appendChild(attributes);
|
nickjillings@1592
|
209
|
nickjillings@1592
|
210 var removeButton = document.createElement("button");
|
nickjillings@1592
|
211 removeButton.textContent = "Remove";
|
nickjillings@1592
|
212 removeButton.onclick = removeNode;
|
nickjillings@1592
|
213 node.appendChild(removeButton);
|
nickjillings@1591
|
214 return node;
|
nickjillings@1591
|
215 }
|
nickjillings@1591
|
216
|
nickjillings@1591
|
217 function audioHolderNode() {
|
nickjillings@1591
|
218 var audioHolderCounts = document.getElementsByName("audio-holder").length;
|
nickjillings@1591
|
219 var node = document.createElement("div");
|
nickjillings@1591
|
220 node.setAttribute("class","head");
|
nickjillings@1591
|
221 node.setAttribute("name","audio-holder");
|
nickjillings@1592
|
222 node.setAttribute("id","audio-holder-"+audioHolderCounts);
|
nickjillings@1591
|
223 var nodeTitle = document.createElement("span");
|
nickjillings@1592
|
224 nodeTitle.textContent = "Audio Holder "+(audioHolderCounts+1);
|
nickjillings@1591
|
225
|
nickjillings@1591
|
226 var attributes = document.createElement("div");
|
nickjillings@1591
|
227 attributes.setAttribute('class','attrib');
|
nickjillings@1594
|
228 var id = attributePair("ID:","text",true);
|
nickjillings@1592
|
229 id[1].value=audioHolderCounts;
|
nickjillings@1594
|
230 var hostURL = attributePair("Host URL:", "text",false);
|
nickjillings@1594
|
231 var sampleRate = attributePair("Sample Rate:","text",false);
|
nickjillings@1592
|
232 var randomiseOrder = attributePair("Randomise Element Order:","checkbox");
|
nickjillings@1592
|
233 var repeatCount = attributePair("Repeat Page Count:","number");
|
nickjillings@1592
|
234 repeatCount[1].value = 0;
|
nickjillings@1592
|
235 var loop = attributePair("Loop Element Playback","checkbox");
|
nickjillings@1592
|
236 var elementComments = attributePair("Enable Comment Boxes","checkbox");
|
nickjillings@1592
|
237 id.forEach(function(item){attributes.appendChild(item);},false);
|
nickjillings@1592
|
238 hostURL.forEach(function(item){attributes.appendChild(item);},false);
|
nickjillings@1592
|
239 sampleRate.forEach(function(item){attributes.appendChild(item);},false);
|
nickjillings@1592
|
240 hostURL.forEach(function(item){attributes.appendChild(item);},false);
|
nickjillings@1592
|
241 randomiseOrder.forEach(function(item){attributes.appendChild(item);},false);
|
nickjillings@1592
|
242 repeatCount.forEach(function(item){attributes.appendChild(item);},false);
|
nickjillings@1592
|
243 loop.forEach(function(item){attributes.appendChild(item);},false);
|
nickjillings@1592
|
244 elementComments.forEach(function(item){attributes.appendChild(item);},false);
|
nickjillings@1592
|
245
|
nickjillings@1592
|
246 node.appendChild(nodeTitle);
|
nickjillings@1592
|
247 node.appendChild(attributes);
|
nickjillings@1592
|
248
|
nickjillings@1592
|
249 var pretest = document.createElement("div");
|
nickjillings@1592
|
250 pretest.setAttribute('class','head');
|
nickjillings@1592
|
251 pretest.setAttribute('name','pre-test');
|
nickjillings@1592
|
252 var pretestTitle = document.createElement("h4");
|
nickjillings@1592
|
253 pretestTitle.textContent = "Pre Test";
|
nickjillings@1592
|
254 var buttonAddQ = document.createElement("button");
|
nickjillings@1592
|
255 buttonAddQ.textContent = "Add Pre Test Question";
|
nickjillings@1592
|
256 buttonAddQ.onclick = function(){event.srcElement.parentElement.appendChild(questionNode());};
|
nickjillings@1592
|
257 var buttonAddS = document.createElement("button");
|
nickjillings@1592
|
258 buttonAddS.textContent = "Add Pre Test Statement";
|
nickjillings@1592
|
259 buttonAddS.onclick = function(){event.srcElement.parentElement.appendChild(statementNode());};
|
nickjillings@1592
|
260 pretest.appendChild(pretestTitle);
|
nickjillings@1592
|
261 pretest.appendChild(buttonAddQ);
|
nickjillings@1592
|
262 pretest.appendChild(buttonAddS);
|
nickjillings@1592
|
263
|
nickjillings@1592
|
264 var posttest = document.createElement("div");
|
nickjillings@1592
|
265 posttest.setAttribute('class','head');
|
nickjillings@1592
|
266 posttest.setAttribute('name','post-test');
|
nickjillings@1592
|
267 var posttestTitle = document.createElement("h4");
|
nickjillings@1592
|
268 posttestTitle.textContent = "Post Test";
|
nickjillings@1592
|
269 var buttonAddQ = document.createElement("button");
|
nickjillings@1592
|
270 buttonAddQ.textContent = "Add Post Test Question";
|
nickjillings@1592
|
271 buttonAddQ.onclick = function(){event.srcElement.parentElement.appendChild(questionNode());};
|
nickjillings@1592
|
272 var buttonAddS = document.createElement("button");
|
nickjillings@1592
|
273 buttonAddS.textContent = "Add Post Test Statement";
|
nickjillings@1592
|
274 buttonAddS.onclick = function(){event.srcElement.parentElement.appendChild(statementNode());};
|
nickjillings@1592
|
275 posttest.appendChild(posttestTitle);
|
nickjillings@1592
|
276 posttest.appendChild(buttonAddQ);
|
nickjillings@1592
|
277 posttest.appendChild(buttonAddS);
|
nickjillings@1592
|
278
|
nickjillings@1592
|
279 node.appendChild(pretest);
|
nickjillings@1592
|
280 node.appendChild(posttest);
|
nickjillings@1592
|
281
|
nickjillings@1592
|
282 var newAudioElementButton = document.createElement("button");
|
nickjillings@1592
|
283 newAudioElementButton.textContent = "Add audio element";
|
nickjillings@1592
|
284 newAudioElementButton.onclick = function(){
|
nickjillings@1592
|
285 event.srcElement.parentElement.appendChild(audioElementNode());
|
nickjillings@1592
|
286 };
|
nickjillings@1592
|
287 node.appendChild(newAudioElementButton);
|
nickjillings@1592
|
288
|
nickjillings@1592
|
289 var newCommentButton = document.createElement("button");
|
nickjillings@1592
|
290 newCommentButton.textContent = "Add Comment Box";
|
nickjillings@1592
|
291 newCommentButton.onclick = function() {
|
nickjillings@1592
|
292 event.srcElement.parentElement.appendChild(commentBox());
|
nickjillings@1592
|
293 };
|
nickjillings@1592
|
294 node.appendChild(newCommentButton);
|
nickjillings@1592
|
295
|
nickjillings@1592
|
296 var removeButton = document.createElement("button");
|
nickjillings@1592
|
297 removeButton.textContent = "Remove Audio Holder";
|
nickjillings@1592
|
298 removeButton.onclick = removeNode;
|
nickjillings@1592
|
299 node.appendChild(removeButton);
|
nickjillings@1592
|
300 return node;
|
nickjillings@1592
|
301 }
|
nickjillings@1592
|
302
|
nickjillings@1592
|
303 function audioElementNode() {
|
nickjillings@1592
|
304 var parentStructure = event.srcElement.parentElement.childNodes;
|
nickjillings@1592
|
305 var audioElemCounts = 0;
|
nickjillings@1592
|
306 for (var i=0; i<parentStructure.length; i++) {
|
nickjillings@1592
|
307 if (parentStructure[i].getAttribute('name') == "audio-element")
|
nickjillings@1592
|
308 {audioElemCounts++;}
|
nickjillings@1592
|
309 }
|
nickjillings@1592
|
310 var node = document.createElement('div');
|
nickjillings@1592
|
311 node.setAttribute('class','head');
|
nickjillings@1592
|
312 node.setAttribute('name','audio-element');
|
nickjillings@1592
|
313 var nodeTitle = document.createElement('span');
|
nickjillings@1592
|
314 nodeTitle.textContent = 'Audio Element '+(audioElemCounts+1);
|
nickjillings@1592
|
315
|
nickjillings@1592
|
316 var attributes = document.createElement("div");
|
nickjillings@1592
|
317 attributes.setAttribute('class','attrib');
|
nickjillings@1594
|
318 var id = attributePair("ID:","text",true);
|
nickjillings@1592
|
319 id[1].value = audioElemCounts;
|
nickjillings@1594
|
320 var url = attributePair("URL:","text",true);
|
nickjillings@1592
|
321 id.forEach(function(item){attributes.appendChild(item);},false);
|
nickjillings@1592
|
322 url.forEach(function(item){attributes.appendChild(item);},false);
|
nickjillings@1592
|
323
|
nickjillings@1592
|
324 node.appendChild(nodeTitle);
|
nickjillings@1592
|
325 node.appendChild(attributes);
|
nickjillings@1592
|
326
|
nickjillings@1592
|
327 var removeButton = document.createElement("button");
|
nickjillings@1592
|
328 removeButton.textContent = "Remove Audio Element";
|
nickjillings@1592
|
329 removeButton.onclick = removeNode;
|
nickjillings@1592
|
330 node.appendChild(removeButton);
|
nickjillings@1592
|
331 return node;
|
nickjillings@1592
|
332 }
|
nickjillings@1592
|
333
|
nickjillings@1592
|
334 function commentBox() {
|
nickjillings@1592
|
335 var node = document.createElement('div');
|
nickjillings@1592
|
336 node.setAttribute('class','head');
|
nickjillings@1592
|
337 node.setAttribute('name','comment-question');
|
nickjillings@1592
|
338 var nodeTitle = document.createElement('h4');
|
nickjillings@1592
|
339 nodeTitle.textContent = "Comment Box";
|
nickjillings@1592
|
340
|
nickjillings@1592
|
341 var attributes = document.createElement('div');
|
nickjillings@1592
|
342 attributes.setAttribute('class','attrib');
|
nickjillings@1594
|
343 var id = attributePair("ID:",'text',true);
|
nickjillings@1594
|
344 var question = attributePair("Question:",'text',true);
|
nickjillings@1592
|
345 id.forEach(function(item){attributes.appendChild(item);},false);
|
nickjillings@1592
|
346 question.forEach(function(item){attributes.appendChild(item);},false);
|
nickjillings@1592
|
347
|
nickjillings@1592
|
348 var removeButton = document.createElement("button");
|
nickjillings@1592
|
349 removeButton.textContent = "Remove Comment Box";
|
nickjillings@1592
|
350 removeButton.onclick = removeNode;
|
nickjillings@1592
|
351
|
nickjillings@1592
|
352 node.appendChild(nodeTitle);
|
nickjillings@1592
|
353 node.appendChild(attributes);
|
nickjillings@1592
|
354 node.appendChild(removeButton);
|
nickjillings@1592
|
355 return node;
|
nickjillings@1591
|
356 }
|
nickjillings@1591
|
357 </script>
|
nickjillings@1591
|
358 <style>
|
nickjillings@1591
|
359 div {
|
nickjillings@1591
|
360 padding: 2px;
|
nickjillings@1591
|
361 margin-top: 2px;
|
nickjillings@1591
|
362 margin-bottom: 2px;
|
nickjillings@1591
|
363 }
|
nickjillings@1591
|
364 div.head{
|
nickjillings@1591
|
365 margin-left: 10px;
|
nickjillings@1591
|
366 border: black;
|
nickjillings@1591
|
367 border-width: 2px;
|
nickjillings@1591
|
368 border-style: solid;
|
nickjillings@1591
|
369 }
|
nickjillings@1591
|
370 div.attrib{
|
nickjillings@1591
|
371 margin-left:25px;
|
nickjillings@1591
|
372 border: black;
|
nickjillings@1591
|
373 border-width: 2px;
|
nickjillings@1591
|
374 border-style: dashed;
|
nickjillings@1591
|
375 margin-bottom: 10px;
|
nickjillings@1591
|
376 }
|
nickjillings@1591
|
377 </style>
|
nickjillings@1591
|
378
|
nickjillings@1749
|
379 </head>
|
nickjillings@1749
|
380
|
nickjillings@1749
|
381 <body>
|
nickjillings@1591
|
382 <h1>Create Test Setup XML</h1>
|
nickjillings@1594
|
383 <button id="validateXML" onclick="buttonClickedValidate();">Validate</button>
|
nickjillings@1594
|
384 <button id="createXML" onclick="buttonClickedValidate();" disabled>Submit</button>
|
nickjillings@1594
|
385 <span id="errorMessage" visibility="hidden"></span>
|
nickjillings@1591
|
386 <div id="topLevelBody" align="left">
|
nickjillings@1749
|
387 <!-- Interface goes here -->
|
nickjillings@1591
|
388 <div name='test-setup'>
|
nickjillings@1591
|
389 <div id="setup" class="head">
|
nickjillings@1591
|
390 <h2>Setup Tag</h2>
|
nickjillings@1591
|
391 <div id="setup-attribs" class="attrib">
|
nickjillings@1591
|
392 <span>Interface</span>
|
nickjillings@1591
|
393 <select id="interface">
|
nickjillings@1591
|
394 <option value='APE'>APE</option>
|
nickjillings@1591
|
395 </select>
|
nickjillings@1591
|
396 <span>Project Return</span>
|
nickjillings@1594
|
397 <input type="text" id="projectReturn" mandatory="false">
|
nickjillings@1591
|
398 <span>Randomise Test Page Order</span>
|
nickjillings@1591
|
399 <input id="randomisePageOrder" type="checkbox" value="false">
|
nickjillings@1591
|
400 <span>Collect Session Metrics</span>
|
nickjillings@1591
|
401 <input id="collectMetrics" type="checkbox">
|
nickjillings@1591
|
402 </div>
|
nickjillings@1591
|
403 <div id="globalPreTest" class="head">
|
nickjillings@1591
|
404 <h3>Pre Test</h3>
|
nickjillings@1591
|
405 <button id="addPreTestQ" onclick="event.srcElement.parentElement.appendChild(questionNode());">Add Pre Test Question</button>
|
nickjillings@1591
|
406 <button id="addPreTestS" onclick="event.srcElement.parentElement.appendChild(statementNode());">Add Pre Test Statement</button>
|
nickjillings@1591
|
407 </div>
|
nickjillings@1591
|
408 <div id="globalPostTest" class="head">
|
nickjillings@1591
|
409 <h3>Post Test</h3>
|
nickjillings@1591
|
410 <button id="addPreTestQ" onclick="event.srcElement.parentElement.appendChild(questionNode());">Add Post Test Question</button>
|
nickjillings@1591
|
411 <button id="addPreTestS" onclick="event.srcElement.parentElement.appendChild(statementNode());">Add Post Test Statement</button>
|
nickjillings@1591
|
412 </div>
|
nickjillings@1591
|
413 <div id="globalMetric" class="head">
|
nickjillings@1591
|
414 <h3>Global Metrics</h3>
|
nickjillings@1591
|
415 <div id="globalMetric-attrib" class="attrib">
|
nickjillings@1591
|
416 <span>Test Timer</span>
|
nickjillings@1591
|
417 <input type="checkbox" id="testTimer" />
|
nickjillings@1591
|
418 <span>Element Playback Timer</span>
|
nickjillings@1591
|
419 <input type="checkbox" id="elementTimer" />
|
nickjillings@1591
|
420 <span>Element Initial Position</span>
|
nickjillings@1591
|
421 <input type="checkbox" id="elementInitialPosition" />
|
nickjillings@1591
|
422 <span>Element Tracker</span>
|
nickjillings@1591
|
423 <input type="checkbox" id="elementTracker" />
|
nickjillings@1591
|
424 <span>Element Flag Listened To</span>
|
nickjillings@1595
|
425 <input type="checkbox" id="elementFlagListenedTo" />
|
nickjillings@1591
|
426 <span>Element Flag Moved</span>
|
nickjillings@1591
|
427 <input type="checkbox" id="elementFlagMoved" />
|
nickjillings@1591
|
428 </div>
|
nickjillings@1591
|
429 </div>
|
nickjillings@1592
|
430 <button id="addAudioHolder" onclick="event.srcElement.parentElement.appendChild(audioHolderNode());">Add AudioHolder / Test Page</button>
|
nickjillings@1591
|
431 </div>
|
nickjillings@1591
|
432 </div>
|
nickjillings@1749
|
433 </div>
|
nickjillings@1749
|
434 </body>
|
nickjillings@1749
|
435 </html>
|