6
6
trackingJS . prototype . eventBundles . form = function ( ) {
7
7
this . bundleName = 'form' ;
8
8
9
+ var tracking ,
10
+ settings = { } ;
11
+
12
+
9
13
/**
10
14
* @method init
11
15
*
12
16
* @param tracking
13
17
*/
14
- this . init = function init ( t ) {
15
- tracking = t ;
18
+ this . init = function init ( origTracking , origSettings ) {
19
+ tracking = origTracking ;
20
+ settings = origSettings ;
21
+ setDefaultSettings ( ) ;
16
22
bindEvents ( ) ;
17
23
} ;
18
24
@@ -23,6 +29,14 @@ trackingJS.prototype.eventBundles.form = function() {
23
29
$ ( document ) . delegate ( 'form' , 'submit' , formSendHandler ) ;
24
30
} ;
25
31
32
+ var setDefaultSettings = function ( ) {
33
+ if ( ! settings . formBundle ) {
34
+ settings . formBundle = {
35
+ formEnableDataName : 'form-auto-track'
36
+ }
37
+ }
38
+ } ;
39
+
26
40
/**
27
41
* @method formSendHandler
28
42
*
@@ -33,8 +47,10 @@ trackingJS.prototype.eventBundles.form = function() {
33
47
var $form = $ ( event . currentTarget ) ,
34
48
data = getFormData ( $form ) ;
35
49
36
- trackNewsletterHandler ( $form ) ;
37
- tracking . event ( data . name , data . name + ' - Send success' , 'Form: ' + data . name + ' send success' ) ;
50
+ if ( typeof data . enabled != 'undefined' ) {
51
+ trackNewsletterHandler ( $form ) ;
52
+ tracking . event ( data . name , data . name + ' - Send success' , 'Form: ' + data . name + ' send success' ) ;
53
+ }
38
54
} ;
39
55
40
56
/**
@@ -58,6 +74,19 @@ trackingJS.prototype.eventBundles.form = function() {
58
74
}
59
75
} . bind ( this ) ;
60
76
77
+ /**
78
+ * @method send
79
+ *
80
+ * @param $form
81
+ */
82
+ this . send = function ( $form , callback ) {
83
+ var data = getFormData ( $form ) ,
84
+ done = callback || function ( ) { } ;
85
+
86
+ trackNewsletterHandler ( $form ) ;
87
+ tracking . event ( data . name , data . name + ' - Send success' , 'Form: ' + data . name + ' send success' , null , done ) ;
88
+ } ;
89
+
61
90
/**
62
91
* @method sendFailed
63
92
*
@@ -116,6 +145,7 @@ trackingJS.prototype.eventBundles.form = function() {
116
145
*/
117
146
var getFormData = function ( $form ) {
118
147
var data = {
148
+ enabled : $form . data ( settings . formBundle . formEnableDataName ) ,
119
149
name : $form . data ( 'form-name' )
120
150
} ;
121
151
0 commit comments