cms/app-client/app/components/visu-langues.js
changeset 126 e87a340711a4
parent 123 4c97e9da1416
child 142 86fcf0c837c0
--- a/cms/app-client/app/components/visu-langues.js	Fri Feb 19 21:18:12 2016 +0100
+++ b/cms/app-client/app/components/visu-langues.js	Mon Feb 22 18:06:39 2016 +0100
@@ -1,7 +1,10 @@
 import Ember from 'ember';
 import d3 from 'd3';
+import ENV from 'app-client/config/environment';
+import _ from 'lodash/lodash';
 
 export default Ember.Component.extend({
+  constants: Ember.inject.service(),
   didInsertElement: function(){
     var _this = this;
     var margin = {top: 20, right: 0, bottom: 0, left: 0},
@@ -46,7 +49,11 @@
         .attr("y", 6 - margin.top)
         .attr("dy", ".75em");
 
-    d3.json("langues.json", function(root) {
+    var baseurl = ENV.baseURL.replace(/\/$/,"")+'/api/v1';
+    d3.json(baseurl+"/languages", function(languages) {
+
+      var root = _.cloneDeep(_this.constants.LANGUAGES_TREEMAP);
+
       initialize(root);
       accumulate(root);
       layout(root);
@@ -64,7 +71,7 @@
       // We also take a snapshot of the original children (_children) to avoid
       // the children being overwritten when when layout is computed.
       function accumulate(d) {
-        return (d._children = d.children) ? d.value = d.children.reduce(function(p, v) { return p + accumulate(v); }, 0) : d.value;
+        return (d._children = d.children) ? (d.value = d.children.reduce(function(p, v) { return p + accumulate(v); }, 0)) : (d.value = (languages[d.id]?languages[d.id]:0));
       }
 
       // Compute the treemap layout recursively such that each group of siblings
@@ -92,7 +99,7 @@
         grandparent
             .datum(d.parent)
             .on("click", transition)
-          .select("text")
+            .select("text")
             .text(name(d));
 
         var g1 = svg.insert("g", ".grandparent")
@@ -101,7 +108,7 @@
 
         var g = g1.selectAll("g")
             .data(d._children)
-          .enter().append("g");
+            .enter().append("g");
 
         g.classed("bla", true).on("click", selectHandler);