Mercurial > hg > webaudioevaluationtool
changeset 660:44d281129d55
Shuffled project.xml so metrics and pre/post are part of setup tag. Split pre-post button interface to separate functions
author | Nicholas Jillings <n.g.r.jillings@se14.qmul.ac.uk> |
---|---|
date | Fri, 10 Apr 2015 12:48:07 +0100 |
parents | 4b5cfa1ab589 |
children | 97ade670d7c1 |
files | ape.js example_eval/project.xml |
diffstat | 2 files changed, 74 insertions(+), 62 deletions(-) [+] |
line wrap: on
line diff
--- a/ape.js Fri Apr 10 12:23:57 2015 +0100 +++ b/ape.js Fri Apr 10 12:48:07 2015 +0100 @@ -121,10 +121,8 @@ testContent.appendChild(feedbackHolder); insertPoint.appendChild(testContent); - loadTest(testXMLSetups[0]); - - var preTest = xmlDoc.find('PreTest'); - var postTest = xmlDoc.find('PostTest'); + var preTest = xmlSetup.find('PreTest'); + var postTest = xmlSetup.find('PostTest'); preTest = preTest[0]; postTest = postTest[0]; if (preTest != undefined || postTest != undefined) @@ -166,55 +164,17 @@ } var nextButton = document.createElement('button'); nextButton.id = 'preTestNext'; - nextButton.value = '1'; + nextButton.value = '0'; nextButton.innerHTML = 'Next'; - nextButton.onclick = function() { - // Need to find and parse preTest again! - var preTest = projectXML.find('PreTest')[0]; - // Check if current state is a question! - if (preTest.children[this.value-1].nodeName == 'question') { - var questionId = preTest.children[this.value-1].attributes['id'].value; - var questionHold = document.createElement('comment'); - var questionResponse = document.getElementById(questionId + 'response'); - questionHold.id = questionId; - questionHold.innerHTML = questionResponse.value; - preTestQuestions.appendChild(questionHold); - } - if (this.value < preTest.children.length) - { - // More to process - var child = preTest.children[this.value]; - if (child.nodeName == 'statement') - { - preTestOption.innerHTML = '<span>'+child.innerHTML+'</span>'; - } else if (child.nodeName == 'question') - { - var textHold = document.createElement('span'); - textHold.innerHTML = child.innerHTML; - var textEnter = document.createElement('textarea'); - textEnter.id = child.attributes['id'].value + 'response'; - var br = document.createElement('br'); - preTestOption.innerHTML = null; - preTestOption.appendChild(textHold); - preTestOption.appendChild(br); - preTestOption.appendChild(textEnter); - } - } else { - // Time to clear - preTestHolder.style.zIndex = -1; - preTestHolder.style.visibility = 'hidden'; - var blank = document.getElementsByClassName('testHalt')[0]; - blank.style.zIndex = -2; - blank.style.visibility = 'hidden'; - } - this.value++; - }; + nextButton.onclick = preTestButtonClick; preTestHolder.appendChild(preTestOption); preTestHolder.appendChild(nextButton); insertPoint.appendChild(preTestHolder); } + // Load the full interface + loadTest(testXMLSetups[0]); } function loadTest(textXML) @@ -302,6 +262,57 @@ function preTestButtonClick() { // Called on click of pre-test button + // Need to find and parse preTest again! + var xmlSetup = projectXML.find('setup'); + var preTest = xmlSetup.find('PreTest')[0]; + var preTestOption = document.getElementById('preTest'); + // Check if current state is a question! + if (preTest.children[this.value].nodeName == 'question') { + var questionId = preTest.children[this.value].attributes['id'].value; + var questionHold = document.createElement('comment'); + var questionResponse = document.getElementById(questionId + 'response'); + questionHold.id = questionId; + questionHold.innerHTML = questionResponse.value; + preTestQuestions.appendChild(questionHold); + } + this.value++; + if (this.value < preTest.children.length) + { + // More to process + var child = preTest.children[this.value]; + if (child.nodeName == 'statement') + { + preTestOption.innerHTML = '<span>'+child.innerHTML+'</span>'; + } else if (child.nodeName == 'question') + { + var textHold = document.createElement('span'); + textHold.innerHTML = child.innerHTML; + var textEnter = document.createElement('textarea'); + textEnter.id = child.attributes['id'].value + 'response'; + var br = document.createElement('br'); + preTestOption.innerHTML = null; + preTestOption.appendChild(textHold); + preTestOption.appendChild(br); + preTestOption.appendChild(textEnter); + } + } else { + // Time to clear + preTestHolder.style.zIndex = -1; + preTestHolder.style.visibility = 'hidden'; + var blank = document.getElementsByClassName('testHalt')[0]; + blank.style.zIndex = -2; + blank.style.visibility = 'hidden'; + } +} + +function showPopup() +{ + +} + +function hidePopup() +{ + } function dragEnd(ev) {
--- a/example_eval/project.xml Fri Apr 10 12:23:57 2015 +0100 +++ b/example_eval/project.xml Fri Apr 10 12:48:07 2015 +0100 @@ -1,6 +1,22 @@ <?xml version="1.0" encoding="utf-8"?> <BrowserEvalProjectDocument> - <setup interface="APE" projectReturn="null" randomiseOrder='true' collectMetrics='true' /> + <setup interface="APE" projectReturn="null" randomiseOrder='true' collectMetrics='true'> + <PreTest> + <statement>Please listen to all mixes</statement> + <question id="location" mandatory="true">Please enter your listening location</question> + </PreTest> + <PostTest> + <statement>Thank you for taking this listening test.</statement> + <question id="SessionID">Please enter your name.</question> + </PostTest> + <Metric> + <metricEnable>testTimer</metricEnable> + <metricEnable>elementTimer</metricEnable> + <metricEnable>elementTracker</metricEnable> + <metricEnable>elementFlagListenedTo</metricEnable> + <metricEnable>elementFlagMoved</metricEnable> + </Metric> + </setup> <audioHolder id='0' hostURL="example_eval/" sampleRate="44100" randomiseOrder='true' repeatCount='1'> <audioElements url="0.wav" ID="0"/> <audioElements url="1.wav"/> @@ -19,19 +35,4 @@ <statement>Please take a break before the next test</statement> </PostTest> </audioHolder> - <PreTest> - <statement>Please listen to all mixes</statement> - <question id="location" mandatory="true">Please enter your listening location</question> - </PreTest> - <PostTest> - <statement>Thank you for taking this listening test.</statement> - <question id="SessionID">Please enter your name.</question> - </PostTest> - <Metric> - <metricEnable>testTimer</metricEnable> - <metricEnable>elementTimer</metricEnable> - <metricEnable>elementTracker</metricEnable> - <metricEnable>elementFlagListenedTo</metricEnable> - <metricEnable>elementFlagMoved</metricEnable> - </Metric> </BrowserEvalProjectDocument> \ No newline at end of file