author | Chloe Laisne <chloe.laisne@gmail.com> |
Thu, 23 Jun 2016 17:22:57 +0200 | |
changeset 201 | 9ae2cf79d167 |
parent 200 | a441c40f9c5e |
child 209 | 35cb7200bb0a |
permissions | -rw-r--r-- |
196 | 1 |
import Ember from 'ember'; |
2 |
||
3 |
export default Ember.Component.extend({ |
|
4 |
||
200
a441c40f9c5e
Fix playlist filtering
Chloe Laisne <chloe.laisne@gmail.com>
parents:
196
diff
changeset
|
5 |
classNames: ['playlist-component'], |
a441c40f9c5e
Fix playlist filtering
Chloe Laisne <chloe.laisne@gmail.com>
parents:
196
diff
changeset
|
6 |
|
a441c40f9c5e
Fix playlist filtering
Chloe Laisne <chloe.laisne@gmail.com>
parents:
196
diff
changeset
|
7 |
filter: Ember.inject.service(), |
a441c40f9c5e
Fix playlist filtering
Chloe Laisne <chloe.laisne@gmail.com>
parents:
196
diff
changeset
|
8 |
|
a441c40f9c5e
Fix playlist filtering
Chloe Laisne <chloe.laisne@gmail.com>
parents:
196
diff
changeset
|
9 |
documents: Ember.computed('model', 'filter.location', 'filter.language', 'filter.discourse', 'filter.date', 'filter.theme', function() { |
201
9ae2cf79d167
Quickfix this is undefined
Chloe Laisne <chloe.laisne@gmail.com>
parents:
200
diff
changeset
|
10 |
var self = this; |
200
a441c40f9c5e
Fix playlist filtering
Chloe Laisne <chloe.laisne@gmail.com>
parents:
196
diff
changeset
|
11 |
var documents = this.get('model'); |
a441c40f9c5e
Fix playlist filtering
Chloe Laisne <chloe.laisne@gmail.com>
parents:
196
diff
changeset
|
12 |
if (this.get('filter.date').length > 0) { |
a441c40f9c5e
Fix playlist filtering
Chloe Laisne <chloe.laisne@gmail.com>
parents:
196
diff
changeset
|
13 |
var copy = documents; |
a441c40f9c5e
Fix playlist filtering
Chloe Laisne <chloe.laisne@gmail.com>
parents:
196
diff
changeset
|
14 |
documents.map(function(document) { |
201
9ae2cf79d167
Quickfix this is undefined
Chloe Laisne <chloe.laisne@gmail.com>
parents:
200
diff
changeset
|
15 |
if (self.get('filter.date').indexOf(document.get('created')) === -1){ |
200
a441c40f9c5e
Fix playlist filtering
Chloe Laisne <chloe.laisne@gmail.com>
parents:
196
diff
changeset
|
16 |
copy = copy.without(document); |
a441c40f9c5e
Fix playlist filtering
Chloe Laisne <chloe.laisne@gmail.com>
parents:
196
diff
changeset
|
17 |
} |
a441c40f9c5e
Fix playlist filtering
Chloe Laisne <chloe.laisne@gmail.com>
parents:
196
diff
changeset
|
18 |
}); |
a441c40f9c5e
Fix playlist filtering
Chloe Laisne <chloe.laisne@gmail.com>
parents:
196
diff
changeset
|
19 |
documents = copy; |
a441c40f9c5e
Fix playlist filtering
Chloe Laisne <chloe.laisne@gmail.com>
parents:
196
diff
changeset
|
20 |
} |
a441c40f9c5e
Fix playlist filtering
Chloe Laisne <chloe.laisne@gmail.com>
parents:
196
diff
changeset
|
21 |
if (this.get('filter.discourse')) { |
a441c40f9c5e
Fix playlist filtering
Chloe Laisne <chloe.laisne@gmail.com>
parents:
196
diff
changeset
|
22 |
documents = documents.filterBy('type', this.get('filter.discourse')); |
a441c40f9c5e
Fix playlist filtering
Chloe Laisne <chloe.laisne@gmail.com>
parents:
196
diff
changeset
|
23 |
} |
a441c40f9c5e
Fix playlist filtering
Chloe Laisne <chloe.laisne@gmail.com>
parents:
196
diff
changeset
|
24 |
if (this.get('filter.language')) { |
a441c40f9c5e
Fix playlist filtering
Chloe Laisne <chloe.laisne@gmail.com>
parents:
196
diff
changeset
|
25 |
documents = documents.filterBy('language', this.get('filter.language')); |
a441c40f9c5e
Fix playlist filtering
Chloe Laisne <chloe.laisne@gmail.com>
parents:
196
diff
changeset
|
26 |
} |
a441c40f9c5e
Fix playlist filtering
Chloe Laisne <chloe.laisne@gmail.com>
parents:
196
diff
changeset
|
27 |
if (this.get('filter.location')) { |
a441c40f9c5e
Fix playlist filtering
Chloe Laisne <chloe.laisne@gmail.com>
parents:
196
diff
changeset
|
28 |
documents = documents.filterBy('spatial', this.get('filter.location')); |
a441c40f9c5e
Fix playlist filtering
Chloe Laisne <chloe.laisne@gmail.com>
parents:
196
diff
changeset
|
29 |
} |
a441c40f9c5e
Fix playlist filtering
Chloe Laisne <chloe.laisne@gmail.com>
parents:
196
diff
changeset
|
30 |
if (this.get('filter.theme')) { |
a441c40f9c5e
Fix playlist filtering
Chloe Laisne <chloe.laisne@gmail.com>
parents:
196
diff
changeset
|
31 |
documents = documents.filterBy('thematique', this.get('filter.theme')); |
a441c40f9c5e
Fix playlist filtering
Chloe Laisne <chloe.laisne@gmail.com>
parents:
196
diff
changeset
|
32 |
} |
a441c40f9c5e
Fix playlist filtering
Chloe Laisne <chloe.laisne@gmail.com>
parents:
196
diff
changeset
|
33 |
return documents; |
a441c40f9c5e
Fix playlist filtering
Chloe Laisne <chloe.laisne@gmail.com>
parents:
196
diff
changeset
|
34 |
}), |
a441c40f9c5e
Fix playlist filtering
Chloe Laisne <chloe.laisne@gmail.com>
parents:
196
diff
changeset
|
35 |
|
a441c40f9c5e
Fix playlist filtering
Chloe Laisne <chloe.laisne@gmail.com>
parents:
196
diff
changeset
|
36 |
didRender: function() { |
a441c40f9c5e
Fix playlist filtering
Chloe Laisne <chloe.laisne@gmail.com>
parents:
196
diff
changeset
|
37 |
this._super(...arguments); |
a441c40f9c5e
Fix playlist filtering
Chloe Laisne <chloe.laisne@gmail.com>
parents:
196
diff
changeset
|
38 |
this.$().find('ul').height(Ember.$('.corpus-app-wrapper').outerHeight() - (Ember.$('.filter-component').outerHeight() + this.$().find('h2').outerHeight())); |
a441c40f9c5e
Fix playlist filtering
Chloe Laisne <chloe.laisne@gmail.com>
parents:
196
diff
changeset
|
39 |
} |
196 | 40 |
|
41 |
}); |