changeset 3062:e441e3d5c7e7

Potential implementation of #109
author Nicholas Jillings <nicholas.jillings@mail.bcu.ac.uk>
date Tue, 31 Oct 2017 15:55:07 +0000
parents 83097e588634
children 6b95437ae672
files interfaces/ape.js js/specification.js
diffstat 2 files changed, 12 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/interfaces/ape.js	Tue Oct 31 15:43:05 2017 +0000
+++ b/interfaces/ape.js	Tue Oct 31 15:55:07 2017 +0000
@@ -644,9 +644,18 @@
     this.initialisePage = function (page_init) {
         this.clear();
         page = page_init;
-        var interfaceObj = interfaceContext.getCombinedInterfaces(page);
+        var randomiseAxisOrder;
+        if (page.randomiseAxisOrder !== undefined) {
+            randomiseAxisOrder = page.randomiseAxisOrder;
+        } else {
+            randomiseAxisOrder = page.parent.randomiseAxisOrder;
+        }
         var commentBoxes = false;
         // Create each of the interface axis
+        if (randomiseAxisOrder) {
+            page.interfaces = randomiseOrder(page.interfaces);
+        }
+        var interfaceObj = interfaceContext.getCombinedInterfaces(page);
         interfaceObj.forEach(function (i) {
             var node = new axisObject(i, this);
             axis.push(node);
--- a/js/specification.js	Tue Oct 31 15:43:05 2017 +0000
+++ b/js/specification.js	Tue Oct 31 15:55:07 2017 +0000
@@ -19,6 +19,7 @@
     this.playOne = undefined;
     this.minNumberPlays = undefined;
     this.maxNumberPlays = undefined;
+    this.randomiseAxisOrder = undefined;
 
     // nodes
     this.metrics = new metricNode();
@@ -580,6 +581,7 @@
         this.commentBoxPrefix = "Comment on track";
         this.minNumberPlays = undefined;
         this.maxNumberPlays = undefined;
+        this.randomiseAxisOrder = undefined;
         this.audioElements = [];
         this.commentQuestions = [];
         this.schema = schemaRoot.querySelector("[name=page]");