@@ -17,51 +17,132 @@ const componentDef = {
17
17
( self . componentConfig [ "confirm" ] == undefined ) || confirm ( self . componentConfig [ "confirm_text" ] )
18
18
)
19
19
{
20
- axios ( {
20
+ if ( self . componentConfig [ "emit" ] != undefined ) {
21
+ matestackEventHub . $emit ( self . componentConfig [ "emit" ] ) ;
22
+ }
23
+ if ( self . componentConfig [ "min_defer" ] != undefined ) {
24
+ setTimeout ( function ( ) {
25
+ self . sendRequest ( )
26
+ } , parseInt ( self . componentConfig [ "min_defer" ] ) ) ;
27
+ } else {
28
+ this . sendRequest ( )
29
+ }
30
+ }
31
+ } ,
32
+ sendRequest : function ( ) {
33
+ const self = this
34
+ axios ( {
21
35
method : self . componentConfig [ "method" ] ,
22
36
url : self . componentConfig [ "action_path" ] ,
23
37
data : self . componentConfig [ "data" ] ,
24
38
headers : {
25
39
'X-CSRF-Token' : document . getElementsByName ( "csrf-token" ) [ 0 ] . getAttribute ( 'content' )
26
40
}
27
- } )
28
- . then ( function ( response ) {
29
- if ( self . componentConfig [ "success" ] != undefined && self . componentConfig [ "success" ] [ "emit" ] != undefined ) {
30
- matestackEventHub . $emit ( self . componentConfig [ "success" ] [ "emit" ] , response . data ) ;
31
- }
32
- if ( self . componentConfig [ "success" ] != undefined
33
- && self . componentConfig [ "success" ] [ "transition" ] != undefined
34
- && (
35
- self . componentConfig [ "success" ] [ "transition" ] [ "follow_response" ] == undefined
36
- ||
37
- self . componentConfig [ "success" ] [ "transition" ] [ "follow_response" ] === false
38
- )
39
- && self . $store != undefined
40
- ) {
41
- let path = self . componentConfig [ "success" ] [ "transition" ] [ "path" ]
42
- self . $store . dispatch ( 'navigateTo' , { url : path , backwards : false } )
43
- return ;
44
- }
45
- if ( self . componentConfig [ "success" ] != undefined
46
- && self . componentConfig [ "success" ] [ "transition" ] != undefined
47
- && self . componentConfig [ "success" ] [ "transition" ] [ "follow_response" ] === true
48
- && self . $store != undefined
49
- ) {
50
- let path = response . data [ "transition_to" ] || response . request . responseURL ;
51
- self . $store . dispatch ( 'navigateTo' , { url : path , backwards : false } ) ;
52
- return ;
53
- }
54
- } )
55
- . catch ( function ( error ) {
56
- if ( self . componentConfig [ "failure" ] != undefined && self . componentConfig [ "failure" ] [ "emit" ] != undefined ) {
57
- matestackEventHub . $emit ( self . componentConfig [ "failure" ] [ "emit" ] , error . response . data ) ;
58
- }
59
- if ( self . componentConfig [ "failure" ] != undefined && self . componentConfig [ "failure" ] [ "transition" ] != undefined && self . $store != undefined ) {
60
- let path = self . componentConfig [ "failure" ] [ "transition" ] [ "path" ]
61
- self . $store . dispatch ( 'navigateTo' , { url : path , backwards : false } )
62
- }
63
- } )
64
- }
41
+ }
42
+ )
43
+ . then ( function ( response ) {
44
+ if ( self . componentConfig [ "success" ] != undefined && self . componentConfig [ "success" ] [ "emit" ] != undefined ) {
45
+ matestackEventHub . $emit ( self . componentConfig [ "success" ] [ "emit" ] , response . data ) ;
46
+ }
47
+
48
+ // transition handling
49
+ if ( self . componentConfig [ "success" ] != undefined
50
+ && self . componentConfig [ "success" ] [ "transition" ] != undefined
51
+ && (
52
+ self . componentConfig [ "success" ] [ "transition" ] [ "follow_response" ] == undefined
53
+ ||
54
+ self . componentConfig [ "success" ] [ "transition" ] [ "follow_response" ] === false
55
+ )
56
+ && self . $store != undefined
57
+ ) {
58
+ let path = self . componentConfig [ "success" ] [ "transition" ] [ "path" ]
59
+ self . $store . dispatch ( 'navigateTo' , { url : path , backwards : false } )
60
+ return ;
61
+ }
62
+ if ( self . componentConfig [ "success" ] != undefined
63
+ && self . componentConfig [ "success" ] [ "transition" ] != undefined
64
+ && self . componentConfig [ "success" ] [ "transition" ] [ "follow_response" ] === true
65
+ && self . $store != undefined
66
+ ) {
67
+ let path = response . data [ "transition_to" ] || response . request . responseURL
68
+ self . $store . dispatch ( 'navigateTo' , { url : path , backwards : false } )
69
+ return ;
70
+ }
71
+ // redirect handling
72
+ if ( self . componentConfig [ "success" ] != undefined
73
+ && self . componentConfig [ "success" ] [ "redirect" ] != undefined
74
+ && (
75
+ self . componentConfig [ "success" ] [ "redirect" ] [ "follow_response" ] == undefined
76
+ ||
77
+ self . componentConfig [ "success" ] [ "redirect" ] [ "follow_response" ] === false
78
+ )
79
+ && self . $store != undefined
80
+ ) {
81
+ let path = self . componentConfig [ "success" ] [ "redirect" ] [ "path" ]
82
+ window . location . href = path
83
+ return ;
84
+ }
85
+ if ( self . componentConfig [ "success" ] != undefined
86
+ && self . componentConfig [ "success" ] [ "redirect" ] != undefined
87
+ && self . componentConfig [ "success" ] [ "redirect" ] [ "follow_response" ] === true
88
+ && self . $store != undefined
89
+ ) {
90
+ let path = response . data [ "redirect_to" ] || response . request . responseURL
91
+ window . location . href = path
92
+ return ;
93
+ }
94
+ } )
95
+ . catch ( function ( error ) {
96
+ if ( self . componentConfig [ "failure" ] != undefined && self . componentConfig [ "failure" ] [ "emit" ] != undefined ) {
97
+ matestackEventHub . $emit ( self . componentConfig [ "failure" ] [ "emit" ] , error . response . data ) ;
98
+ }
99
+ // transition handling
100
+ if ( self . componentConfig [ "failure" ] != undefined
101
+ && self . componentConfig [ "failure" ] [ "transition" ] != undefined
102
+ && (
103
+ self . componentConfig [ "failure" ] [ "transition" ] [ "follow_response" ] == undefined
104
+ ||
105
+ self . componentConfig [ "failure" ] [ "transition" ] [ "follow_response" ] === false
106
+ )
107
+ && self . $store != undefined
108
+ ) {
109
+ let path = self . componentConfig [ "failure" ] [ "transition" ] [ "path" ]
110
+ self . $store . dispatch ( 'navigateTo' , { url : path , backwards : false } )
111
+ return ;
112
+ }
113
+ if ( self . componentConfig [ "failure" ] != undefined
114
+ && self . componentConfig [ "failure" ] [ "transition" ] != undefined
115
+ && self . componentConfig [ "failure" ] [ "transition" ] [ "follow_response" ] === true
116
+ && self . $store != undefined
117
+ ) {
118
+ let path = error . response . data [ "transition_to" ] || response . request . responseURL
119
+ self . $store . dispatch ( 'navigateTo' , { url : path , backwards : false } )
120
+ return ;
121
+ }
122
+ // redirect handling
123
+ if ( self . componentConfig [ "failure" ] != undefined
124
+ && self . componentConfig [ "failure" ] [ "redirect" ] != undefined
125
+ && (
126
+ self . componentConfig [ "failure" ] [ "redirect" ] [ "follow_response" ] == undefined
127
+ ||
128
+ self . componentConfig [ "failure" ] [ "redirect" ] [ "follow_response" ] === false
129
+ )
130
+ && self . $store != undefined
131
+ ) {
132
+ let path = self . componentConfig [ "failure" ] [ "redirect" ] [ "path" ]
133
+ window . location . href = path
134
+ return ;
135
+ }
136
+ if ( self . componentConfig [ "failure" ] != undefined
137
+ && self . componentConfig [ "failure" ] [ "redirect" ] != undefined
138
+ && self . componentConfig [ "failure" ] [ "redirect" ] [ "follow_response" ] === true
139
+ && self . $store != undefined
140
+ ) {
141
+ let path = error . response . data [ "redirect_to" ] || response . request . responseURL
142
+ window . location . href = path
143
+ return ;
144
+ }
145
+ } )
65
146
}
66
147
}
67
148
}
0 commit comments