Mercurial > hg > webaudioevaluationtool
comparison interfaces/ABX.js @ 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 | 211364181d16 |
children | c74c698795a9 |
comparison
equal
deleted
inserted
replaced
2702:28e179d4fb9a | 2703:536cb44c7292 |
---|---|
10 function loadInterface() { | 10 function loadInterface() { |
11 // Use this to do any one-time page / element construction. For instance, placing any stationary text objects, | 11 // Use this to do any one-time page / element construction. For instance, placing any stationary text objects, |
12 // holding div's, or setting up any nodes which are present for the entire test sequence | 12 // holding div's, or setting up any nodes which are present for the entire test sequence |
13 | 13 |
14 interfaceContext.insertPoint.innerHTML = ""; // Clear the current schema | 14 interfaceContext.insertPoint.innerHTML = ""; // Clear the current schema |
15 | |
16 Interface.prototype.checkScaleRange = function (min, max) { | |
17 var page = testState.getCurrentTestPage(); | |
18 var audioObjects = audioEngineContext.audioObjects; | |
19 var state = true; | |
20 var str = "Please keep listening. "; | |
21 var minRanking = Infinity; | |
22 var maxRanking = -Infinity; | |
23 for (var ao of audioObjects) { | |
24 var rank = ao.interfaceDOM.getValue(); | |
25 if (rank < minRanking) { | |
26 minRanking = rank; | |
27 } | |
28 if (rank > maxRanking) { | |
29 maxRanking = rank; | |
30 } | |
31 } | |
32 if (maxRanking * 100 < max) { | |
33 str += "At least one fragment must be selected."; | |
34 state = false; | |
35 } | |
36 if (!state) { | |
37 console.log(str); | |
38 this.storeErrorNode(str); | |
39 interfaceContext.lightbox.post("Message", str); | |
40 } | |
41 return state; | |
42 }; | |
43 | 15 |
44 // Custom comparator Object | 16 // Custom comparator Object |
45 Interface.prototype.comparator = null; | 17 Interface.prototype.comparator = null; |
46 | 18 |
47 // The injection point into the HTML page | 19 // The injection point into the HTML page |
431 function buttonSubmitClick() { | 403 function buttonSubmitClick() { |
432 var checks = testState.currentStateMap.interfaces[0].options, | 404 var checks = testState.currentStateMap.interfaces[0].options, |
433 canContinue = true; | 405 canContinue = true; |
434 | 406 |
435 for (var i = 0; i < checks.length; i++) { | 407 for (var i = 0; i < checks.length; i++) { |
436 var checkState; | 408 var checkState = true; |
437 if (checks[i].type == 'check') { | 409 if (checks[i].type == 'check') { |
438 switch (checks[i].name) { | 410 switch (checks[i].name) { |
439 case 'fragmentPlayed': | 411 case 'fragmentPlayed': |
440 // Check if all fragments have been played | 412 // Check if all fragments have been played |
441 checkState = interfaceContext.checkAllPlayed(); | 413 checkState = interfaceContext.checkAllPlayed(); |
442 if (checkState === false) { | 414 |
443 canContinue = false; | |
444 } | |
445 break; | 415 break; |
446 case 'fragmentFullPlayback': | 416 case 'fragmentFullPlayback': |
447 // Check all fragments have been played to their full length | 417 // Check all fragments have been played to their full length |
448 checkState = interfaceContext.checkFragmentsFullyPlayed(); | 418 checkState = interfaceContext.checkFragmentsFullyPlayed(); |
449 if (checkState === false) { | |
450 canContinue = false; | |
451 } | |
452 break; | 419 break; |
453 case 'fragmentMoved': | 420 case 'fragmentMoved': |
454 // Check all fragment sliders have been moved. | 421 // Check all fragment sliders have been moved. |
455 checkState = interfaceContext.checkAllMoved(); | 422 checkState = interfaceContext.checkAllMoved(); |
456 if (checkState === false) { | |
457 canContinue = false; | |
458 } | |
459 break; | 423 break; |
460 case 'fragmentComments': | 424 case 'fragmentComments': |
461 // Check all fragment sliders have been moved. | 425 // Check all fragment sliders have been moved. |
462 checkState = interfaceContext.checkAllCommented(); | |
463 if (checkState === false) { | |
464 canContinue = false; | |
465 } | |
466 break; | 426 break; |
467 case 'scalerange': | 427 case 'scalerange': |
468 // Check the scale has been used effectively | 428 // Check the scale has been used effectively |
469 checkState = interfaceContext.checkScaleRange(checks[i].min, checks[i].max); | 429 console.log("WARNING - Check 'scalerange' does not make sense in AB/ABX! Ignoring!"); |
470 if (checkState === false) { | |
471 canContinue = false; | |
472 } | |
473 break; | 430 break; |
474 default: | 431 default: |
475 console.log("WARNING - Check option " + checks[i].check + " is not supported on this interface"); | 432 console.log("WARNING - Check option " + checks[i].check + " is not supported on this interface"); |
476 break; | 433 break; |
477 } | 434 } |
478 | 435 |
479 } | 436 } |
480 if (!canContinue) { | 437 if (checkState === false) { |
438 canContinue = false; | |
481 break; | 439 break; |
482 } | 440 } |
483 } | 441 } |
442 | |
484 if (canContinue) { | 443 if (canContinue) { |
485 if (audioEngineContext.status == 1) { | 444 if (audioEngineContext.status == 1) { |
486 var playback = document.getElementById('playback-button'); | 445 var playback = document.getElementById('playback-button'); |
487 playback.click(); | 446 playback.click(); |
488 // This function is called when the submit button is clicked. Will check for any further tests to perform, or any post-test options | 447 // This function is called when the submit button is clicked. Will check for any further tests to perform, or any post-test options |