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 { |