|
@@ -78,4 +78,43 @@ function (angular, kbn) {
|
|
|
};
|
|
};
|
|
|
});
|
|
});
|
|
|
|
|
|
|
|
-});
|
|
|
|
|
|
|
+ angular
|
|
|
|
|
+ .module('grafana.directives')
|
|
|
|
|
+ .directive('tagColorFromName', function() {
|
|
|
|
|
+
|
|
|
|
|
+ function djb2(str) {
|
|
|
|
|
+ var hash = 5381;
|
|
|
|
|
+ for (var i = 0; i < str.length; i++) {
|
|
|
|
|
+ hash = ((hash << 5) + hash) + str.charCodeAt(i); /* hash * 33 + c */
|
|
|
|
|
+ }
|
|
|
|
|
+ return hash;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ return {
|
|
|
|
|
+ scope: { tagColorFromName: "=" },
|
|
|
|
|
+ link: function (scope, element) {
|
|
|
|
|
+ var hash = djb2(scope.tagColorFromName.toLowerCase());
|
|
|
|
|
+ var colors = [
|
|
|
|
|
+ "#E24D42","#1F78C1","#BA43A9","#705DA0","#466803",
|
|
|
|
|
+ "#508642","#447EBC","#C15C17","#890F02","#757575",
|
|
|
|
|
+ "#0A437C","#6D1F62","#584477","#629E51","#2F4F4F",
|
|
|
|
|
+ "#BF1B00","#806EB7","#8a2eb8", "#699e00","#000000",
|
|
|
|
|
+ "#3F6833","#2F575E","#99440A","#E0752D","#0E4AB4",
|
|
|
|
|
+ "#58140C","#052B51","#511749","#3F2B5B",
|
|
|
|
|
+ ];
|
|
|
|
|
+ var borderColors = [
|
|
|
|
|
+ "#FF7368","#459EE7","#E069CF","#9683C6","#6C8E29",
|
|
|
|
|
+ "#76AC68","#6AA4E2","#E7823D","#AF3528","#9B9B9B",
|
|
|
|
|
+ "#3069A2","#934588","#7E6A9D","#88C477","#557575",
|
|
|
|
|
+ "#E54126","#A694DD","#B054DE", "#8FC426","#262626",
|
|
|
|
|
+ "#658E59","#557D84","#BF6A30","#FF9B53","#3470DA",
|
|
|
|
|
+ "#7E3A32","#2B5177","#773D6F","#655181",
|
|
|
|
|
+ ];
|
|
|
|
|
+ var color = colors[Math.abs(hash % colors.length)];
|
|
|
|
|
+ var borderColor = borderColors[Math.abs(hash % borderColors.length)];
|
|
|
|
|
+
|
|
|
|
|
+ element.css("background-color", color);
|
|
|
|
|
+ element.css("border-color", borderColor);
|
|
|
|
|
+ }
|
|
|
|
|
+ };
|
|
|
|
|
+ });});
|