Mercurial > hg > webaudioevaluationtool
changeset 2398:a51a6d810bf4
Merge branch 'master' of https://github.com/BrechtDeMan/WebAudioEvaluationTool
author | www-data <www-data@sucuk.dcs.qmul.ac.uk> |
---|---|
date | Thu, 26 May 2016 15:20:55 +0100 |
parents | 7d1466f35a7b (current diff) c970a531228c (diff) |
children | e7601d5ff17b |
files | |
diffstat | 13 files changed, 148 insertions(+), 94 deletions(-) [+] |
line wrap: on
line diff
--- a/interfaces/AB.css Fri May 20 19:20:52 2016 +0100 +++ b/interfaces/AB.css Thu May 26 15:20:55 2016 +0100 @@ -29,11 +29,17 @@ height: 40px; } +div#outside-reference-holder { + display: flex; + align-content: center; + justify-content: center; + margin-bottom: 5px; +} + button.outside-reference { - width:120px; - height:40px; - margin-bottom:5px; - position: absolute; + height: 40px; + position: inherit; + margin: 0px 5px; } div.comparator-holder {
--- a/interfaces/AB.js Fri May 20 19:20:52 2016 +0100 +++ b/interfaces/AB.js Thu May 26 15:20:55 2016 +0100 @@ -88,6 +88,10 @@ // Global parent for the comment boxes on the page var feedbackHolder = document.createElement('div'); feedbackHolder.id = 'feedbackHolder'; + + // Create outside reference holder + var outsideRef = document.createElement("div"); + outsideRef.id = "outside-reference-holder"; // Construct the AB Boxes var boxes = document.createElement('div'); @@ -109,6 +113,7 @@ testContent.appendChild(title); // Insert the title testContent.appendChild(pagetitle); testContent.appendChild(interfaceButtons); + testContent.appendChild(outsideRef); testContent.appendChild(feedbackHolder); testContent.appendChild(submit); interfaceContext.insertPoint.appendChild(testContent); @@ -127,6 +132,10 @@ console.log("WARNING - This interface only supports one <interface> node per page. Using first interface node"); } interfaceObj = interfaceObj[0]; + + // Delete outside reference + var outsideReferenceHolder = document.getElementById("outside-reference-holder"); + outsideReferenceHolder.innerHTML = ""; if(interfaceObj.title != null) { @@ -134,6 +143,16 @@ } var interfaceOptions = specification.interfaces.options.concat(interfaceObj.options); + // Clear the interfaceElements + { + var node = document.getElementById('playback-holder'); + if (node){feedbackHolder.removeChild(node);} + node = document.getElementById('page-count'); + if (node){document.getElementById('interface-buttons').removeChild(node);} + node = document.getElementById('master-volume-holder-float'); + if (node){feedbackHolder.removeChild(node);} + } + for (var option of interfaceOptions) { if (option.type == "show") @@ -144,6 +163,7 @@ if (playbackHolder == null) { playbackHolder = document.createElement('div'); + playbackHolder.id = 'playback-holder'; playbackHolder.style.width = "100%"; playbackHolder.style.float = "left"; playbackHolder.align = 'center'; @@ -157,13 +177,12 @@ { pagecountHolder = document.createElement('div'); pagecountHolder.id = 'page-count'; + document.getElementById('interface-buttons').appendChild(pagecountHolder); } pagecountHolder.innerHTML = '<span>Page '+(testState.stateIndex+1)+' of '+testState.stateMap.length+'</span>'; - var inject = document.getElementById('interface-buttons'); - inject.appendChild(pagecountHolder); break; case "volume": - if (document.getElementById('master-volume-holder') == null) + if (document.getElementById('master-volume-holder-float') == null) { feedbackHolder.appendChild(interfaceContext.volume.object); } @@ -336,7 +355,7 @@ var audioObject = audioEngineContext.newTrack(element); if (index == audioHolderObject.outsideReference || element.type == 'outside-reference') { - var orNode = new interfaceContext.outsideReferenceDOM(audioObject,index,document.getElementById('interface-buttons')); + var orNode = new interfaceContext.outsideReferenceDOM(audioObject,index,document.getElementById("outside-reference-holder")); audioObject.bindInterface(orNode); } else { var label;
--- a/interfaces/ape.css Fri May 20 19:20:52 2016 +0100 +++ b/interfaces/ape.css Thu May 26 15:20:55 2016 +0100 @@ -32,7 +32,7 @@ /* Specify any structure for the slider holder interface */ background-color: #eee; height: 150px; - margin-bottom: 5px; + margin: 5px 50px; -moz-user-select: -moz-none; -khtml-user-select: none; -webkit-user-select: none; @@ -50,6 +50,8 @@ /* Any formatting of text below scale */ font-size: 1.2em; min-width: 5px; + max-width: 100px; + text-align: center; height: 20px; position: absolute; } @@ -67,13 +69,20 @@ border: 1px solid black; } +div#outside-reference-holder { + display: flex; + align-content: center; + justify-content: center; + margin-bottom: 5px; +} + div.outside-reference { width:120px; - padding-left: 55px; - margin-left: 100px; + text-align: center; height:20px; - margin-bottom:5px; background-color: rgb(100,200,100); + position: inherit; + margin: 0px 5px; } div.track-slider-disabled {
--- a/interfaces/ape.js Fri May 20 19:20:52 2016 +0100 +++ b/interfaces/ape.js Thu May 26 15:20:55 2016 +0100 @@ -260,6 +260,9 @@ var sliderHolder = document.createElement("div"); sliderHolder.id = "slider-holder"; + // Create outside reference holder + var outsideRef = document.createElement("div"); + outsideRef.id = "outside-reference-holder"; // Global parent for the comment boxes on the page var feedbackHolder = document.createElement('div'); @@ -271,6 +274,7 @@ // Inject into HTML testContent.appendChild(title); // Insert the title testContent.appendChild(interfaceButtons); + testContent.appendChild(outsideRef); testContent.appendChild(sliderHolder); testContent.appendChild(feedbackHolder); interfaceContext.insertPoint.appendChild(testContent); @@ -295,10 +299,7 @@ sliderHolder.innerHTML = ""; // Delete outside reference - var outsideReferenceHolder = document.getElementById('outside-reference'); - if (outsideReferenceHolder != null) { - document.getElementById('interface-buttons').removeChild(outsideReferenceHolder); - } + document.getElementById("outside-reference-holder").innerHTML = ""; var interfaceObj = audioHolderObject.interfaces; for (var k=0; k<interfaceObj.length; k++) { @@ -361,7 +362,7 @@ if (element.type == 'outside-reference') { // Construct outside reference; - var orNode = new outsideReferenceDOM(audioObject,index,document.getElementById('interface-buttons')); + var orNode = new outsideReferenceDOM(audioObject,index,document.getElementById("outside-reference-holder")); audioObject.bindInterface(orNode); } else { // Create a slider per track @@ -416,6 +417,7 @@ audioEngineContext.audioObjects[id].metric.moved(time,rate); interfaceContext.interfaceSliders[interfaceID].metrics[trackID].moved(time,rate); console.log("slider "+id+" moved to "+rate+' ('+time+')'); + obj.setAttribute("slider-value",convSliderPosToRate(obj)); } else { var id = Number(obj.attributes['trackIndex'].value); //audioEngineContext.metric.sliderPlayed(id); @@ -496,13 +498,6 @@ event.dataTransfer.dropEffect = 'copy'; return false; },false); - var sliderMargin = document.createAttribute('marginsize'); - sliderMargin.nodeValue = 42; // Set default margins to 42px either side - // Must have a known EXACT width, as this is used later to determine the ratings - var w = (Number(sliderMargin.nodeValue)+8)*2; - this.canvas.style.width = window.innerWidth - w +"px"; - this.canvas.style.marginLeft = sliderMargin.nodeValue +'px'; - this.canvas.setAttributeNode(sliderMargin); this.sliderDOM.appendChild(this.canvas); // Create the div to hold any scale objects @@ -512,13 +507,14 @@ this.scale.align = 'left'; this.sliderDOM.appendChild(this.scale); var positionScale = this.canvas.style.width.substr(0,this.canvas.style.width.length-2); - var offset = Number(this.canvas.attributes['marginsize'].value); + var offset = 50; var dest = document.getElementById("slider-holder").appendChild(this.sliderDOM); for (var scaleObj of interfaceObject.scales) { var position = Number(scaleObj.position)*0.01; var pixelPosition = (position*$(this.canvas).width())+offset; var scaleDOM = document.createElement('span'); + scaleDOM.className = "ape-marker-text"; scaleDOM.textContent = scaleObj.text; scaleDOM.setAttribute('value',position) this.scale.appendChild(scaleDOM); @@ -537,7 +533,7 @@ } else { trackObj.setAttribute('interface-name',this.id); } - var offset = Number(this.canvas.attributes['marginsize'].value); + var offset = 50; // Distribute it randomnly var w = window.innerWidth - (offset+8)*2; w = Math.random()*w; @@ -549,30 +545,24 @@ var labelHolder = document.createElement("span"); labelHolder.textContent = label; trackObj.appendChild(labelHolder); - this.metrics[this.metrics.length-1].initialise(convSliderPosToRate(trackObj)); + var rate = convSliderPosToRate(trackObj); + this.metrics[this.metrics.length-1].initialise(rate); + trackObj.setAttribute("slider-value",rate); return trackObj; }; this.resize = function(event) { - var holdValues = []; - for (var index = 0; index < this.sliders.length; index++) - { - holdValues.push(convSliderPosToRate(this.sliders[index])); - } - var width = event.target.innerWidth; + var width = window.innerWidth; var sliderDiv = this.canvas; var sliderScaleDiv = this.scale; - var marginsize = Number(sliderDiv.attributes['marginsize'].value); - var w = (marginsize+8)*2; - sliderDiv.style.width = width - w + 'px'; - var width = width - w; + var width = $(sliderDiv).width(); + var marginsize = 50; // Move sliders into new position for (var index = 0; index < this.sliders.length; index++) { - var pos = holdValues[index]; - var pix = pos * width; - this.sliders[index].style.left = pix+marginsize+'px'; + var pix = Number(this.sliders[index].getAttribute("slider-value")) * width; + this.sliders[index].style.left = (pix+marginsize)+'px'; } // Move scale labels @@ -715,9 +705,9 @@ { progress = String(progress); progress = progress.split('.')[0]; - this.outsideReferenceHolder[0].children[0].textContent = progress+'%'; + this.outsideReferenceHolder.firstChild.textContent = progress+'%'; } else { - this.outsideReferenceHolder[0].children[0].textContent = "Play Reference"; + this.outsideReferenceHolder.firstChild.textContent = "Play Reference"; } }; this.startPlayback = function() @@ -822,9 +812,8 @@ function convSliderPosToRate(trackSlider) { var slider = trackSlider.parentElement; - var w = slider.style.width; - var marginsize = Number(slider.attributes['marginsize'].value); - var maxPix = w.substr(0,w.length-2); + var maxPix = $(slider).width(); + var marginsize = 50; var pix = trackSlider.style.left; pix = pix.substr(0,pix.length-2); var rate = (pix-marginsize)/maxPix;
--- a/interfaces/discrete.css Fri May 20 19:20:52 2016 +0100 +++ b/interfaces/discrete.css Thu May 26 15:20:55 2016 +0100 @@ -86,11 +86,16 @@ margin: 9px 0px; } +div#outside-reference-holder { + display: flex; + align-content: center; + justify-content: center; + margin-bottom: 5px; +} + button.outside-reference { - width:120px; - height:20px; - margin-bottom:5px; - position: absolute; + position: inherit; + margin: 0px 5px; } div.track-slider-playing {
--- a/interfaces/discrete.js Fri May 20 19:20:52 2016 +0100 +++ b/interfaces/discrete.js Thu May 26 15:20:55 2016 +0100 @@ -53,6 +53,11 @@ console.log('Stopped at ' + time); // DEBUG/SAFETY } }; + + // Create outside reference holder + var outsideRef = document.createElement("div"); + outsideRef.id = "outside-reference-holder"; + // Create Submit (save) button var submit = document.createElement("button"); submit.innerHTML = 'Next'; @@ -98,6 +103,7 @@ testContent.appendChild(title); // Insert the title testContent.appendChild(pagetitle); testContent.appendChild(interfaceButtons); + testContent.appendChild(outsideRef); testContent.appendChild(sliderBox); testContent.appendChild(feedbackHolder); interfaceContext.insertPoint.appendChild(testContent); @@ -164,10 +170,7 @@ } // Delete outside reference - var outsideReferenceHolder = document.getElementById('outside-reference'); - if (outsideReferenceHolder != null) { - document.getElementById('interface-buttons').removeChild(outsideReferenceHolder); - } + document.getElementById("outside-reference-holder").innerHTML = ""; var sliderBox = document.getElementById('slider-holder'); sliderBox.innerHTML = ""; @@ -194,7 +197,7 @@ if (element.type == 'outside-reference') { // Construct outside reference; - var orNode = new interfaceContext.outsideReferenceDOM(audioObject,index,document.getElementById('interface-buttons')); + var orNode = new interfaceContext.outsideReferenceDOM(audioObject,index,document.getElementById("outside-reference-holder")); audioObject.bindInterface(orNode); } else { // Create a slider per track
--- a/interfaces/horizontal-sliders.css Fri May 20 19:20:52 2016 +0100 +++ b/interfaces/horizontal-sliders.css Thu May 26 15:20:55 2016 +0100 @@ -75,12 +75,16 @@ height: 94px; } +div#outside-reference-holder { + display: flex; + align-content: center; + justify-content: center; + margin-bottom: 5px; +} button.outside-reference { - width:120px; - height:20px; - margin-bottom:5px; - position: absolute; + position: inherit; + margin: 0px 5px; } div.track-slider-playing {
--- a/interfaces/horizontal-sliders.js Fri May 20 19:20:52 2016 +0100 +++ b/interfaces/horizontal-sliders.js Thu May 26 15:20:55 2016 +0100 @@ -62,6 +62,10 @@ // Append the interface buttons into the interfaceButtons object. interfaceButtons.appendChild(playback); interfaceButtons.appendChild(submit); + + // Create outside reference holder + var outsideRef = document.createElement("div"); + outsideRef.id = "outside-reference-holder"; // Create a slider box var sliderBox = document.createElement('div'); @@ -98,6 +102,7 @@ testContent.appendChild(title); // Insert the title testContent.appendChild(pagetitle); testContent.appendChild(interfaceButtons); + testContent.appendChild(outsideRef); testContent.appendChild(sliderBox); testContent.appendChild(feedbackHolder); interfaceContext.insertPoint.appendChild(testContent); @@ -165,10 +170,7 @@ } // Delete outside reference - var outsideReferenceHolder = document.getElementById('outside-reference'); - if (outsideReferenceHolder != null) { - document.getElementById('interface-buttons').removeChild(outsideReferenceHolder); - } + document.getElementById("outside-reference-holder").innerHTML = ""; var sliderBox = document.getElementById('slider-holder'); sliderBox.innerHTML = ""; @@ -194,7 +196,7 @@ if (element.type == 'outside-reference') { // Construct outside reference; - var orNode = new interfaceContext.outsideReferenceDOM(audioObject,index,document.getElementById('interface-buttons')); + var orNode = new interfaceContext.outsideReferenceDOM(audioObject,index,document.getElementById("outside-reference-holder")); audioObject.bindInterface(orNode); } else { // Create a slider per track
--- a/interfaces/mushra.css Fri May 20 19:20:52 2016 +0100 +++ b/interfaces/mushra.css Thu May 26 15:20:55 2016 +0100 @@ -61,11 +61,16 @@ margin-left: 50px; } +div#outside-reference-holder { + display: flex; + align-content: center; + justify-content: center; + margin-bottom: 5px; +} + button.outside-reference { - width:120px; - height:20px; - margin-bottom:5px; - position: absolute; + position: inherit; + margin: 0px 5px; } div.track-slider-playing {
--- a/interfaces/mushra.js Fri May 20 19:20:52 2016 +0100 +++ b/interfaces/mushra.js Thu May 26 15:20:55 2016 +0100 @@ -68,6 +68,11 @@ // Append the interface buttons into the interfaceButtons object. interfaceButtons.appendChild(playback); interfaceButtons.appendChild(submit); + + // Create outside reference holder + var outsideRef = document.createElement("div"); + outsideRef.id = "outside-reference-holder"; + // Create a slider box var sliderBox = document.createElement('div'); @@ -100,6 +105,7 @@ testContent.appendChild(title); // Insert the title testContent.appendChild(pagetitle); testContent.appendChild(interfaceButtons); + testContent.appendChild(outsideRef); testContent.appendChild(sliderBox); testContent.appendChild(feedbackHolder); interfaceContext.insertPoint.appendChild(testContent); @@ -164,10 +170,8 @@ } // Delete outside reference - var outsideReferenceHolder = document.getElementById('outside-reference'); - if (outsideReferenceHolder != null) { - document.getElementById('interface-buttons').removeChild(outsideReferenceHolder); - } + var outsideReferenceHolder = document.getElementById("outside-reference-holder"); + outsideReferenceHolder.innerHTML = ""; var sliderBox = document.getElementById('slider-holder'); sliderBox.innerHTML = ""; @@ -192,7 +196,7 @@ if (element.type == 'outside-reference') { // Construct outside reference; - var orNode = new interfaceContext.outsideReferenceDOM(audioObject,index,document.getElementById('interface-buttons')); + var orNode = new interfaceContext.outsideReferenceDOM(audioObject,index,outsideReferenceHolder); audioObject.bindInterface(orNode); } else { // Create a slider per track
--- a/js/core.js Fri May 20 19:20:52 2016 +0100 +++ b/js/core.js Thu May 26 15:20:55 2016 +0100 @@ -2485,7 +2485,6 @@ { this.parent = audioObject; this.outsideReferenceHolder = document.createElement('button'); - this.outsideReferenceHolder.id = 'outside-reference'; this.outsideReferenceHolder.className = 'outside-reference'; this.outsideReferenceHolder.setAttribute('track-id',index); this.outsideReferenceHolder.textContent = "Play Reference";
--- a/js/specification.js Fri May 20 19:20:52 2016 +0100 +++ b/js/specification.js Thu May 26 15:20:55 2016 +0100 @@ -163,7 +163,7 @@ this.encode = function() { var RootDocument = document.implementation.createDocument(null,"waet"); - var root = RootDocument.children[0]; + var root = RootDocument.firstChild; root.setAttribute("xmlns:xsi","http://www.w3.org/2001/XMLSchema-instance"); root.setAttribute("xsi:noNamespaceSchemaLocation","test-schema.xsd"); // Build setup node
--- a/test_create/test_core.js Fri May 20 19:20:52 2016 +0100 +++ b/test_create/test_core.js Thu May 26 15:20:55 2016 +0100 @@ -282,7 +282,7 @@ this.content.appendChild(this.select); this.description = document.createElement("p"); this.content.appendChild(this.description); - this.testsXML = interfaceSpecs.getElementsByTagName('tests')[0].children; + this.testsXML = interfaceSpecs.getElementsByTagName('tests')[0].getElementsByTagName('test'); for (var i=0; i<this.testsXML.length; i++) { var option = document.createElement('option'); @@ -345,9 +345,10 @@ this.testXML = interfaceSpecs.getElementsByTagName("tests")[0].getAllElementsByName(interfaceName)[0]; this.interfaceXML = interfaceSpecs.getAllElementsByTagName("interfaces")[0].getAllElementsByName(this.testXML.getAttribute("interface"))[0].getAllElementsByTagName("checks")[0]; this.testXML = this.testXML.getAllElementsByTagName("checks"); - for (var i=0; i<this.interfaceXML.children.length; i++) + var interfaceXMLChildren = this.interfaceXML.getElementsByTagName('entry'); + for (var i=0; i<interfaceXMLChildren.length; i++) { - var interfaceNode = this.interfaceXML.children[i]; + var interfaceNode = interfaceXMLChildren[i]; var checkName = interfaceNode.getAttribute('name'); var testNode if (this.testXML.length > 0) @@ -472,9 +473,10 @@ this.testXML = interfaceSpecs.getElementsByTagName("tests")[0].getAllElementsByName(interfaceName)[0]; this.interfaceXML = interfaceSpecs.getAllElementsByTagName("interfaces")[0].getAllElementsByName(this.testXML.getAttribute("interface"))[0].getAllElementsByTagName("metrics")[0]; this.testXML = this.testXML.getAllElementsByTagName("metrics"); - for (var i=0; i<this.interfaceXML.children.length; i++) + var interfaceXMLChildren = this.interfaceXML.getElementsByTagName('entry'); + for (var i=0; i<interfaceXMLChildren.length; i++) { - var interfaceNode = this.interfaceXML.children[i]; + var interfaceNode = interfaceXMLChildren[i]; var checkName = interfaceNode.getAttribute('name'); var testNode if (this.testXML.length > 0) @@ -599,9 +601,10 @@ this.testXML = interfaceSpecs.getElementsByTagName("tests")[0].getAllElementsByName(interfaceName)[0]; this.interfaceXML = interfaceSpecs.getAllElementsByTagName("interfaces")[0].getAllElementsByName(this.testXML.getAttribute("interface"))[0].getAllElementsByTagName("show")[0]; this.testXML = this.testXML.getAllElementsByTagName("show"); - for (var i=0; i<this.interfaceXML.children.length; i++) + var interfaceXMLChildren = this.interfaceXML.getElementsByTagName('entry'); + for (var i=0; i<interfaceXMLChildren.length; i++) { - var interfaceNode = this.interfaceXML.children[i]; + var interfaceNode = interfaceXMLChildren[i]; var checkName = interfaceNode.getAttribute('name'); var testNode if (this.testXML.length > 0) @@ -987,7 +990,7 @@ handleEvent: function(event) { this.parent.scaleRoot.scales = []; var protoScale = interfaceSpecs.getAllElementsByTagName('scaledefinitions')[0].getAllElementsByName(event.currentTarget.value)[0]; - var protoMarkers = protoScale.children; + var protoMarkers = protoScale.getElementsByTagName("scale"); for (var i=0; i<protoMarkers.length; i++) { var marker = { @@ -1011,7 +1014,7 @@ this.parent = parent; // Generate Pre-Set dropdown - var protoScales = interfaceSpecs.getAllElementsByTagName('scaledefinitions')[0].children; + var protoScales = interfaceSpecs.getAllElementsByTagName('scaledefinitions')[0].getElementsByTagName("scale"); this.preset.input.innerHTML = ""; for (var i=0; i<protoScales.length; i++) @@ -1186,7 +1189,7 @@ this.dataType = schema.getAttribute('type'); if (this.dataType == undefined) { if (schema.childElementCount > 0) { - if (schema.children[0].nodeName == "xs:simpleType") { + if (schema.firstElementChild.nodeName == "xs:simpleType") { this.dataType = schema.getAllElementsByTagName("xs:restriction")[0].getAttribute("base"); } } @@ -1326,7 +1329,7 @@ span.textContent = "Your XML document is linked below. On most browsers, simply right click on the link and select 'Save As'. Or clicking on the link may download the file directly. " obj.content.appendChild(span); var link = document.createElement("div"); - link.appendChild(doc.children[0]); + link.appendChild(doc.firstElementChild); var file = [link.innerHTML]; var bb = new Blob(file,{type : 'application/xml'}); var dnlk = window.URL.createObjectURL(bb); @@ -1394,14 +1397,15 @@ var testXML = interfaceSpecs.getElementsByTagName("tests")[0].getAllElementsByName(interfaceName)[0]; var interfaceXML = interfaceSpecs.getAllElementsByTagName("interfaces")[0].getAllElementsByName(testXML.getAttribute("interface"))[0].getAllElementsByTagName("metrics")[0]; testXML = testXML.getAllElementsByTagName("metrics"); - for (var i=0; i<interfaceXML.children.length; i++) + var interfaceXMLChild = interfaceXML.firstElementChild; + while(interfaceXMLChild) { var obj = { input: document.createElement('input'), root: document.createElement('div'), text: document.createElement('span'), specification: specification.metrics.enabled, - name: interfaceXML.children[i].getAttribute("name"), + name: interfaceXMLChild.getAttribute("name"), handleEvent: function() { for (var i=0; i<this.specification.length; i++) @@ -1431,7 +1435,7 @@ obj.input.type = "checkbox"; obj.root.appendChild(obj.text); obj.root.appendChild(obj.input); - obj.text.textContent = checkText.children[i].textContent; + obj.text.textContent = checkText.getAllElementsByName(interfaceXMLChild.getAttribute("name"))[0].textContent; metric.children.push(obj); metric.childrenDOM.appendChild(obj.root); for (var j=0; j<specification.metrics.enabled.length; j++) @@ -1442,6 +1446,7 @@ break; } } + interfaceXMLChild = interfaceXMLChild.nextElementSibling; } // Now both before and after surveys @@ -1640,9 +1645,10 @@ var testXML = interfaceSpecs.getElementsByTagName("tests")[0].getAllElementsByName(interfaceName)[0]; var interfaceXML = interfaceSpecs.getAllElementsByTagName("interfaces")[0].getAllElementsByName(testXML.getAttribute("interface"))[0].getAllElementsByTagName("checks")[0]; testXML = testXML.getAllElementsByTagName("checks"); - for (var i=0; i<interfaceXML.children.length; i++) + var interfaceXMLChild = interfaceXML.firstElementChild; + while (interfaceXMLChild) { - var obj = new this.createIOasAttr(interfaceXML.children[i].getAttribute("name"),this.specification,this,"check"); + var obj = new this.createIOasAttr(interfaceXMLChild.getAttribute("name"),this.specification,this,"check"); for (var option of this.specification.options) { if (option.name == obj.name) @@ -1661,10 +1667,11 @@ } } var text = document.createElement('span'); - text.textContent = checkText.children[i].textContent; + text.textContent = checkText.getAllElementsByName(interfaceXMLChild.getAttribute("name"))[0].textContent; obj.root.appendChild(text); checks.attributeDOM.appendChild(obj.root); checks.attributes.push(obj); + interfaceXMLChild = interfaceXMLChild.nextElementSibling; } this.children.push(checks); this.childrenDOM.appendChild(checks.rootDOM); @@ -1675,9 +1682,10 @@ testXML = interfaceSpecs.getElementsByTagName("tests")[0].getAllElementsByName(interfaceName)[0]; interfaceXML = interfaceSpecs.getAllElementsByTagName("interfaces")[0].getAllElementsByName(testXML.getAttribute("interface"))[0].getAllElementsByTagName("show")[0]; testXML = testXML.getAllElementsByTagName("show"); - for (var i=0; i<interfaceXML.children.length; i++) + interfaceXMLChild = interfaceXML.firstElementChild; + while(interfaceXMLChild) { - var obj = new this.createIOasAttr(interfaceXML.children[i].getAttribute("name"),this.specification,this,"show"); + var obj = new this.createIOasAttr(interfaceXMLChild.getAttribute("name"),this.specification,this,"show"); for (var option of this.specification.options) { if (option.name == obj.name) @@ -1696,10 +1704,11 @@ } } var text = document.createElement('span'); - text.textContent = checkText.children[i].textContent; + text.textContent = checkText.getAllElementsByName(interfaceXMLChild.getAttribute("name"))[0].textContent; obj.root.appendChild(text); show.attributeDOM.appendChild(obj.root); show.attributes.push(obj); + interfaceXMLChild = interfaceXMLChild.nextElementSibling; } this.children.push(show); this.childrenDOM.appendChild(show.rootDOM);