From 7c69a9c9967ffc86ec47d98bfcbcfaa11a3d36ef Mon Sep 17 00:00:00 2001
From: Philip ABBET <philip.abbet@idiap.ch>
Date: Thu, 24 Nov 2016 11:47:15 +0100
Subject: [PATCH] [website] Always use a Python-compatible environment as the
 default on the experiment setup page

---
 .../static/experiments/js/panels.js           | 47 +++++++++++--------
 1 file changed, 28 insertions(+), 19 deletions(-)

diff --git a/beat/web/experiments/static/experiments/js/panels.js b/beat/web/experiments/static/experiments/js/panels.js
index 82bb88b30..c07d00c6e 100644
--- a/beat/web/experiments/static/experiments/js/panels.js
+++ b/beat/web/experiments/static/experiments/js/panels.js
@@ -1464,6 +1464,7 @@ beat.experiments.panels.Parameters.prototype.initialize = function(configuration
 
   var iterator = this.environments.iterator();
   var selected_environment_index = null;
+  var first_python_environment_index = null;
 
   var default_environment = this.configuration.defaultEnvironment();
   if (default_environment !== null)
@@ -1479,31 +1480,39 @@ beat.experiments.panels.Parameters.prototype.initialize = function(configuration
 
     var option         = document.createElement('option');
     option.textContent = environment.name + ' (' + environment.version + ')';
-        option.value       = selector_counter;
+    option.value       = selector_counter;
 
-        if ((default_environment != null) && (default_environment.name == environment.name) &&
-          (default_environment.version == environment.version))
-        {
-          selected_environment_index = environment_selector.children.length;
-        }
+    if ((default_environment != null) && (default_environment.name == environment.name) &&
+      (default_environment.version == environment.version))
+    {
+      selected_environment_index = environment_selector.children.length;
+    }
 
-        environment_selector.appendChild(option);
-        selector_counter += 1;
-        }
+    if ((first_python_environment_index === null) && (environment.languages.indexOf('python') >= 0))
+      first_python_environment_index = environment_selector.children.length;
+
+    environment_selector.appendChild(option);
+    selector_counter += 1;
+  }
 
-        if (selected_environment_index === null)
-        selected_environment_index = 0;
+  if (selected_environment_index === null)
+  {
+    if (first_python_environment_index !== null)
+      selected_environment_index = first_python_environment_index;
+    else
+      selected_environment_index = 0;
+  }
 
-        environment_selector.selectedIndex = selected_environment_index;
-        this._onEnvironmentSelected();
+  environment_selector.selectedIndex = selected_environment_index;
+  this._onEnvironmentSelected();
 
 
-        var selected_algorithms = this.configuration.algorithms();
-        for (var i = 0; i < selected_algorithms.length; ++i)
-        {
-          var algorithm_name = selected_algorithms[i];
-          this.addAlgorithm(selected_algorithms[i]);
-        }
+  var selected_algorithms = this.configuration.algorithms();
+  for (var i = 0; i < selected_algorithms.length; ++i)
+  {
+    var algorithm_name = selected_algorithms[i];
+    this.addAlgorithm(selected_algorithms[i]);
+  }
 }
 
 
-- 
GitLab