Mercurial > hg > webaudioevaluationtool
comparison test_create/test_create.html @ 163:9f67e67471ce Dev_main
Stash create_test. Implementing submit. Need to test on OSX
author | Nicholas Jillings <n.g.r.jillings@se14.qmul.ac.uk> |
---|---|
date | Tue, 02 Jun 2015 15:18:40 +0100 |
parents | 918d9a5943cd |
children | dcc553484103 |
comparison
equal
deleted
inserted
replaced
162:918d9a5943cd | 163:9f67e67471ce |
---|---|
46 | 46 |
47 function buttonClickedValidate() { | 47 function buttonClickedValidate() { |
48 var ready = validate(); | 48 var ready = validate(); |
49 if (ready == false) { | 49 if (ready == false) { |
50 var errMsg = document.getElementById('errorMessage'); | 50 var errMsg = document.getElementById('errorMessage'); |
51 errMsg.textContent = "There were some errors with your XML. Any input boxes highlighted in red are invalid because they are empty. Please fill these in correctly. Any boxes which are yellow are not-invalid but will use the default value."; | 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."; |
52 errMsg.style.visibility = 'visible'; | 52 errMsg.style.visibility = 'visible'; |
53 document.getElementById('createXML').disabled = true; | 53 document.getElementById('createXML').disabled = true; |
54 | 54 |
55 } else { | 55 } else { |
56 var errMsg = document.getElementById('errorMessage'); | 56 var errMsg = document.getElementById('errorMessage'); |
57 errMsg.textContent = ""; | 57 errMsg.textContent = ""; |
58 errMsg.style.visiblity = 'hidden'; | 58 errMsg.style.visiblity = 'hidden'; |
59 document.getElementById('createXML').disabled = false; | 59 document.getElementById('createXML').disabled = false; |
60 } | |
61 } | |
62 | |
63 function buttonClickedSubmit() { | |
64 var ready = validate(); | |
65 if (ready == true) { | |
66 var xmlDoc = document.createElement('BrowserEvalProjectDocument'); | |
67 var setup = document.createElement('setup'); | |
68 setup.setAttribute('interface',document.getElementById('interface').value); | |
69 if (document.getElementById('projectReturn').value == "") { | |
70 setup.setAttribute('projectReturn',"null"); | |
71 } else { | |
72 setup.setAttribute('projectReturn',document.getElementById('projectReturn').value); | |
73 } | |
74 setup.setAttribute('randomiseOrder',document.getElementById('randomisePageOrder').checked); | |
75 setup.setAttribute('collectMetrics',document.getElementById('collectMetrics').checked); | |
76 | |
77 var globalPreTest = document.createElement('preTest'); | |
78 var options = document.getElementById('globalPreTest').getElementsByClassName('head'); | |
79 constructPrePost(globalPreTest, options); | |
80 | |
81 var globalPostTest = document.createElement('postTest'); | |
82 options = document.getElementById('globalPostTest').getElementsByClassName('head'); | |
83 constructPrePost(globalPostTest, options); | |
84 | |
85 var globalMetrics = document.createElement('metric'); | |
86 options = document.getElementById('globalMetric').getElementsByClassName('attrib')[0].getElementsByTagName('input'); | |
87 for (var i=0; i<options.length; i++) { | |
88 if (options[i].checked) { | |
89 var metric = document.createElement('metricEnable'); | |
90 metric.textContent = options[i].id; | |
91 globalMetrics.appendChild(metric); | |
92 } | |
93 } | |
94 | |
95 } | |
96 } | |
97 | |
98 function constructPrePost(parent, options) { | |
99 for (var i=0; i<options.length; i++) { | |
100 var elem = options[i]; | |
101 var attributes = elem.getElementsByClassName('attrib')[0].getElementsByTagName('input'); | |
102 if (elem.getAttribute('name') == 'question-node') { | |
103 var node = document.createElement('question'); | |
104 node.setAttribute('id',attributes[0].value); | |
105 node.textContent = attributes[1].value; | |
106 } else if (elem.getAttribute('name') == 'statement-node') { | |
107 var node = document.createElement('statment'); | |
108 node.textContent = attributes[0].value; | |
109 } | |
110 parent.appendChild(node); | |
60 } | 111 } |
61 } | 112 } |
62 | 113 |
63 function validate() { | 114 function validate() { |
64 var canExport = true; | 115 var canExport = true; |
74 } else { | 125 } else { |
75 warningInput(inputs[i]); | 126 warningInput(inputs[i]); |
76 } | 127 } |
77 } else { | 128 } else { |
78 goodInput(inputs[i]); | 129 goodInput(inputs[i]); |
130 } | |
131 } | |
132 } | |
133 | |
134 var audioHolders = document.getElementsByName('audio-holder'); | |
135 for (var i=0; i<audioHolders.length; i++) { | |
136 var divs = audioHolders[i].getElementsByClassName('head'); | |
137 var IDs = []; | |
138 for (var j=0; j<divs.length; j++) { | |
139 if (divs[j].getAttribute('name') == 'audio-element') { | |
140 var obj = divs[j].getElementsByClassName('attrib')[0].children[1]; | |
141 var aeID = obj.value; | |
142 if (aeID != "") { | |
143 var unique = true; | |
144 for (var k=0; k<IDs.length; k++) { | |
145 if (aeID == IDs[k]) { | |
146 unique = false; | |
147 break; | |
148 } | |
149 } | |
150 if (unique == true) { | |
151 IDs.push(aeID); | |
152 } else { | |
153 errorInput(obj); | |
154 canExport = false; | |
155 } | |
156 } | |
79 } | 157 } |
80 } | 158 } |
81 } | 159 } |
82 return canExport; | 160 return canExport; |
83 }; | 161 }; |
342 <span>Element Initial Position</span> | 420 <span>Element Initial Position</span> |
343 <input type="checkbox" id="elementInitialPosition" /> | 421 <input type="checkbox" id="elementInitialPosition" /> |
344 <span>Element Tracker</span> | 422 <span>Element Tracker</span> |
345 <input type="checkbox" id="elementTracker" /> | 423 <input type="checkbox" id="elementTracker" /> |
346 <span>Element Flag Listened To</span> | 424 <span>Element Flag Listened To</span> |
347 <input type="checkbox" id="elementFlagListened" /> | 425 <input type="checkbox" id="elementFlagListenedTo" /> |
348 <span>Element Flag Moved</span> | 426 <span>Element Flag Moved</span> |
349 <input type="checkbox" id="elementFlagMoved" /> | 427 <input type="checkbox" id="elementFlagMoved" /> |
350 </div> | 428 </div> |
351 </div> | 429 </div> |
352 <button id="addAudioHolder" onclick="event.srcElement.parentElement.appendChild(audioHolderNode());">Add AudioHolder / Test Page</button> | 430 <button id="addAudioHolder" onclick="event.srcElement.parentElement.appendChild(audioHolderNode());">Add AudioHolder / Test Page</button> |