@@ -27,18 +27,26 @@ define([
27
27
* @returns {exports.initObservable }
28
28
*/
29
29
initObservable : function ( ) {
30
- var self = this ;
30
+ var self = this ,
31
+ paymentSelector = '[name="payment[method]"][value="' + this . getCode ( ) + '"]:checked' ;
31
32
32
33
self . $selector = $ ( '#' + self . selector ) ;
33
34
this . _super ( )
34
35
. observe ( [ 'active' ] ) ;
35
36
37
+ if ( self . $selector . find ( paymentSelector ) . length !== 0 ) {
38
+ this . active ( true ) ;
39
+ }
40
+
41
+ $ ( '#' + self . fieldset ) . find ( '[name="payment[token_switcher]"]' )
42
+ . on ( 'click' , this . rememberTokenSwitcher . bind ( this ) ) ;
43
+
36
44
// re-init payment method events
37
45
self . $selector . off ( 'changePaymentMethod.' + this . getCode ( ) )
38
46
. on ( 'changePaymentMethod.' + this . getCode ( ) , this . changePaymentMethod . bind ( this ) ) ;
39
47
40
48
if ( this . active ( ) ) {
41
- $ ( '#' + this . fieldset + ' input:radio:first' ) . trigger ( 'click' ) ;
49
+ this . chooseTokenSwitcher ( ) ;
42
50
}
43
51
44
52
return this ;
@@ -56,6 +64,33 @@ define([
56
64
return this ;
57
65
} ,
58
66
67
+ /**
68
+ * Save last chosen token switcher
69
+ * @param {Object } event
70
+ * @returns {exports.rememberTokenSwitcher }
71
+ */
72
+ rememberTokenSwitcher : function ( event ) {
73
+ $ ( '#' + this . selector ) . data ( 'lastTokenSwitcherId' , event . target . id ) ;
74
+
75
+ return this ;
76
+ } ,
77
+
78
+ /**
79
+ * Select token switcher
80
+ * @returns {exports.chooseTokenSwitcher }
81
+ */
82
+ chooseTokenSwitcher : function ( ) {
83
+ var lastTokenSwitcherId = $ ( '#' + this . selector ) . data ( 'lastTokenSwitcherId' ) ;
84
+
85
+ if ( lastTokenSwitcherId ) {
86
+ $ ( '#' + lastTokenSwitcherId ) . trigger ( 'click' ) ;
87
+ } else {
88
+ $ ( '#' + this . fieldset + ' input:radio:first' ) . trigger ( 'click' ) ;
89
+ }
90
+
91
+ return this ;
92
+ } ,
93
+
59
94
/**
60
95
* Triggered when payment changed
61
96
* @param {Boolean } isActive
@@ -66,8 +101,7 @@ define([
66
101
67
102
return ;
68
103
}
69
-
70
- $ ( '#' + this . fieldset + ' input:radio:first' ) . trigger ( 'click' ) ;
104
+ this . chooseTokenSwitcher ( ) ;
71
105
window . order . addExcludedPaymentMethod ( this . getCode ( ) ) ;
72
106
} ,
73
107
0 commit comments