comparison interfaces/ordinal.js @ 2846:64a83c964fae

#141 Add submit button interactions
author Nicholas Jillings <nicholas.jillings@mail.bcu.ac.uk>
date Tue, 25 Apr 2017 15:47:18 +0100
parents be138735977b
children ed2c8a04b7c4
comparison
equal deleted inserted replaced
2845:be138735977b 2846:64a83c964fae
410 w -= 14; 410 w -= 14;
411 w = Math.floor(w); 411 w = Math.floor(w);
412 $(".ordinal-element").width(w); 412 $(".ordinal-element").width(w);
413 } 413 }
414 414
415 function buttonSubmitClick() { 415 function buttonSubmitClick() // TODO: Only when all songs have been played!
416 416 {
417 var checks = testState.currentStateMap.interfaces[0].options,
418 canContinue = true;
419
420 // Check that the anchor and reference objects are correctly placed
421 if (interfaceContext.checkHiddenAnchor() === false) {
422 return;
423 }
424 if (interfaceContext.checkHiddenReference() === false) {
425 return;
426 }
427
428 for (var i = 0; i < checks.length; i++) {
429 var checkState = true;
430 if (checks[i].type == 'check') {
431 switch (checks[i].name) {
432 case 'fragmentPlayed':
433 // Check if all fragments have been played
434 checkState = interfaceContext.checkAllPlayed(checks[i].errorMessage);
435 break;
436 case 'fragmentFullPlayback':
437 // Check all fragments have been played to their full length
438 checkState = interfaceContext.checkAllPlayed(checks[i].errorMessage);
439 console.log('NOTE: fragmentFullPlayback not currently implemented, performing check fragmentPlayed instead');
440 break;
441 case 'fragmentMoved':
442 // Check all fragment sliders have been moved.
443 checkState = interfaceContext.checkAllMoved(checks[i].errorMessage);
444 break;
445 case 'fragmentComments':
446 // Check all fragment sliders have been moved.
447 checkState = interfaceContext.checkAllCommented(checks[i].errorMessage);
448 break;
449 case 'scalerange':
450 // Check the scale has been used effectively
451 checkState = interfaceContext.checkScaleRange(checks[i].errorMessage);
452
453 break;
454 default:
455 console.log("WARNING - Check option " + checks[i].check + " is not supported on this interface");
456 break;
457 }
458 }
459 if (checkState === false) {
460 canContinue = false;
461 break;
462 }
463 }
464
465 if (canContinue) {
466 if (audioEngineContext.status == 1) {
467 var playback = document.getElementById('playback-button');
468 playback.click();
469 // This function is called when the submit button is clicked. Will check for any further tests to perform, or any post-test options
470 } else {
471 if (audioEngineContext.timer.testStarted === false) {
472 interfaceContext.lightbox.post("Warning", 'You have not started the test! Please press start to begin the test!');
473 return;
474 }
475 }
476 testState.advanceState();
477 }
417 } 478 }
418 479
419 function pageXMLSave(store, pageSpecification) { 480 function pageXMLSave(store, pageSpecification) {
420 // MANDATORY 481 // MANDATORY
421 // Saves a specific test page 482 // Saves a specific test page