changeset 2873:fefa7c50d263

Merge branch 'vnext' into Dev_main
author Nicholas Jillings <nicholas.jillings@mail.bcu.ac.uk>
date Tue, 09 May 2017 16:11:25 +0100
parents 0981212c091f (current diff) 97a52e326464 (diff)
children dafc6eba55fc
files
diffstat 8 files changed, 44 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/interfaces/AB.js	Tue May 09 14:53:03 2017 +0100
+++ b/interfaces/AB.js	Tue May 09 16:11:25 2017 +0100
@@ -395,6 +395,10 @@
 function buttonSubmitClick() {
     var checks = testState.currentStateMap.interfaces[0].options,
         canContinue = true;
+    
+    if (interfaceContext.checkFragmentMinPlays() === false) {
+    return;
+}
 
     for (var i = 0; i < checks.length; i++) {
         if (checks[i].type == 'check') {
--- a/interfaces/ABX.js	Tue May 09 14:53:03 2017 +0100
+++ b/interfaces/ABX.js	Tue May 09 16:11:25 2017 +0100
@@ -424,6 +424,10 @@
     var checks = testState.currentStateMap.interfaces[0].options,
         canContinue = true;
 
+    if (interfaceContext.checkFragmentMinPlays() === false) {
+        return;
+    }
+
     for (var i = 0; i < checks.length; i++) {
         var checkState = true;
         if (checks[i].type == 'check') {
--- a/interfaces/ape.js	Tue May 09 14:53:03 2017 +0100
+++ b/interfaces/ape.js	Tue May 09 16:11:25 2017 +0100
@@ -750,6 +750,9 @@
     if (interfaceContext.checkHiddenReference() === false) {
         return;
     }
+    if (interfaceContext.checkFragmentMinPlays() === false) {
+        return;
+    }
 
     for (var i = 0; i < checks.length; i++) {
         var checkState = true;
--- a/interfaces/discrete.js	Tue May 09 14:53:03 2017 +0100
+++ b/interfaces/discrete.js	Tue May 09 16:11:25 2017 +0100
@@ -482,6 +482,9 @@
     if (interfaceContext.checkHiddenReference() === false) {
         return;
     }
+    if (interfaceContext.checkFragmentMinPlays() === false) {
+        return;
+    }
 
     for (var i = 0; i < checks.length; i++) {
         var checkState;
--- a/interfaces/horizontal-sliders.js	Tue May 09 14:53:03 2017 +0100
+++ b/interfaces/horizontal-sliders.js	Tue May 09 16:11:25 2017 +0100
@@ -431,6 +431,9 @@
     if (interfaceContext.checkHiddenReference() === false) {
         return;
     }
+    if (interfaceContext.checkFragmentMinPlays() === false) {
+        return;
+    }
 
     for (var i = 0; i < checks.length; i++) {
         var checkState = true;
--- a/interfaces/mushra.js	Tue May 09 14:53:03 2017 +0100
+++ b/interfaces/mushra.js	Tue May 09 16:11:25 2017 +0100
@@ -525,6 +525,9 @@
     if (interfaceContext.checkHiddenReference() === false) {
         return;
     }
+    if (interfaceContext.checkFragmentMinPlays() === false) {
+        return;
+    }
 
     for (var i = 0; i < checks.length; i++) {
         var checkState = true;
--- a/interfaces/timeline.js	Tue May 09 14:53:03 2017 +0100
+++ b/interfaces/timeline.js	Tue May 09 16:11:25 2017 +0100
@@ -496,6 +496,9 @@
     }
     var checks = testState.currentStateMap.interfaces[0].options,
         canContinue = true;
+    if (interfaceContext.checkFragmentMinPlays() === false) {
+        return;
+    }
     for (var i = 0; i < checks.length; i++) {
         var checkState = true;
         if (checks[i].type == 'check') {
--- a/js/core.js	Tue May 09 14:53:03 2017 +0100
+++ b/js/core.js	Tue May 09 16:11:25 2017 +0100
@@ -3333,6 +3333,27 @@
         }
         return state;
     };
+    this.checkFragmentMinPlays = function () {
+        var failedObjects = audioEngineContext.audioObjects.filter(function (a) {
+            var minPlays = a.specification.minNumberPlays || a.specification.parent.minNumberPlays || specification.minNumberPlays;
+            if (minPlays === undefined || a.numberOfPlays >= minPlays) {
+                return false;
+            }
+            return true;
+        });
+        if (failedObjects.length === 0) {
+            return true;
+        }
+        var failedString = [];
+        failedObjects.forEach(function (a) {
+            failedString.push(a.interfaceDOM.getPresentedId());
+        });
+        var str = "You have not played fragments " + failedString.join(", ") + " enough. Please keep listening";
+        interfaceContext.lightbox.post("Message", str);
+        this.storeErrorNode(str);
+        return false;
+    };
+
 
     this.sortFragmentsByScore = function () {
         var elements = audioEngineContext.audioObjects.filter(function (elem) {