changeset 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 c3a2be2b3981
files test_create/test_create.html
diffstat 1 files changed, 80 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/test_create/test_create.html	Tue Jun 02 12:24:19 2015 +0100
+++ b/test_create/test_create.html	Tue Jun 02 15:18:40 2015 +0100
@@ -48,7 +48,7 @@
 				var ready = validate();
 				if (ready == false) {
 					var errMsg = document.getElementById('errorMessage');
-					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.";
+					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.";
 					errMsg.style.visibility = 'visible';
 					document.getElementById('createXML').disabled = true;
 					
@@ -60,6 +60,57 @@
 				}
 			}
 			
+			function buttonClickedSubmit() {
+				var ready = validate();
+				if (ready == true) {
+					var xmlDoc = document.createElement('BrowserEvalProjectDocument');
+					var setup = document.createElement('setup');
+					setup.setAttribute('interface',document.getElementById('interface').value);
+					if (document.getElementById('projectReturn').value == "") {
+						setup.setAttribute('projectReturn',"null");
+					} else {
+						setup.setAttribute('projectReturn',document.getElementById('projectReturn').value);
+					}
+					setup.setAttribute('randomiseOrder',document.getElementById('randomisePageOrder').checked);
+					setup.setAttribute('collectMetrics',document.getElementById('collectMetrics').checked);
+					
+					var globalPreTest = document.createElement('preTest');
+					var options = document.getElementById('globalPreTest').getElementsByClassName('head');
+					constructPrePost(globalPreTest, options);
+					
+					var globalPostTest = document.createElement('postTest');
+					options = document.getElementById('globalPostTest').getElementsByClassName('head');
+					constructPrePost(globalPostTest, options);
+					
+					var globalMetrics = document.createElement('metric');
+					options = document.getElementById('globalMetric').getElementsByClassName('attrib')[0].getElementsByTagName('input');
+					for (var i=0; i<options.length; i++) {
+						if (options[i].checked) {
+							var metric = document.createElement('metricEnable');
+							metric.textContent = options[i].id;
+							globalMetrics.appendChild(metric);
+						}
+					}
+					
+				}
+			}
+			
+			function constructPrePost(parent, options) {
+				for (var i=0; i<options.length; i++) {
+					var elem = options[i];
+					var attributes = elem.getElementsByClassName('attrib')[0].getElementsByTagName('input');
+					if (elem.getAttribute('name') == 'question-node') {
+						var node = document.createElement('question');
+						node.setAttribute('id',attributes[0].value);
+						node.textContent = attributes[1].value;
+					} else if (elem.getAttribute('name') == 'statement-node') {
+						var node = document.createElement('statment');
+						node.textContent = attributes[0].value;
+					}
+					parent.appendChild(node);
+				}
+			}
+			
 			function validate() {
 				var canExport = true;
 				// Checks if the XML can be created from the given entries
@@ -79,6 +130,33 @@
 						}
 					}
 				}
+				
+				var audioHolders = document.getElementsByName('audio-holder');
+				for (var i=0; i<audioHolders.length; i++) {
+					var divs = audioHolders[i].getElementsByClassName('head');
+					var IDs = [];
+					for (var j=0; j<divs.length; j++) {
+						if (divs[j].getAttribute('name') == 'audio-element') {
+							var obj = divs[j].getElementsByClassName('attrib')[0].children[1];
+							var aeID = obj.value;
+							if (aeID != "") {
+								var unique = true;
+								for (var k=0; k<IDs.length; k++) {
+									if (aeID == IDs[k]) {
+										unique = false;
+										break;
+									}
+								}
+								if (unique == true) {
+									IDs.push(aeID);
+								} else {
+									errorInput(obj);
+									canExport = false;
+								}
+							}
+						}
+					}
+				}
 				return canExport;
 			};
 			
@@ -344,7 +422,7 @@
 							<span>Element Tracker</span>
 							<input type="checkbox" id="elementTracker" />
 							<span>Element Flag Listened To</span>
-							<input type="checkbox" id="elementFlagListened" />
+							<input type="checkbox" id="elementFlagListenedTo" />
 							<span>Element Flag Moved</span>
 							<input type="checkbox" id="elementFlagMoved" />
 						</div>