Mercurial > hg > webaudioevaluationtool
changeset 2703:536cb44c7292
Tidied up check on submits for AB/ABX/APE.
author | Nicholas Jillings <nicholas.jillings@mail.bcu.ac.uk> |
---|---|
date | Mon, 13 Mar 2017 11:53:36 +0000 |
parents | 28e179d4fb9a |
children | 3a0be105ee85 |
files | interfaces/AB.js interfaces/ABX.js interfaces/ape.js |
diffstat | 3 files changed, 11 insertions(+), 141 deletions(-) [+] |
line wrap: on
line diff
--- a/interfaces/AB.js Mon Mar 13 11:48:44 2017 +0000 +++ b/interfaces/AB.js Mon Mar 13 11:53:36 2017 +0000 @@ -10,34 +10,6 @@ // Custom comparator Object Interface.prototype.comparator = null; - Interface.prototype.checkScaleRange = function (min, max) { - var page = testState.getCurrentTestPage(); - var audioObjects = audioEngineContext.audioObjects; - var state = true; - var str = "Please keep listening. "; - var minRanking = Infinity; - var maxRanking = -Infinity; - for (var ao of audioObjects) { - var rank = ao.interfaceDOM.getValue(); - if (rank < minRanking) { - minRanking = rank; - } - if (rank > maxRanking) { - maxRanking = rank; - } - } - if (maxRanking * 100 < max) { - str += "At least one fragment must be selected."; - state = false; - } - if (!state) { - console.log(str); - this.storeErrorNode(str); - interfaceContext.lightbox.post("Message", str); - } - return state; - }; - // The injection point into the HTML page interfaceContext.insertPoint = document.getElementById("topLevelBody"); var testContent = document.createElement('div'); @@ -437,10 +409,7 @@ break; case 'scalerange': // Check the scale has been used effectively - checkState = interfaceContext.checkScaleRange(checks[i].min, checks[i].max); - if (checkState === false) { - canContinue = false; - } + console.log("WARNING - Check 'scalerange' does not make sense in AB/ABX! Ignoring!"); break; default: console.log("WARNING - Check option " + checks[i].check + " is not supported on this interface");
--- a/interfaces/ABX.js Mon Mar 13 11:48:44 2017 +0000 +++ b/interfaces/ABX.js Mon Mar 13 11:53:36 2017 +0000 @@ -13,34 +13,6 @@ interfaceContext.insertPoint.innerHTML = ""; // Clear the current schema - Interface.prototype.checkScaleRange = function (min, max) { - var page = testState.getCurrentTestPage(); - var audioObjects = audioEngineContext.audioObjects; - var state = true; - var str = "Please keep listening. "; - var minRanking = Infinity; - var maxRanking = -Infinity; - for (var ao of audioObjects) { - var rank = ao.interfaceDOM.getValue(); - if (rank < minRanking) { - minRanking = rank; - } - if (rank > maxRanking) { - maxRanking = rank; - } - } - if (maxRanking * 100 < max) { - str += "At least one fragment must be selected."; - state = false; - } - if (!state) { - console.log(str); - this.storeErrorNode(str); - interfaceContext.lightbox.post("Message", str); - } - return state; - }; - // Custom comparator Object Interface.prototype.comparator = null; @@ -433,43 +405,28 @@ canContinue = true; for (var i = 0; i < checks.length; i++) { - var checkState; + var checkState = true; if (checks[i].type == 'check') { switch (checks[i].name) { case 'fragmentPlayed': // Check if all fragments have been played checkState = interfaceContext.checkAllPlayed(); - if (checkState === false) { - canContinue = false; - } + break; case 'fragmentFullPlayback': // Check all fragments have been played to their full length checkState = interfaceContext.checkFragmentsFullyPlayed(); - if (checkState === false) { - canContinue = false; - } break; case 'fragmentMoved': // Check all fragment sliders have been moved. checkState = interfaceContext.checkAllMoved(); - if (checkState === false) { - canContinue = false; - } break; case 'fragmentComments': // Check all fragment sliders have been moved. - checkState = interfaceContext.checkAllCommented(); - if (checkState === false) { - canContinue = false; - } break; case 'scalerange': // Check the scale has been used effectively - checkState = interfaceContext.checkScaleRange(checks[i].min, checks[i].max); - if (checkState === false) { - canContinue = false; - } + console.log("WARNING - Check 'scalerange' does not make sense in AB/ABX! Ignoring!"); break; default: console.log("WARNING - Check option " + checks[i].check + " is not supported on this interface"); @@ -477,10 +434,12 @@ } } - if (!canContinue) { + if (checkState === false) { + canContinue = false; break; } } + if (canContinue) { if (audioEngineContext.status == 1) { var playback = document.getElementById('playback-button');
--- a/interfaces/ape.js Mon Mar 13 11:48:44 2017 +0000 +++ b/interfaces/ape.js Mon Mar 13 11:53:36 2017 +0000 @@ -84,51 +84,7 @@ } return state; }; - /* - interfaceContext.checkAllCommented = function () { - var audioObjs = audioEngineContext.audioObjects; - var audioHolder = testState.stateMap[testState.stateIndex]; - var state = true; - if (audioHolder.elementComments) { - var notCommented = audioObjs.filter(function (ao) { - return ao.commentDOM.trackCommentBox.value.length === 0; - }); - notCommented.sort(function (a, b) { - var va = a.interfaceDOM.getPresentedId(); - var vb = a.interfaceDOM.getPresentedId(); - if (va < vb) { - return -1; - } - if (vb < va) { - return 1; - } - return 0; - }); - if (notCommented.length > 0) { - var str = "You have not commented on fragment"; - if (notCommented.length > 1) { - str += "s "; - } else { - str += " "; - } - for (var i = 0; i < notCommented.length; i++) { - var ao_id = notCommented[i].interfaceDOM.getPresentedId(); - str = str + ao_id; // start from 1 - if (i < notCommented.length - 2) { - str += ", "; - } else if (i == notCommented.length - 2) { - str += " or "; - } - } - str += "Please listen, rate and comment all samples before submitting."; - this.storeErrorNode(str); - interfaceContext.lightbox.post("Message", str); - console.log(str); - } - } - return state; - }; - */ + interfaceContext.checkScaleRange = function () { var audioObjs = audioEngineContext.audioObjects; var audioHolder = testState.stateMap[testState.stateIndex]; @@ -755,42 +711,27 @@ for (var i = 0; i < checks.length; i++) { if (checks[i].type == 'check') { - var checkState; + var checkState = true; switch (checks[i].name) { case 'fragmentPlayed': // Check if all fragments have been played checkState = interfaceContext.checkAllPlayed(); - if (checkState === false) { - canContinue = false; - } break; case 'fragmentFullPlayback': // Check all fragments have been played to their full length checkState = interfaceContext.checkFragmentsFullyPlayed(); - if (checkState === false) { - canContinue = false; - } break; case 'fragmentMoved': // Check all fragment sliders have been moved. checkState = interfaceContext.checkAllMoved(); - if (checkState === false) { - canContinue = false; - } break; case 'fragmentComments': // Check all fragment sliders have been moved. checkState = interfaceContext.checkAllCommented(); - if (checkState === false) { - canContinue = false; - } break; case 'scalerange': // Check the scale is used to its full width outlined by the node checkState = interfaceContext.checkScaleRange(); - if (checkState === false) { - canContinue = false; - } break; default: console.log("WARNING - Check option " + checks[i].name + " is not supported on this interface"); @@ -798,7 +739,8 @@ } } - if (!canContinue) { + if (checkState === false) { + canContinue = false; break; } }