changeset 1261:158e06debceb

Fix for #1560. Fix for loadProjectSpecCallback error if Parser returns undefined.
author Nicholas Jillings <n.g.r.jillings@se14.qmul.ac.uk>
date Mon, 21 Mar 2016 15:01:57 +0000
parents f388f9e34e91
children 037d1365f1c3
files core.js example_eval/radio_example.xml
diffstat 2 files changed, 12 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/core.js	Mon Mar 21 14:31:43 2016 +0000
+++ b/core.js	Mon Mar 21 15:01:57 2016 +0000
@@ -182,6 +182,16 @@
 		document.getElementsByTagName('body')[0].appendChild(errorNode[0]);
 		return;
 	}
+    if (responseDocument == undefined) {
+        var msg = document.createElement("h3");
+		msg.textContent = "FATAL ERROR";
+		var span = document.createElement("span");
+		span.textContent = "The project XML was not decoded properly, try refreshing your browser and clearing caches. If the problem persists, contact the test creator.";
+		document.getElementsByTagName('body')[0].innerHTML = null;
+		document.getElementsByTagName('body')[0].appendChild(msg);
+		document.getElementsByTagName('body')[0].appendChild(span);
+		return;
+    }
     if (responseDocument.children[0].nodeName == "waet") {
         // document is a specification
         
@@ -844,11 +854,8 @@
 		}
 		for (var i=0; i<pageHolder.length; i++)
 		{
-			pageHolder[i].presentedId = i;
-		}
-		for (var i=0; i<specification.pages.length; i++)
-		{
 			if (specification.testPages <= i && specification.testPages != 0) {break;}
+            pageHolder[i].presentedId = i;
 			this.stateMap.push(pageHolder[i]);
             storage.createTestPageStore(pageHolder[i]);
             for (var element of pageHolder[i].audioElements) {
--- a/example_eval/radio_example.xml	Mon Mar 21 14:31:43 2016 +0000
+++ b/example_eval/radio_example.xml	Mon Mar 21 15:01:57 2016 +0000
@@ -18,7 +18,7 @@
 			<interfaceoption type="show" name="page-count"/>
 		</interface>
 	</setup>
-	<page id='test-0' hostURL="example_eval/" randomiseOrder='true' repeatCount='0' loop='true' showElementComments='true' loudness="-23">
+	<page id='test-0' hostURL="example_eval/" randomiseOrder='true' repeatCount='4' loop='true' showElementComments='true' loudness="-23">
 		<interface>
 			<scales>
 				<scalelabel position="0">(1) Very Annoying</scalelabel>