changeset 2689:f4a146282ef5

Several compatability fixes
author Nicholas Jillings <nicholas.jillings@mail.bcu.ac.uk>
date Sat, 11 Mar 2017 11:00:45 +0000
parents 78717148d815
children 9eb3ff794d63
files interfaces/ape.js js/core.js
diffstat 2 files changed, 26 insertions(+), 23 deletions(-) [+]
line wrap: on
line diff
--- a/interfaces/ape.js	Sat Mar 11 09:06:26 2017 +0000
+++ b/interfaces/ape.js	Sat Mar 11 11:00:45 2017 +0000
@@ -861,7 +861,6 @@
                     if (name == "elementTracker" || name == "elementTrackerFull" || name == "elementInitialPosition" || name == "elementFlagMoved") {
                         mrnodes[j].setAttribute("interface-name", interfaceContext.interfaceSliders[k].name);
                         mrnodes[j].setAttribute("interface-id", k);
-                        inject.appendChild(mrnodes[j]);
                     }
                 }
             }
--- a/js/core.js	Sat Mar 11 09:06:26 2017 +0000
+++ b/js/core.js	Sat Mar 11 11:00:45 2017 +0000
@@ -328,7 +328,7 @@
         storage.initialise(responseDocument);
     }
     /// CHECK FOR SAMPLE RATE COMPATIBILITY
-    if (specification.sampleRate !== null) {
+    if (isFinite(specification.sampleRate)) {
         if (Number(specification.sampleRate) != audioContext.sampleRate) {
             var errStr = 'Sample rates do not match! Requested ' + Number(specification.sampleRate) + ', got ' + audioContext.sampleRate + '. Please set the sample rate to match before completing this test.';
             interfaceContext.lightbox.post("Error", errStr);
@@ -609,7 +609,7 @@
             conditionFunction = processCheckboxConditional;
         } else if (node.specification.type === "radio") {
             conditionFunction = processRadioConditional;
-        } else if (node.specifiication.type === "number") {
+        } else if (node.specification.type === "number") {
             conditionFunction = processNumberConditional;
         } else if (node.specification.type === "slider") {
             conditionFunction = processSliderConditional;
@@ -801,17 +801,19 @@
     }
 
     function postRadio(node) {
-        if (node.response === undefined) {
+        if (node.response === null) {
             node.response = {
                 name: "",
                 text: ""
             };
         }
-        var index = 0;
         var table = document.createElement("table");
         table.className = "popup-option-list";
         table.border = "0";
-        node.specification.options.forEach(function (option) {
+        if (node.response === null || node.response.length === 0) {
+            node.response = [];
+        }
+        node.specification.options.forEach(function (option, index) {
             var tr = document.createElement("tr");
             table.appendChild(tr);
             var td = document.createElement("td");
@@ -830,12 +832,7 @@
             tr = document.createElement('div');
             tr.setAttribute('name', 'option');
             tr.className = "popup-option-checbox";
-            if (node.response[index] !== undefined) {
-                if (node.response[index].checked === true) {
-                    input.checked = "true";
-                }
-            }
-            index++;
+            table.appendChild(tr);
         });
         this.popupResponse.appendChild(table);
     }
@@ -2207,6 +2204,7 @@
         mElementTimer.setAttribute('name', 'enableElementTimer');
         mElementTimer.textContent = this.listenedTimer;
         parentElement.appendChild(mElementTimer);
+        return mElementTimer;
     }
 
     function exportElementTrack(parentElement) {
@@ -2219,6 +2217,7 @@
             elementTrackerFull.appendChild(timePos);
         }
         parentElement.appendChild(elementTrackerFull);
+        return elementTrackerFull;
     }
 
     function exportElementListenTracker(parentElement) {
@@ -2228,6 +2227,7 @@
             elementListenTracker.appendChild(this.listenTracker[k]);
         }
         parentElement.appendChild(elementListenTracker);
+        return elementListenTracker;
     }
 
     function exportElementInitialPosition(parentElement) {
@@ -2235,6 +2235,7 @@
         elementInitial.setAttribute('name', 'elementInitialPosition');
         elementInitial.textContent = this.initialPosition;
         parentElement.appendChild(elementInitial);
+        return elementInitial;
     }
 
     function exportFlagListenedTo(parentElement) {
@@ -2242,6 +2243,7 @@
         flagListenedTo.setAttribute('name', 'elementFlagListenedTo');
         flagListenedTo.textContent = this.wasListenedTo;
         parentElement.appendChild(flagListenedTo);
+        return flagListenedTo;
     }
 
     function exportFlagMoved(parentElement) {
@@ -2249,6 +2251,7 @@
         flagMoved.setAttribute('name', 'elementFlagMoved');
         flagMoved.textContent = this.wasMoved;
         parentElement.appendChild(flagMoved);
+        return flagMoved;
     }
 
     function exportFlagComments(parentElement) {
@@ -2262,30 +2265,33 @@
             flagComments.textContet = 'true';
         }
         parentElement.appendChild(flagComments);
+        return flagComments;
     }
 
     this.exportXMLDOM = function (parentElement) {
+        var elems = []
         if (audioEngineContext.metric.enableElementTimer) {
-            exportElementTimer.call(this, parentElement);
+            elems.push(exportElementTimer.call(this, parentElement));
         }
         if (audioEngineContext.metric.enableElementTracker) {
-            exportElementTrack.call(this, parentElement);
+            elems.push(exportElementTrack.call(this, parentElement));
         }
         if (audioEngineContext.metric.enableElementListenTracker) {
-            exportElementListenTracker.call(this, parentElement);
+            elems.push(exportElementListenTracker.call(this, parentElement));
         }
         if (audioEngineContext.metric.enableElementInitialPosition) {
-            exportElementInitialPosition.call(this, parentElement);
+            elems.push(exportElementInitialPosition.call(this, parentElement));
         }
         if (audioEngineContext.metric.enableFlagListenedTo) {
-            exportFlagListenedTo.call(this, parentElement);
+            elems.push(exportFlagListenedTo.call(this, parentElement));
         }
         if (audioEngineContext.metric.enableFlagMoved) {
-            exportFlagMoved.call(this, parentElement);
+            elems.push(exportFlagMoved.call(this, parentElement));
         }
         if (audioEngineContext.metric.enableFlagComments) {
-            exportFlagComments.call(this, parentElement);
+            elems.push(exportFlagComments.call(this, parentElement));
         }
+        return elems;
     };
 }
 
@@ -2651,8 +2657,7 @@
             options.style.marginLeft = spanMargin;
             text.style.marginRight = spanMargin;
             text.style.marginLeft = spanMargin;
-            while (options.nextSibling !== undefined) {
-                options = options.nextSibling;
+            while (options = options.nextSibling) {
                 text = text.nextSibling;
                 options.style.marginRight = spanMargin;
                 options.style.marginLeft = spanMargin;
@@ -2750,8 +2755,7 @@
             options.style.marginLeft = spanMargin;
             text.style.marginRight = spanMargin;
             text.style.marginLeft = spanMargin;
-            while (options.nextSibling !== undefined) {
-                options = options.nextSibling;
+            while (options = options.nextSibling) {
                 text = text.nextSibling;
                 options.style.marginRight = spanMargin;
                 options.style.marginLeft = spanMargin;