From abe8b199f2240d00d3367cea29c716c697664b3e Mon Sep 17 00:00:00 2001
From: Piotr Gawron <piotr.gawron@uni.lu>
Date: Wed, 31 May 2017 17:22:55 +0200
Subject: [PATCH] promise chain fixed (when rejected/exception occured)

---
 frontend-js/src/main/js/Functions.js | 78 ++++++++++++++--------------
 1 file changed, 38 insertions(+), 40 deletions(-)

diff --git a/frontend-js/src/main/js/Functions.js b/frontend-js/src/main/js/Functions.js
index 7f6d092ee3..14e71695de 100644
--- a/frontend-js/src/main/js/Functions.js
+++ b/frontend-js/src/main/js/Functions.js
@@ -166,52 +166,50 @@ Functions.isDomElement = function(o) {
 
 Functions.overlayToColor = function(elementOverlay) {
   var self = this;
-  return new Promise(function(resolve, reject) {
-    /* jslint bitwise: true */
-    if (elementOverlay === null || elementOverlay === undefined) {
-      reject("elementOverlay cannot be null!");
-    } else if (elementOverlay.color !== undefined && elementOverlay.color !== null) {
-      resolve(self.intToColorString(elementOverlay.color.value));
-    } else if (elementOverlay.value !== undefined && elementOverlay.value !== null) {
-      var ratio = 0;
-      var promiseColor = null;
-      if (elementOverlay.value < 0) {
-        ratio = -elementOverlay.value;
-        promiseColor = ServerConnector.getMinOverlayColorInt();
-      } else {
-        ratio = elementOverlay.value;
-        promiseColor = ServerConnector.getMaxOverlayColorInt();
-      }
-      return promiseColor.then(function(color) {
+  /* jslint bitwise: true */
+  if (elementOverlay === null || elementOverlay === undefined) {
+    return Promise.reject("elementOverlay cannot be null!");
+  } else if (elementOverlay.color !== undefined && elementOverlay.color !== null) {
+    return Promise.resolve(self.intToColorString(elementOverlay.color.value));
+  } else if (elementOverlay.value !== undefined && elementOverlay.value !== null) {
+    var ratio = 0;
+    var promiseColor = null;
+    if (elementOverlay.value < 0) {
+      ratio = -elementOverlay.value;
+      promiseColor = ServerConnector.getMinOverlayColorInt();
+    } else {
+      ratio = elementOverlay.value;
+      promiseColor = ServerConnector.getMaxOverlayColorInt();
+    }
+    return promiseColor.then(function(color) {
 
-        ratio = 1 - ratio;
-        var MAX_RED = 0xFF0000;
-        var MAX_GREEN = 0x00FF00;
-        var MAX_BLUE = 0x0000FF;
+      ratio = 1 - ratio;
+      var MAX_RED = 0xFF0000;
+      var MAX_GREEN = 0x00FF00;
+      var MAX_BLUE = 0x0000FF;
 
-        var red = color & MAX_RED;
+      var red = color & MAX_RED;
 
-        red = red + (MAX_RED - red) * ratio;
-        red = parseInt(red);
-        red = red & 0xFF0000;
+      red = red + (MAX_RED - red) * ratio;
+      red = parseInt(red);
+      red = red & 0xFF0000;
 
-        var green = color & MAX_GREEN;
-        green = green + (MAX_GREEN - green) * ratio;
-        green = parseInt(green);
-        green = green & MAX_GREEN;
+      var green = color & MAX_GREEN;
+      green = green + (MAX_GREEN - green) * ratio;
+      green = parseInt(green);
+      green = green & MAX_GREEN;
 
-        var blue = color & MAX_BLUE;
-        blue = blue + (MAX_BLUE - blue) * ratio;
-        blue = parseInt(blue);
-        blue = blue & MAX_BLUE;
+      var blue = color & MAX_BLUE;
+      blue = blue + (MAX_BLUE - blue) * ratio;
+      blue = parseInt(blue);
+      blue = blue & MAX_BLUE;
 
-        color = red | green | blue;
-        resolve(self.intToColorString(color));
-      });
-    } else {
-      reject("elementOverlay doesn't have neither color nor value set!");
-    }
-  });
+      color = red | green | blue;
+      return self.intToColorString(color);
+    });
+  } else {
+    return Promise.reject("elementOverlay doesn't have neither color nor value set!");
+  }
 };
 
 Functions.getElementByName = function(element, name) {
-- 
GitLab