Mercurial > hg > webaudioevaluationtool
changeset 176:9eda81aa9fe0 Dev_main
Moved non interface specific code from loadInterface in ape.js to core.js
author | Nicholas Jillings <n.g.r.jillings@se14.qmul.ac.uk> |
---|---|
date | Thu, 04 Jun 2015 10:43:06 +0100 |
parents | fe2b350c2fbd |
children | 25c296b254f8 |
files | ape.js core.js |
diffstat | 2 files changed, 87 insertions(+), 85 deletions(-) [+] |
line wrap: on
line diff
--- a/ape.js Thu Jun 04 10:36:05 2015 +0100 +++ b/ape.js Thu Jun 04 10:43:06 2015 +0100 @@ -30,85 +30,7 @@ // xmlDoc MUST already be parsed by jQuery! var xmlSetup = xmlDoc.find('setup'); // Should put in an error function here incase of malprocessed or malformed XML - - // Create pre and post test questions - - var preTest = xmlSetup.find('PreTest'); - var postTest = xmlSetup.find('PostTest'); - preTest = preTest[0]; - postTest = postTest[0]; - - if (preTest == undefined) {preTest = document.createElement("preTest");} - if (postTest == undefined){postTest= document.createElement("postTest");} - - testState.stateMap.push(preTest); - - // Extract the different test XML DOM trees - var audioHolders = xmlDoc.find('audioHolder'); - var testXMLSetups = []; - audioHolders.each(function(index,element) { - var repeatN = element.attributes['repeatCount'].value; - for (var r=0; r<=repeatN; r++) { - testXMLSetups.push(element); - } - }); - - // New check if we need to randomise the test order - var randomise = xmlSetup[0].attributes['randomiseOrder']; - if (randomise != undefined) { - if (randomise.value === 'true'){ - randomise = true; - } else { - randomise = false; - } - } else { - randomise = false; - } - - if (randomise) - { - testXMLSetups = randomiseOrder(testXMLSetups); - } - - $(testXMLSetups).each(function(index,elem){ - testState.stateMap.push(elem); - }) - - testState.stateMap.push(postTest); - - // Obtain the metrics enabled - var metricNode = xmlSetup.find('Metric'); - var metricNode = metricNode.find('metricEnable'); - metricNode.each(function(index,node){ - var enabled = node.textContent; - switch(enabled) - { - case 'testTimer': - sessionMetrics.prototype.enableTestTimer = true; - break; - case 'elementTimer': - sessionMetrics.prototype.enableElementTimer = true; - break; - case 'elementTracker': - sessionMetrics.prototype.enableElementTracker = true; - break; - case 'elementListenTracker': - sessionMetrics.prototype.enableElementListenTracker = true; - break; - case 'elementInitialPosition': - sessionMetrics.prototype.enableElementInitialPosition = true; - break; - case 'elementFlagListenedTo': - sessionMetrics.prototype.enableFlagListenedTo = true; - break; - case 'elementFlagMoved': - sessionMetrics.prototype.enableFlagMoved = true; - break; - case 'elementFlagComments': - sessionMetrics.prototype.enableFlagComments = true; - break; - } - }); + // Create APE specific metric functions audioEngineContext.metric.initialiseTest = function() @@ -256,8 +178,6 @@ testContent.style.zIndex = 1; insertPoint.innerHTML = null; // Clear the current schema - currentState = 'preTest'; - // Inject into HTML testContent.appendChild(title); // Insert the title testContent.appendChild(pagetitle);
--- a/core.js Thu Jun 04 10:36:05 2015 +0100 +++ b/core.js Thu Jun 04 10:43:06 2015 +0100 @@ -10,7 +10,6 @@ var projectXML; // Hold the parsed setup XML var popup; // Hold the interfacePopup object var testState; -var currentState; // Keep track of the current state (pre/post test, which test, final test? first test?) var currentTrackOrder = []; // Hold the current XML tracks in their (randomised) order var audioEngineContext; // The custome AudioEngine object var projectReturn; // Hold the URL for the return @@ -252,7 +251,7 @@ // Can be used to over-rule default behaviour pageXMLSave(store, testXML, testId); - } + }; this.initialiseInnerState = function(testXML) { // Parses the received testXML for pre and post test options @@ -266,7 +265,7 @@ this.currentStateMap.push(postTest); this.currentIndex = -1; this.advanceInnerState(); - } + }; this.advanceInnerState = function() { this.currentIndex++; @@ -285,7 +284,7 @@ this.advanceInnerState(); } } - } + }; this.previousState = function(){}; } @@ -327,6 +326,89 @@ // Now extract the setup tag var xmlSetup = projectXML.find('setup'); + + + // Create pre and post test questions + + var preTest = xmlSetup.find('PreTest'); + var postTest = xmlSetup.find('PostTest'); + preTest = preTest[0]; + postTest = postTest[0]; + + if (preTest == undefined) {preTest = document.createElement("preTest");} + if (postTest == undefined){postTest= document.createElement("postTest");} + + testState.stateMap.push(preTest); + + // Extract the different test XML DOM trees + var audioHolders = projectXML.find('audioHolder'); + var testXMLSetups = []; + audioHolders.each(function(index,element) { + var repeatN = element.attributes['repeatCount'].value; + for (var r=0; r<=repeatN; r++) { + testXMLSetups.push(element); + } + }); + + // New check if we need to randomise the test order + var randomise = xmlSetup[0].attributes['randomiseOrder']; + if (randomise != undefined) { + if (randomise.value === 'true'){ + randomise = true; + } else { + randomise = false; + } + } else { + randomise = false; + } + + if (randomise) + { + testXMLSetups = randomiseOrder(testXMLSetups); + } + + $(testXMLSetups).each(function(index,elem){ + testState.stateMap.push(elem); + }); + + testState.stateMap.push(postTest); + + // Obtain the metrics enabled + var metricNode = xmlSetup.find('Metric'); + var metricNode = metricNode.find('metricEnable'); + metricNode.each(function(index,node){ + var enabled = node.textContent; + switch(enabled) + { + case 'testTimer': + sessionMetrics.prototype.enableTestTimer = true; + break; + case 'elementTimer': + sessionMetrics.prototype.enableElementTimer = true; + break; + case 'elementTracker': + sessionMetrics.prototype.enableElementTracker = true; + break; + case 'elementListenTracker': + sessionMetrics.prototype.enableElementListenTracker = true; + break; + case 'elementInitialPosition': + sessionMetrics.prototype.enableElementInitialPosition = true; + break; + case 'elementFlagListenedTo': + sessionMetrics.prototype.enableFlagListenedTo = true; + break; + case 'elementFlagMoved': + sessionMetrics.prototype.enableFlagMoved = true; + break; + case 'elementFlagComments': + sessionMetrics.prototype.enableFlagComments = true; + break; + } + }); + + + // Detect the interface to use and load the relevant javascripts. var interfaceType = xmlSetup[0].attributes['interface']; var interfaceJS = document.createElement('script');