diff -r 7550cb541901 -r 7b266ccf6d3d cms/app-client/app/components/visu-chrono.js --- 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); }); }