--- a/cms/app-client/app/components/visu-langues.js Mon Nov 14 17:23:43 2016 +0100
+++ b/cms/app-client/app/components/visu-langues.js Tue Nov 15 17:42:57 2016 +0100
@@ -10,6 +10,14 @@
filter: Ember.inject.service(),
colors: Ember.inject.service(),
+ scale: Ember.computed('maxCount', 'minCount', function() {
+ let maxCount = this.get('maxCount');
+ let minCount = this.get('minCount');
+ return this.get('colors').getScaleLinear(minCount, maxCount);
+ }),
+ maxCount: 0,
+ minCount: 0,
+
filterObserver: Ember.observer('filter.language', function() {
Ember.$('.node').removeClass("selected");
Ember.$('.node[data-id="' + this.get('filter').get('language') + '"]').addClass("selected");
@@ -142,10 +150,14 @@
var dMin = Math.min.apply(null, d._children.map(function(d){ return d.count; }));
var dMax = Math.max.apply(null, d._children.map(function(d){ return d.count; }));
+ self.setProperties({minCount: dMin, maxCount: dMax});
+ var scale = self.get('scale');
+ var backgroundColor = function(_d) { return scale(_d.count);};
+ var colorClass = function(_d) { return (self.get('colors').getPerceptiveLuminance(backgroundColor(_d)) >= 0.5)?'light-color':'dark-color'; };
- node.attr("class", function(d) { return "node" + ( d.id === self.get('filter').get('language') ? " selected" : "" ); })
+ node.attr("class", function(_d) { return "node " + colorClass(_d) + ( _d.id === self.get('filter').get('language') ? " selected" : "" ); })
.call(position)
- .style("background-color", function(d) { return self.get('colors').shadeLinear(d.count,dMin,dMax); })
+ .style("background-color", backgroundColor)
.on("click", selectHandler);
node.filter(function(d) { return d._children; })