Mercurial > hg > webaudioevaluationtool
changeset 2651:22efb2d04bc9
#6: Added for rest
author | Nicholas Jillings <nicholas.jillings@mail.bcu.ac.uk> |
---|---|
date | Thu, 19 Jan 2017 16:44:47 +0000 |
parents | 41b7fcd245da |
children | d75db08e5801 |
files | interfaces/AB.js interfaces/ABX.js interfaces/ape.js interfaces/discrete.js interfaces/horizontal-sliders.js interfaces/timeline.js |
diffstat | 6 files changed, 83 insertions(+), 96 deletions(-) [+] |
line wrap: on
line diff
--- a/interfaces/AB.js Thu Jan 19 16:24:00 2017 +0000 +++ b/interfaces/AB.js Thu Jan 19 16:44:47 2017 +0000 @@ -135,7 +135,7 @@ function loadTest(audioHolderObject) { var feedbackHolder = document.getElementById('feedbackHolder'); - var interfaceObj = audioHolderObject.interfaces; + var interfaceObj = interfaceContext.getCombinedInterfaces(audioHolderObject); if (interfaceObj.length > 1) { console.log("WARNING - This interface only supports one <interface> node per page. Using first interface node"); } @@ -157,7 +157,7 @@ document.getElementById("pageTitle").textContent = interfaceObj.title; } - var interfaceOptions = specification.interfaces.options.concat(interfaceObj.options); + var interfaceOptions = interfaceObj.options; // Clear the interfaceElements { var node = document.getElementById('playback-holder'); @@ -395,10 +395,8 @@ } function buttonSubmitClick() { - var checks = []; - checks = checks.concat(testState.currentStateMap.interfaces[0].options); - checks = checks.concat(specification.interfaces.options); - var canContinue = true; + var checks = testState.currentStateMap.interfaces[0].options, + canContinue = true; for (var i = 0; i < checks.length; i++) { if (checks[i].type == 'check') {
--- a/interfaces/ABX.js Thu Jan 19 16:24:00 2017 +0000 +++ b/interfaces/ABX.js Thu Jan 19 16:44:47 2017 +0000 @@ -137,7 +137,7 @@ // Called each time a new test page is to be build. The page specification node is the only item passed in document.getElementById('box-holders').innerHTML = ""; - var interfaceObj = page.interfaces; + var interfaceObj = interfaceContext.getCombinedInterfaces(page); if (interfaceObj.length > 1) { console.log("WARNING - This interface only supports one <interface> node per page. Using first interface node"); } @@ -157,7 +157,7 @@ interfaceContext.comparator = new comparator(page); - var interfaceOptions = specification.interfaces.options.concat(interfaceObj.options); + var interfaceOptions = interfaceObj.options; for (var option of interfaceOptions) { if (option.type == "show") { switch (option.name) { @@ -430,10 +430,8 @@ } function buttonSubmitClick() { - var checks = []; - checks = checks.concat(testState.currentStateMap.interfaces[0].options); - checks = checks.concat(specification.interfaces.options); - var canContinue = true; + var checks = testState.currentStateMap.interfaces[0].options, + canContinue = true; for (var i = 0; i < checks.length; i++) { if (checks[i].type == 'check') {
--- a/interfaces/ape.js Thu Jan 19 16:24:00 2017 +0000 +++ b/interfaces/ape.js Thu Jan 19 16:44:47 2017 +0000 @@ -286,46 +286,47 @@ // Delete outside reference document.getElementById("outside-reference-holder").innerHTML = ""; - var interfaceObj = audioHolderObject.interfaces; + var interfaceObj = interfaceContext.getCombinedInterfaces(audioHolderObject); for (var k = 0; k < interfaceObj.length; k++) { // Create the div box to center align interfaceContext.interfaceSliders.push(new interfaceSliderHolder(interfaceObj[k])); } - - var interfaceList = audioHolderObject.interfaces.concat(specification.interfaces); - for (var k = 0; k < interfaceList.length; k++) { - for (var i = 0; i < interfaceList[k].options.length; i++) { - if (interfaceList[k].options[i].type == 'show' && interfaceList[k].options[i].name == 'playhead') { - var playbackHolder = document.getElementById('playback-holder'); - if (playbackHolder == null) { - playbackHolder = document.createElement('div'); - playbackHolder.style.width = "100%"; - playbackHolder.align = 'center'; - playbackHolder.appendChild(interfaceContext.playhead.object); - feedbackHolder.appendChild(playbackHolder); + interfaceObj.forEach(function (interface) { + for (var option of interface.options) { + if (option.type == "show") { + switch (option.name) { + case "playhead": + var playbackHolder = document.getElementById('playback-holder'); + if (playbackHolder == null) { + playbackHolder = document.createElement('div'); + playbackHolder.style.width = "100%"; + playbackHolder.align = 'center'; + playbackHolder.appendChild(interfaceContext.playhead.object); + feedbackHolder.insertBefore(playbackHolder, feedbackHolder.firstElementChild); + } + break; + case "page-count": + var pagecountHolder = document.getElementById('page-count'); + if (pagecountHolder == null) { + pagecountHolder = document.createElement('div'); + pagecountHolder.id = 'page-count'; + } + pagecountHolder.innerHTML = '<span>Page ' + (testState.stateIndex + 1) + ' of ' + testState.stateMap.length + '</span>'; + var inject = document.getElementById('interface-buttons'); + inject.appendChild(pagecountHolder); + break; + case "volume": + if (document.getElementById('master-volume-holder') == null) { + feedbackHolder.appendChild(interfaceContext.volume.object); + } + break; + case "comments": + interfaceContext.commentBoxes.showCommentBoxes(feedbackHolder, true); + break; } - } else if (interfaceList[k].options[i].type == 'show' && interfaceList[k].options[i].name == 'page-count') { - var pagecountHolder = document.getElementById('page-count'); - if (pagecountHolder == null) { - pagecountHolder = document.createElement('div'); - pagecountHolder.id = 'page-count'; - } - pagecountHolder.innerHTML = '<span>Page ' + (testState.stateIndex + 1) + ' of ' + testState.stateMap.length + '</span>'; - var inject = document.getElementById('interface-buttons'); - inject.appendChild(pagecountHolder); - } else if (interfaceList[k].options[i].type == 'show' && interfaceList[k].options[i].name == 'volume') { - if (document.getElementById('master-volume-holder') == null) { - feedbackHolder.appendChild(interfaceContext.volume.object); - } - } else if (interfaceList[k].options[i].type == 'show' && interfaceList[k].options[i].name == 'comments') { - var commentHolder = document.createElement('div'); - commentHolder.id = 'commentHolder'; - document.getElementById('testContent').appendChild(commentHolder); - interfaceContext.commentBoxes.showCommentBoxes(feedbackHolder, true); - break; } } - } + }); var commentBoxPrefix = "Comment on fragment"; @@ -736,10 +737,8 @@ } function buttonSubmitClick() { - var checks = []; - checks = checks.concat(testState.currentStateMap.interfaces[0].options); - checks = checks.concat(specification.interfaces.options); - var canContinue = true; + var checks = testState.currentStateMap.interfaces[0].options, + canContinue = true; // Check that the anchor and reference objects are correctly placed if (interfaceContext.checkHiddenAnchor() == false) {
--- a/interfaces/discrete.js Thu Jan 19 16:24:00 2017 +0000 +++ b/interfaces/discrete.js Thu Jan 19 16:44:47 2017 +0000 @@ -120,7 +120,7 @@ var feedbackHolder = document.getElementById('feedbackHolder'); feedbackHolder.innerHTML = ""; - var interfaceObj = page.interfaces; + var interfaceObj = interfaceContext.getCombinedInterfaces(page); if (interfaceObj.length > 1) { console.log("WARNING - This interface only supports one <interface> node per page. Using first interface node"); } @@ -147,36 +147,7 @@ } var loopPlayback = page.loop; - // Find all the audioElements from the audioHolder - var index = 0; - var interfaceScales = testState.currentStateMap.interfaces[0].scales; - var labelType = page.label; - if (labelType == "default") { - labelType = "number"; - } - $(page.audioElements).each(function (pageIndex, element) { - // Find URL of track - // In this jQuery loop, variable 'this' holds the current audioElement. - - var audioObject = audioEngineContext.newTrack(element); - if (element.type == 'outside-reference') { - // Construct outside reference; - var orNode = new interfaceContext.outsideReferenceDOM(audioObject, index, document.getElementById("outside-reference-holder")); - audioObject.bindInterface(orNode); - } else { - // Create a slider per track - var label = interfaceContext.getLabel(labelType, index, page.labelStart); - var sliderObj = new discreteObject(audioObject, label, interfaceScales); - sliderBox.appendChild(sliderObj.holder); - audioObject.bindInterface(sliderObj); - interfaceContext.commentBoxes.createCommentBox(audioObject); - index += 1; - } - - }); - - var interfaceOptions = specification.interfaces.options.concat(interfaceObj.options); - for (var option of interfaceOptions) { + for (var option of interfaceObj.options) { if (option.type == "show") { switch (option.name) { case "playhead": @@ -211,6 +182,34 @@ } } + // Find all the audioElements from the audioHolder + var index = 0; + var interfaceScales = page.interfaces[0].scales; + var labelType = page.label; + if (labelType == "default") { + labelType = "number"; + } + $(page.audioElements).each(function (pageIndex, element) { + // Find URL of track + // In this jQuery loop, variable 'this' holds the current audioElement. + + var audioObject = audioEngineContext.newTrack(element); + if (element.type == 'outside-reference') { + // Construct outside reference; + var orNode = new interfaceContext.outsideReferenceDOM(audioObject, index, document.getElementById("outside-reference-holder")); + audioObject.bindInterface(orNode); + } else { + // Create a slider per track + var label = interfaceContext.getLabel(labelType, index, page.labelStart); + var sliderObj = new discreteObject(audioObject, label, interfaceScales); + sliderBox.appendChild(sliderObj.holder); + audioObject.bindInterface(sliderObj); + interfaceContext.commentBoxes.createCommentBox(audioObject); + index += 1; + } + + }); + $(page.commentQuestions).each(function (index, element) { var node = interfaceContext.createCommentQuestion(element); feedbackHolder.appendChild(node.holder); @@ -443,10 +442,8 @@ function buttonSubmitClick() // TODO: Only when all songs have been played! { - var checks = []; - checks = checks.concat(testState.currentStateMap.interfaces[0].options); - checks = checks.concat(specification.interfaces.options); - var canContinue = true; + var checks = testState.currentStateMap.interfaces[0].options, + canContinue = true; // Check that the anchor and reference objects are correctly placed if (interfaceContext.checkHiddenAnchor() == false) {
--- a/interfaces/horizontal-sliders.js Thu Jan 19 16:24:00 2017 +0000 +++ b/interfaces/horizontal-sliders.js Thu Jan 19 16:44:47 2017 +0000 @@ -120,7 +120,7 @@ var feedbackHolder = document.getElementById('feedbackHolder'); feedbackHolder.innerHTML = ""; - var interfaceObj = page.interfaces; + var interfaceObj = interfaceContext.getCombinedInterfaces(page); if (interfaceObj.length > 1) { console.log("WARNING - This interface only supports one <interface> node per page. Using first interface node"); } @@ -186,8 +186,7 @@ } }); - var interfaceOptions = specification.interfaces.options.concat(interfaceObj.options); - for (var option of interfaceOptions) { + for (var option of interfaceObj.options) { if (option.type == "show") { switch (option.name) { case "playhead": @@ -395,10 +394,8 @@ function buttonSubmitClick() // TODO: Only when all songs have been played! { - var checks = []; - checks = checks.concat(testState.currentStateMap.interfaces[0].options); - checks = checks.concat(specification.interfaces.options); - var canContinue = true; + var checks = testState.currentStateMap.interfaces[0].options, + canContinue = true; // Check that the anchor and reference objects are correctly placed if (interfaceContext.checkHiddenAnchor() == false) {
--- a/interfaces/timeline.js Thu Jan 19 16:24:00 2017 +0000 +++ b/interfaces/timeline.js Thu Jan 19 16:44:47 2017 +0000 @@ -83,7 +83,7 @@ // Called each time a new test page is to be build. The page specification node is the only item passed in var content = document.getElementById("timeline-test-content"); content.innerHTML = ""; - var interfaceObj = page.interfaces; + var interfaceObj = interfaceContext.getCombinedInterfaces(page); if (interfaceObj.length > 1) { console.log("WARNING - This interface only supports one <interface> node per page. Using first interface node"); } @@ -474,10 +474,8 @@ interfaceContext.lightbox.post("Warning", 'You have not started the test! Please click play on a sample to begin the test!'); return; } - var checks = []; - checks = checks.concat(testState.currentStateMap.interfaces[0].options); - checks = checks.concat(specification.interfaces.options); - var canContinue = true; + var checks = testState.currentStateMap.interfaces[0], + canContinue = true; for (var i = 0; i < checks.length; i++) { var checkState = true; if (checks[i].type == 'check') {