1 import Ember from 'ember'; |
1 import Ember from 'ember'; |
2 |
2 |
3 export default Ember.Route.extend({ |
3 export default Ember.Route.extend({ |
4 |
4 |
5 page: 0, |
5 index: 0, |
6 limit: 40, |
6 limit: 40, |
7 sort: 'alphabetical', |
7 sort: 'alphabetical', |
8 |
8 |
9 model: function() { |
9 themes: [], |
10 return this.store.query('theme', { |
10 |
11 'limit': this.get('limit'), |
11 model: Ember.observer('index', function() { |
12 'page': this.get('page'), |
12 var self = this; |
13 'sort': this.get('sort') |
13 var promise = this.store.query('theme', { |
|
14 'limit': this.get('limit'), |
|
15 'index': this.get('index'), |
|
16 'sort': this.get('sort') |
14 }); |
17 }); |
|
18 promise.then(function(value) { |
|
19 if (self.get('themes').length) { |
|
20 value = self.get('themes').pushObjects(value.get('content')); |
|
21 } |
|
22 self.set('themes', value); |
|
23 }) |
|
24 return promise; |
|
25 }), |
|
26 |
|
27 setupController: function(controller, model) { |
|
28 this._super(...arguments); |
|
29 // Add ArrayProxy to template context. |
|
30 controller.set('themes', this.get('themes')); |
|
31 }, |
|
32 |
|
33 actions: { |
|
34 |
|
35 setIndexQueryparams: function() { |
|
36 this.set('index', this.get('index') + 1); |
|
37 }, |
|
38 |
|
39 setSortQueryparams: function(sort) { |
|
40 this.set('sort', sort); |
|
41 this.get('themes').replaceContent(0, this.get('themes').get('content').length, null); |
|
42 // Force property reset to trigger request. |
|
43 this.propertyWillChange('index'); |
|
44 this.set('index', 0); |
|
45 this.propertyDidChange('index'); |
|
46 } |
|
47 |
15 } |
48 } |
16 |
49 |
17 }); |
50 }); |