1
1
import Ember from 'ember' ;
2
2
3
+ const { observer } = Ember ;
4
+
3
5
export default Ember . Controller . extend ( {
4
6
needs : [ 'search' ] ,
5
7
@@ -8,44 +10,53 @@ export default Ember.Controller.extend({
8
10
showUserOptions : false ,
9
11
search : Ember . computed . oneWay ( 'controllers.search.q' ) ,
10
12
11
- stepFlash : function ( ) {
13
+ stepFlash ( ) {
12
14
this . set ( 'flashError' , this . get ( 'nextFlashError' ) ) ;
13
15
this . set ( 'nextFlashError' , null ) ;
14
16
} ,
15
17
16
- aboutToTransition : function ( ) {
18
+ aboutToTransition ( ) {
17
19
Ember . $ ( document ) . trigger ( 'mousedown' ) ;
18
20
} ,
19
21
20
- resetDropdownOption : function ( controller , option ) {
22
+ // don't use this from other controllers..
23
+ resetDropdownOption ( controller , option ) {
21
24
controller . set ( option , ! controller . get ( option ) ) ;
22
25
if ( controller . get ( option ) ) {
23
- Ember . $ ( document ) . on ( 'mousedown.useroptions' , function ( e ) {
26
+ Ember . $ ( document ) . on ( 'mousedown.useroptions' , ( e ) => {
24
27
if ( Ember . $ ( e . target ) . prop ( 'tagName' ) === 'INPUT' ) {
25
28
return ;
26
29
}
27
- Ember . run . later ( function ( ) {
30
+ Ember . run . later ( ( ) => {
28
31
controller . set ( option , false ) ;
29
32
} , 150 ) ;
30
33
Ember . $ ( document ) . off ( 'mousedown.useroptions' ) ;
31
34
} ) ;
32
35
}
33
36
} ,
34
37
35
- currentPathChanged : function ( ) {
38
+ _scrollToTop ( ) {
36
39
window . scrollTo ( 0 , 0 ) ;
37
- } . observes ( 'currentPath' ) ,
40
+ } ,
41
+
42
+ // TODO: remove observer & DOM mutation in controller..
43
+ currentPathChanged : observer ( 'currentPath' , function ( ) {
44
+ Ember . run . scheduleOnce ( 'afterRender' , this , this . _scrollToTop ) ;
45
+ } ) ,
38
46
39
47
actions : {
40
- search : function ( query ) {
48
+ search ( q ) {
41
49
this . transitionToRoute ( 'search' , {
42
- queryParams : { q : query , page : 1 }
50
+ queryParams : {
51
+ q,
52
+ page : 1
53
+ }
43
54
} ) ;
44
55
} ,
45
56
46
- toggleUserOptions : function ( ) {
57
+ toggleUserOptions ( ) {
47
58
this . resetDropdownOption ( this , 'showUserOptions' ) ;
48
- } ,
49
- } ,
59
+ }
60
+ }
50
61
} ) ;
51
62
0 commit comments