diff -r 788971813bdc -r feb0d3e0fef9 cms/app-client/app/components/visu-langues.js --- 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; })