cms/app-client/app/components/visu-chrono.js
changeset 202 0446e07981db
parent 197 7b266ccf6d3d
child 233 0ff47a9c5da2
equal deleted inserted replaced
201:9ae2cf79d167 202:0446e07981db
     1 import Ember from 'ember';
     1 import Ember from 'ember';
     2 
     2 
     3 export default Ember.Component.extend({
     3 export default Ember.Component.extend({
     4 
     4 
     5     filter: Ember.inject.service(),
     5     filter: Ember.inject.service(),
       
     6 
       
     7     dateObserver: Ember.observer('filter.date', function() {
       
     8         var self = this;
       
     9         this.$('li').removeClass('highlighted');
       
    10         this.get('filter.date').forEach(function(date) {
       
    11             self.$('li#' + date).addClass('highlighted');
       
    12         });
       
    13     }),
     6 
    14 
     7     elementId: "chrono-table",
    15     elementId: "chrono-table",
     8 
    16 
     9     didInsertElement: function(){
    17     didInsertElement: function(){
    10         var self = this;
    18         var self = this;
    12         if (this.get('filter').get('date') !== null){
    20         if (this.get('filter').get('date') !== null){
    13             this.highlightQuery(this.get('filter').get('date'));
    21             this.highlightQuery(this.get('filter').get('date'));
    14         }
    22         }
    15 
    23 
    16         var isMouseDown = false,
    24         var isMouseDown = false,
    17         isHighlighted;
    25             isHighlighted;
    18 
    26 
    19         Ember.$("#chrono-table li").mousedown(function () {
    27         Ember.$("#chrono-table li").mousedown(function () {
    20             isMouseDown = true;
    28             isMouseDown = true;
    21             Ember.$(this).toggleClass("highlighted");
       
    22             isHighlighted = Ember.$(this).hasClass("highlighted");
       
    23             var dates = self.get('filter').get('date').toArray();
    29             var dates = self.get('filter').get('date').toArray();
    24             var index = dates.indexOf(parseInt(Ember.$(this).attr('id')));
    30             var index = dates.indexOf(parseInt(Ember.$(this).attr('id')));
    25             if(index === -1) {
    31             if(index === -1) {
    26                 dates.push(parseInt(Ember.$(this).attr('id')));
    32                 dates.push(parseInt(Ember.$(this).attr('id')));
       
    33                 isHighlighted = true;
    27             } else {
    34             } else {
    28                 dates.splice(index, 1);
    35                 dates.splice(index, 1);
       
    36                 isHighlighted = false;
    29             }
    37             }
    30             self.get('filter').set('date', dates);
    38             self.get('filter').set('date', dates);
    31             return false; // prevent text selection
    39             return false; // prevent text selection
    32         }).mouseover(function () {
    40         }).mouseover(function () {
    33             if (isMouseDown) {
    41             if (isMouseDown) {
    34                 if(Ember.$(this).hasClass("highlighted") !== isHighlighted) {
    42                 if(Ember.$(this).hasClass("highlighted") !== isHighlighted) {
    35                     Ember.$(this).toggleClass("highlighted", isHighlighted);
       
    36                     var dates = self.get('filter').get('date').toArray();
    43                     var dates = self.get('filter').get('date').toArray();
    37                     var index = dates.indexOf(parseInt(Ember.$(this).attr('id')));
    44                     var index = dates.indexOf(parseInt(Ember.$(this).attr('id')));
    38                     if(index === -1) {
    45                     if(index === -1) {
    39                         dates.push(parseInt(Ember.$(this).attr('id')));
    46                         dates.push(parseInt(Ember.$(this).attr('id')));
    40                     } else {
    47                     } else {