Mercurial > hg > webaudioevaluationtool
changeset 3136:3dcdada1058f
Fix issue with test scale range not being set.
author | Nicholas Jillings <nicholas.jillings@mail.bcu.ac.uk> |
---|---|
date | Fri, 29 Mar 2019 16:03:06 +0000 |
parents | afc32cd44b22 |
children | 669f50f1941d |
files | js/specification.js test_create.html test_create/test_core.js |
diffstat | 3 files changed, 29 insertions(+), 14 deletions(-) [+] |
line wrap: on
line diff
--- a/js/specification.js Mon Mar 11 11:41:14 2019 +0000 +++ b/js/specification.js Fri Mar 29 16:03:06 2019 +0000 @@ -585,8 +585,9 @@ } this.options.forEach(function (option) { var child = doc.createElement("interfaceoption"); - child.setAttribute("type", option.type); - child.setAttribute("name", option.name); + Object.keys(option).forEach(function(key) { + child.setAttribute(key, option[key]); + }); if (option.type == "check" && option.errorMessage !== undefined) { var errorMessage = doc.createElement("errormessage"); errorMessage.textContent = option.errorMessage;
--- a/test_create.html Mon Mar 11 11:41:14 2019 +0000 +++ b/test_create.html Fri Mar 29 16:03:06 2019 +0000 @@ -450,10 +450,12 @@ <div class="attribute" name="scalerange" type="check" data-container="body" data-toggle="popover" data-placement="bottom" data-trigger="hover" data-content="A page can only be submitted if there are fragments above and below the maximum and minimum ranges."> <span>Enforce a scale usage: </span> <input type="checkbox" ng-click="enableInterfaceOption($event)" /> - <span>Minimum:</span> - <input type="number" min="0" max="100" name="min" /> - <span>Maximum:</span> - <input type="number" min="0" max="100" name="max" /> + <div ng-show="interface.options.find((x)=>{return x.name == 'scalerange';})"> + <span>Minimum:</span> + <input type="number" min="0" max="100" name="min" ng-keyup="updateScaleRange();"/> + <span>Maximum:</span> + <input type="number" min="0" max="100" name="max" ng-keyup="updateScaleRange();"/> + </div> </div> <div class="attribute" name="volume" type="show" data-container="body" data-toggle="popover" data-placement="bottom" data-trigger="hover" data-content="Show the master volume control on each page."> <span>Show master volume control: </span>
--- a/test_create/test_core.js Mon Mar 11 11:41:14 2019 +0000 +++ b/test_create/test_core.js Fri Mar 29 16:03:06 2019 +0000 @@ -443,13 +443,25 @@ var index = $s.interface.options.findIndex(function (io) { return io.name == name; }); + if (name == "scalerange") { + $e[0].querySelector("[name=min]").value = option.getAttribute("min"); + $e[0].querySelector("[name=max]").value = option.getAttribute("max"); + } option.querySelector("input").checked = (index >= 0); - if (name == "scalerange" && index >= 0) { - option.querySelector("[name=min]").value = $s.interface.options[index].min; - option.querySelector("[name=max]").value = $s.interface.options[index].max; - } }); }); + $s.updateScaleRange = function() { + var obj = $s.interface.options.find(function(i) { + return i.name == "scalerange"; + }); + if (obj === undefined) { + return; + } + var min = $e[0].querySelector("[name=min]").value; + var max = $e[0].querySelector("[name=max]").value; + obj.min = min; + obj.max = max; + }; $s.enableInterfaceOption = function ($event) { var name = $event.currentTarget.parentElement.getAttribute("name"); var type = $event.currentTarget.parentElement.getAttribute("type"); @@ -457,14 +469,14 @@ return io.name == name; }); if (index == -1 && $event.currentTarget.checked) { - var obj = $s.interface.options.push({ + var obj = { name: name, type: type - }); + }; if (name == "scalerange") { - obj.min = $event.currentTarget.parentElement.querySelector("[name=min]").value; - obj.max = $event.currentTarget.parentElement.querySelector("[name=max]").value; + $s.updateScaleRange(); } + $s.interface.options.push(obj); } else if (index >= 0 && !$event.currentTarget.checked) { $s.interface.options.splice(index, 1); }