diff --git a/src/js/utils.js b/src/js/utils.js index 304bd1375..2dcfa9a75 100644 --- a/src/js/utils.js +++ b/src/js/utils.js @@ -38,4 +38,3 @@ angular.module('Application').directive('passwordReveal', function () { } }; }); - diff --git a/src/views/system.js b/src/views/system.js index 55ca92e25..a5fea703e 100644 --- a/src/views/system.js +++ b/src/views/system.js @@ -11,14 +11,30 @@ angular.module('Application').controller('SystemController', ['$scope', '$locati $scope.memory = null; $scope.volumesById = {}; - // http://stackoverflow.com/questions/1484506/random-color-generator-in-javascript - function getRandomColor() { - var letters = '0123456789ABCDEF'.split(''); - var color = '#'; - for (var i = 0; i < 6; i++ ) { - color += letters[Math.floor(Math.random() * 16)]; + // https://stackoverflow.com/questions/1484506/random-color-generator + function rainbow(numOfSteps, step) { + // This function generates vibrant, "evenly spaced" colours (i.e. no clustering). This is ideal for creating easily distinguishable vibrant markers in Google Maps and other apps. + // Adam Cole, 2011-Sept-14 + // HSV to RBG adapted from: http://mjijackson.com/2008/02/rgb-to-hsl-and-rgb-to-hsv-color-model-conversion-algorithms-in-javascript + var r, g, b; + var h = step / numOfSteps; + var i = ~~(h * 6); + var f = h * 6 - i; + var q = 1 - f; + switch(i % 6){ + case 0: r = 1; g = f; b = 0; break; + case 1: r = q; g = 1; b = 0; break; + case 2: r = 0; g = 1; b = f; break; + case 3: r = 0; g = q; b = 1; break; + case 4: r = f; g = 0; b = 1; break; + case 5: r = 1; g = 0; b = q; break; } - return color; + var c = "#" + ("00" + (~ ~(r * 255)).toString(16)).slice(-2) + ("00" + (~ ~(g * 255)).toString(16)).slice(-2) + ("00" + (~ ~(b * 255)).toString(16)).slice(-2); + return (c); + } + + function getRandomColor() { + return rainbow(50, Math.random() * 50); } var colorIndex = 0;