cms/app-client/app/components/visu-chrono.js
changeset 197 7b266ccf6d3d
parent 195 9d083636bd99
child 202 0446e07981db
--- a/cms/app-client/app/components/visu-chrono.js	Tue Jun 21 14:24:30 2016 +0200
+++ b/cms/app-client/app/components/visu-chrono.js	Wed Jun 22 22:13:46 2016 +0200
@@ -1,16 +1,16 @@
 import Ember from 'ember';
 
-const { getOwner } = Ember;
+export default Ember.Component.extend({
 
-export default Ember.Component.extend({
+    filter: Ember.inject.service(),
 
     elementId: "chrono-table",
 
     didInsertElement: function(){
         var self = this;
 
-        if (getOwner(self).lookup('controller:application').date !== null){
-            this.highlightQuery(getOwner(self).lookup('controller:application').date);
+        if (this.get('filter').get('date') !== null){
+            this.highlightQuery(this.get('filter').get('date'));
         }
 
         var isMouseDown = false,
@@ -20,12 +20,28 @@
             isMouseDown = true;
             Ember.$(this).toggleClass("highlighted");
             isHighlighted = Ember.$(this).hasClass("highlighted");
-            self.sendUpdate();
+            var dates = self.get('filter').get('date').toArray();
+            var index = dates.indexOf(parseInt(Ember.$(this).attr('id')));
+            if(index === -1) {
+                dates.push(parseInt(Ember.$(this).attr('id')));
+            } else {
+                dates.splice(index, 1);
+            }
+            self.get('filter').set('date', dates);
             return false; // prevent text selection
         }).mouseover(function () {
             if (isMouseDown) {
-                Ember.$(this).toggleClass("highlighted", isHighlighted);
-                self.sendUpdate();
+                if(Ember.$(this).hasClass("highlighted") !== isHighlighted) {
+                    Ember.$(this).toggleClass("highlighted", isHighlighted);
+                    var dates = self.get('filter').get('date').toArray();
+                    var index = dates.indexOf(parseInt(Ember.$(this).attr('id')));
+                    if(index === -1) {
+                        dates.push(parseInt(Ember.$(this).attr('id')));
+                    } else {
+                        dates.splice(index, 1);
+                    }
+                    self.get('filter').set('date', dates);
+                }
             }
         }).bind("selectstart", function () {
             return false;
@@ -36,18 +52,9 @@
         });
     },
 
-    sendUpdate: function(){
-        var dateQuery = [];
-        Ember.$('.highlighted').map(function(index, elt) {
-            dateQuery.push(parseInt(Ember.$(elt).parent().attr('id')) + parseInt(Ember.$(elt).html()));
-        });
-        this.sendAction('action', dateQuery);
-    },
-
-    highlightQuery: function(list){
-        list.map(function(elt){
-            var year = Math.floor(parseInt(elt)/10)*10;
-            Ember.$("#"+year+" ."+(parseInt(elt)-year)).toggleClass("highlighted", true);
+    highlightQuery: function(dates){
+        dates.map(function(date){
+            Ember.$("#" + date).toggleClass("highlighted", true);
         });
     }