Mercurial > hg > webaudioevaluationtool
changeset 2700:87d9f785f1ec
JShinted Horizontal-Sliders (#180). Minor fixes to core and discrete
author | Nicholas Jillings <nicholas.jillings@mail.bcu.ac.uk> |
---|---|
date | Mon, 13 Mar 2017 11:39:30 +0000 |
parents | 6350ae016862 |
children | d29471d114cf |
files | interfaces/discrete.js interfaces/horizontal-sliders.js js/core.js |
diffstat | 3 files changed, 41 insertions(+), 56 deletions(-) [+] |
line wrap: on
line diff
--- a/interfaces/discrete.js Mon Mar 13 11:18:55 2017 +0000 +++ b/interfaces/discrete.js Mon Mar 13 11:39:30 2017 +0000 @@ -255,11 +255,8 @@ return; } var id = this.parent.id; - var checkedelement = this.discretes.find(function (elem) { - return elem.checked; - }); - var position = checkedelement.getAttribute("position") / 100.0; - this.parent.metric.moved(time, checkedelement); + var position = this.getValue(); + this.parent.metric.moved(time, position); console.log('slider ' + id + ' moved to ' + position + ' (' + time + ')'); }; @@ -355,14 +352,13 @@ this.getValue = function () { // Return the current value of the object. If there is no value, return -1 - var value = -1; - for (var i = 0; i < this.discretes.length; i++) { - if (this.discretes[i].checked === true) { - value = this.discretes[i].getAttribute('position') / 100.0; - break; - } + var checkedElement = this.discretes.find(function (elem) { + return elem.checked; + }); + if (checkedElement === undefined) { + return -1; } - return value; + return checkedElement.getAttribute("position") / 100.0; }; this.getPresentedId = function () { // Return the presented ID of the object. For instance, the APE has sliders starting from 0. Whilst AB has alphabetical scale
--- a/interfaces/horizontal-sliders.js Mon Mar 13 11:18:55 2017 +0000 +++ b/interfaces/horizontal-sliders.js Mon Mar 13 11:39:30 2017 +0000 @@ -1,4 +1,5 @@ // Once this is loaded and parsed, begin execution +/*globals interfaceContext, window, document, specification, audioEngineContext, console, testState, $, storage */ loadInterface(); function loadInterface() { @@ -19,7 +20,7 @@ titleSpan.id = "test-title"; // Set title to that defined in XML, else set to default - if (titleAttr != undefined) { + if (titleAttr !== undefined) { titleSpan.textContent = titleAttr; } else { titleSpan.textContent = 'Listening test'; @@ -30,7 +31,8 @@ var pagetitle = document.createElement('div'); pagetitle.className = "pageTitle"; pagetitle.align = "center"; - var titleSpan = document.createElement('span'); + + titleSpan = document.createElement('span'); titleSpan.id = "pageTitle"; pagetitle.appendChild(titleSpan); @@ -111,7 +113,7 @@ // Load the full interface testState.initialise(); testState.advanceState(); -}; +} function loadTest(page) { // Called each time a new test page is to be build. The page specification node is the only item passed in @@ -128,10 +130,10 @@ // Set the page title if (typeof page.title == "string" && page.title.length > 0) { - document.getElementById("test-title").textContent = page.title + document.getElementById("test-title").textContent = page.title; } - if (interfaceObj.title != null) { + if (interfaceObj.title !== null) { document.getElementById("pageTitle").textContent = interfaceObj.title; } @@ -142,7 +144,7 @@ sliderBox.innerHTML = ""; var commentBoxPrefix = "Comment on track"; - if (interfaceObj.commentBoxPrefix != undefined) { + if (interfaceObj.commentBoxPrefix !== undefined) { commentBoxPrefix = interfaceObj.commentBoxPrefix; } var loopPlayback = page.loop; @@ -186,12 +188,12 @@ } }); - for (var option of interfaceObj.options) { + interfaceObj.options.forEach(function (option) { if (option.type == "show") { switch (option.name) { case "playhead": var playbackHolder = document.getElementById('playback-holder'); - if (playbackHolder == null) { + if (playbackHolder === null) { playbackHolder = document.createElement('div'); playbackHolder.style.width = "100%"; playbackHolder.align = 'center'; @@ -201,7 +203,7 @@ break; case "page-count": var pagecountHolder = document.getElementById('page-count'); - if (pagecountHolder == null) { + if (pagecountHolder === null) { pagecountHolder = document.createElement('div'); pagecountHolder.id = 'page-count'; } @@ -210,7 +212,7 @@ inject.appendChild(pagecountHolder); break; case "volume": - if (document.getElementById('master-volume-holder') == null) { + if (document.getElementById('master-volume-holder') === null) { feedbackHolder.appendChild(interfaceContext.volume.object); } break; @@ -219,7 +221,7 @@ break; } } - } + }); // Auto-align resizeWindow(null); } @@ -291,7 +293,7 @@ $(".track-slider").removeClass('track-slider-playing'); $(this.holder).addClass('track-slider-playing'); var outsideReference = document.getElementById('outside-reference'); - if (outsideReference != null) { + if (outsideReference !== null) { $(outsideReference).removeClass('track-slider-playing'); } }; @@ -326,8 +328,8 @@ // audioObject has an error!! this.playback.textContent = "Error"; $(this.playback).addClass("error-colour"); - } -}; + }; +} function resizeWindow(event) { // Called on every window resize event, use this to scale your page properly @@ -367,7 +369,7 @@ textHolder.innerHTML = ""; ctx.fillStyle = "#000000"; ctx.setLineDash([1, 4]); - for (var scale of scales) { + scales.forEach(function (scale) { var posPercent = scale.position / 100.0; var posPix = Math.round(width * posPercent); if (posPix <= 0) { @@ -389,7 +391,7 @@ textHolder.appendChild(text); text.style.width = Math.ceil($(text).width()) + 'px'; text.style.left = (posPix + 100 - ($(text).width() / 2)) + 'px'; - } + }); } function buttonSubmitClick() // TODO: Only when all songs have been played! @@ -398,59 +400,46 @@ canContinue = true; // Check that the anchor and reference objects are correctly placed - if (interfaceContext.checkHiddenAnchor() == false) { + if (interfaceContext.checkHiddenAnchor() === false) { return; } - if (interfaceContext.checkHiddenReference() == false) { + if (interfaceContext.checkHiddenReference() === false) { return; } for (var i = 0; i < checks.length; i++) { + var checkState = true; if (checks[i].type == 'check') { switch (checks[i].name) { case 'fragmentPlayed': // Check if all fragments have been played - var checkState = interfaceContext.checkAllPlayed(); - if (checkState == false) { - canContinue = false; - } + checkState = interfaceContext.checkAllPlayed(); break; case 'fragmentFullPlayback': // Check all fragments have been played to their full length - var checkState = interfaceContext.checkAllPlayed(); - if (checkState == false) { - canContinue = false; - } + checkState = interfaceContext.checkAllPlayed(); console.log('NOTE: fragmentFullPlayback not currently implemented, performing check fragmentPlayed instead'); break; case 'fragmentMoved': // Check all fragment sliders have been moved. - var checkState = interfaceContext.checkAllMoved(); - if (checkState == false) { - canContinue = false; - } + checkState = interfaceContext.checkAllMoved(); break; case 'fragmentComments': // Check all fragment sliders have been moved. - var checkState = interfaceContext.checkAllCommented(); - if (checkState == false) { - canContinue = false; - } + checkState = interfaceContext.checkAllCommented(); break; case 'scalerange': // Check the scale has been used effectively - var checkState = interfaceContext.checkScaleRange(checks[i].min, checks[i].max); - if (checkState == false) { - canContinue = false; - } + checkState = interfaceContext.checkScaleRange(checks[i].min, checks[i].max); + break; default: console.log("WARNING - Check option " + checks[i].check + " is not supported on this interface"); break; } - } - if (!canContinue) { + if (checkState === false) { + canContinue = false; break; } } @@ -461,7 +450,7 @@ playback.click(); // This function is called when the submit button is clicked. Will check for any further tests to perform, or any post-test options } else { - if (audioEngineContext.timer.testStarted == false) { + if (audioEngineContext.timer.testStarted === false) { interfaceContext.lightbox.post("Warning", 'You have not started the test! Please press start to begin the test!'); return; }
--- a/js/core.js Mon Mar 13 11:18:55 2017 +0000 +++ b/js/core.js Mon Mar 13 11:39:30 2017 +0000 @@ -2849,10 +2849,10 @@ this.outsideReferenceHolder.setAttribute('track-id', index); this.outsideReferenceHolder.textContent = this.parent.specification.label || "Reference"; this.outsideReferenceHolder.disabled = true; - - this.outsideReferenceHolder.onclick = function (event) { - audioEngineContext.play(event.currentTarget.getAttribute('track-id')); + this.handlEvent = function (event) { + audioEngineContext.play(this.parent.id); }; + this.outsideReferenceHolder.addEventListener("click", this); inject.appendChild(this.outsideReferenceHolder); this.enable = function () { if (this.parent.state == 1) {