PluginProbe ʕ •ᴥ•ʔ
Brevo – Email, SMS, Web Push, Chat, and more. / 3.0.6
Brevo – Email, SMS, Web Push, Chat, and more. v3.0.6
2.9.13 2.9.14 2.9.15 2.9.16 2.9.17 2.9.18 2.9.4 2.9.5 2.9.6 2.9.7 2.9.8 2.9.9 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.0.5 3.0.6 3.0.7 3.0.9 3.1.0 3.1.1 3.1.10 3.1.11 3.1.12 3.1.13 3.1.14 3.1.15 3.1.16 3.1.2 3.1.20 3.1.21 3.1.22 3.1.23 3.1.24 3.1.25 3.1.26 3.1.27 3.1.28 3.1.29 3.1.3 3.1.30 3.1.31 3.1.32 3.1.33 3.1.34 3.1.35 3.1.36 3.1.37 3.1.38 3.1.39 3.1.4 3.1.40 3.1.41 3.1.42 3.1.43 3.1.44 3.1.45 3.1.46 3.1.47 3.1.48 3.1.49 3.1.5 3.1.50 3.1.51 3.1.52 3.1.53 3.1.54 3.1.55 3.1.56 3.1.57 3.1.58 3.1.59 3.1.6 3.1.60 3.1.61 3.1.62 3.1.63 3.1.64 3.1.65 3.1.66 3.1.67 3.1.68 3.1.69 3.1.7 3.1.70 3.1.71 3.1.72 3.1.73 3.1.74 3.1.75 3.1.76 3.1.77 3.1.78 3.1.79 3.1.8 3.1.80 3.1.81 3.1.82 3.1.83 3.1.84 3.1.85 3.1.86 3.1.87 3.1.88 3.1.89 3.1.9 3.1.90 3.1.91 3.1.92 3.1.93 3.1.94 3.1.95 3.1.96 3.1.97 3.1.98 3.2.0 3.2.1 3.2.2 3.2.3 3.2.4 3.2.5 3.2.6 3.2.7 3.2.8 3.2.9 3.3.0 3.3.1 3.3.2 3.3.3 3.3.4 3.3.5 trunk 1.0 1.5 2.0.8 2.9.10 2.9.11 2.9.12
mailin / js / mailin-front.js
mailin / js Last commit date
bootstrap 5 years ago admin.js 5 years ago chosen.jquery.min.js 5 years ago index.php 5 years ago mailin-front.js 5 years ago
mailin-front.js
298 lines
1 var captchaRes = '';
2 var sibVerifyCallback = function(response){
3  captchaRes = response;
4    if(captchaRes)
5    {
6       var validationErr = 0;
7       jQuery.each(jQuery('.sib_signup_form').find('input[required=required]'), function(){
8 if(jQuery(this).val().trim() == '' || (jQuery(this).attr('type') == "checkbox" && jQuery(this).prop("checked") == false))
9       {
10         validationErr++;
11         var form = jQuery(this).closest('form');
12         form.find('.sib_msg_disp').html('<p class="sib-alert-message sib-alert-message-warning ">' + sibErrMsg.requiredField + '</p>').show();
13         return;                
14       }
15       });
16    }
17    if(validationErr == 0) {
18        jQuery('.sib_signup_form').trigger('submit');
19    }
20 };
21
22 jQuery(document).ready(function(){
23 jQuery('.sib_signup_form').find('input[required=required]').on("invalid", function () {
24 if(jQuery(this).val().trim() == '')
25 {
26 var alert_msg = jQuery(this).closest('form').find('input[name="sib_form_alert_notice"]').val();
27 this.setCustomValidity(alert_msg);
28 }
29 else {
30 this.setCustomValidity('');
31 }
32 });
33 // run MA script identify() when submit on any forms with email field
34 jQuery(document).on('submit', 'form', function(e){
35 if(!jQuery(this).hasClass('sib_signup_form')) {
36 var email = jQuery(this).find('input[type=email]').val();
37 var emailPattern = /^([a-zA-Z0-9_.+-])+\@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/;
38 if (typeof sendinblue != 'undefined' && email != null && emailPattern.test(email)) {
39 var postData = jQuery(this).serializeObject();
40 sendinblue.identify(email, postData);
41 }
42 }
43 else
44 {
45 e.preventDefault();
46 var form = jQuery(this).closest('form');
47 // for sms field
48 jQuery.each(form.find('.sib-sms'), function () {
49 var sms = jQuery(this).val();
50 var sms_prefix = jQuery(this).closest('.sib-sms-field').find('input[name="sib_SMS_prefix"]').val();
51 if ( sms == sms_prefix && !jQuery(this).prop('required')) {
52 jQuery(this).val('');
53 }
54 });
55
56 /**
57 * For safari
58 * Not support required attribute
59 */
60
61 var required_fileds = [];
62 var err_index = 0;
63
64 var multi_lists = form.find(jQuery('.sib-multi-lists'));
65 if( multi_lists != undefined && multi_lists.data('require') == 'required' )
66 {
67 if ( multi_lists.find('input:checked').length == 0 )
68 {
69 err_index++;
70 multi_lists.addClass('sib_error');
71 }
72 }
73 if(err_index > 0)
74 {
75 form.find('.sib_msg_disp').html('<p class="sib-alert-message sib-alert-message-warning ">' + sibErrMsg.requiredField + '</p>').show();
76 return;
77 }
78 err_index=0;
79 jQuery.each(form.find('input[type="email"]'), function(){
80 var Email = /^([a-zA-Z0-9_.+-])+@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/i;
81 if (!Email.test(jQuery(this).val()))
82 {
83 err_index++;
84 }
85 });
86 if(err_index > 0)
87 {
88 form.find('.sib_msg_disp').html('<p class="sib-alert-message sib-alert-message-warning ">' + sibErrMsg.invalidMail + '</p>').show();
89 return;
90 }
91
92 /**
93 * Check dateformat
94 */
95 err_index = 0;
96 jQuery.each(form.find('.sib-date') , function(){
97 var date = jQuery(this).val();
98 //pattern for yyyy-mm-dd
99 var validatePattern = /^(\d{4})(-)(\d{1,2})(-)(\d{1,2})$/;
100 if (date !== '' && !validatePattern.test(date))
101 {
102 err_index++;
103 }
104 });
105 if(err_index > 0)
106 {
107 form.find('.sib_msg_disp').html('<p class="sib-alert-message sib-alert-message-warning ">' + sibErrMsg.invalidDateFormat + '</p>').show();
108 return;
109 }
110
111 // Check sms validation
112 err_index = 0;
113 jQuery.each(form.find('.sib-sms'), function () {
114 var sms = jQuery(this).val();
115 if ( is_valid_sms(sms) == false && sms != '' ) {
116 err_index ++;
117 }
118 });
119 if(err_index > 0)
120 {
121 form.find('.sib_msg_disp').html('<p class="sib-alert-message sib-alert-message-warning ">' + sibErrMsg.invalidSMSFormat + '</p>').show();
122 return;
123 }
124 form.find('.sib_loader').show();
125 jQuery('.sib_msg_disp').hide();
126 var postData = form.serializeArray();
127 if( captchaRes != '' )
128 {
129 postData.push({"name": "g-recaptcha-response", "value": captchaRes});
130 }
131
132 if( jQuery('.sib-multi-lists').length )
133 {
134 var interesting_lists = [];
135 jQuery('.sib-interesting-lists').each(function () {
136 postData.push({"name":"interestingLists[]", "value": jQuery(this).val()})
137 });
138 }
139 var formURL = form.attr("action");
140 form.addClass('sib_processing');
141
142 postData.push({ "name": "security", "value": ajax_sib_front_object.ajax_nonce });
143 jQuery.ajax({
144 url: formURL,
145 type: "POST",
146 dataType: "json",
147 data: postData,
148 success: function (data, textStatus, jqXHR) {
149 jQuery('.sib_loader').hide();
150 if( jQuery('.sib-multi-lists').length )
151 {
152 jQuery('.sib-multi-lists').removeClass('sib_error');
153 }
154 if (data.status === 'success' || data.status === 'update') {
155 var cdata = '<p class="sib-alert-message sib-alert-message-success ">' + data.msg.successMsg + '</p>';
156 form.find('.sib_msg_disp').html(cdata).show();
157 } else if (data.status === 'failure') {
158 var cdata = '<p class="sib-alert-message sib-alert-message-error ">' + data.msg.errorMsg + '</p>';
159 form.find('.sib_msg_disp').html(cdata).show();
160 } else if (data.status === 'already_exist') {
161 var cdata = '<p class="sib-alert-message sib-alert-message-warning ">' + data.msg.existMsg + '</p>';
162 form.find('.sib_msg_disp').html(cdata).show();
163 } else if (data.status === 'invalid') {
164 var cdata = '<p class="sib-alert-message sib-alert-message-error ">' + data.msg.invalidMsg + '</p>';
165 form.find('.sib_msg_disp').html(cdata).show();
166 } else if (data.status === 'gcaptchaEmpty') {
167 var cdata = '<p class="sib-alert-message sib-alert-message-error ">' + data.msg + '</p>';
168 form.find('.sib_msg_disp').html(cdata).show();
169 } else if (data.status === 'gcaptchaFail') {
170 var cdata = '<p class="sib-alert-message sib-alert-message-error ">' + data.msg + '</p>';
171 form.find('.sib_msg_disp').html(cdata).show();
172 }
173 form[0].reset();
174 if (data.redirect && (data.status === 'success' || data.status === 'update')) {
175 window.location.href = data.redirect;
176 }
177 var previous_code = form.find('.sib-cflags').data('dial-code');
178 if ( previous_code )
179 {
180 form.find('.sib-sms').val('+' + previous_code);
181 form.find('input[name="sib_SMS_prefix"]').val('+' + previous_code);
182 }
183
184 // run MA script identify() when subscribe on SIB forms
185 if (typeof sendinblue != 'undefined') {
186 var email = form.find('input[name=email]').val();
187 var postData = form.serializeObject();
188 if (data.status === 'success' || data.status === 'update' || data.status === 'already_exist') {
189 sendinblue.identify(email, postData);
190 }
191 }
192 jQuery(".sib-alert-message").delay(2000).hide('slow');
193 form.removeClass('sib_processing');
194 if (typeof grecaptcha != 'undefined')
195 {
196 grecaptcha.reset(gCaptchaSibWidget);
197 }
198 },
199 error: function (jqXHR, textStatus, errorThrown) {
200 form.find('.sib_msg_disp').html(jqXHR).show();
201 if (typeof grecaptcha != 'undefined')
202 {
203 grecaptcha.reset(gCaptchaSibWidget);
204 }
205 }
206 });
207 }
208 });
209 jQuery('.sib-country-block').on('click', function () {
210 jQuery('.sib-country-list').toggle();
211 });
212 if (jQuery('.sib-country-list').length > 0)
213 {
214 jQuery('.sib-country-list').ready( function () {
215 var data = {
216 action : 'sib_get_country_prefix',
217 security: ajax_sib_front_object.ajax_nonce,
218 };
219 jQuery.post( ajax_sib_front_object.ajax_url, data, function (respond) {
220 jQuery('.sib-country-list').html(respond);
221 });
222 });
223 }
224
225 jQuery('body').on('click', function(e){
226 if ( jQuery('.sib-sms-field .sib-country-list').length > 0 && !jQuery('.sib-sms-field .sib-country-list').is(e.target) && jQuery('.sib-sms-field .sib-country-list').has(e.target).length === 0 && jQuery('.sib-sms-field .sib-country-block').has(e.target).length === 0 ) {
227 jQuery('.sib-sms-field .sib-country-list').hide();
228 }
229 });
230
231 jQuery('.sib-country-list').on( 'click', 'li' , function () {
232 var country_code = jQuery(this).data('country-code').toLowerCase();
233 var dial_code = jQuery(this).data('dial-code');
234 jQuery(this).closest('.sib-sms-field').find('.sib-sms').val('+' + dial_code );
235 jQuery(this).closest('.sib-sms-field').find('input[name="sib_SMS_prefix"]').val('+' + dial_code );
236 jQuery(this).closest('.sib-sms-field').find('.sib-cflags').css('background-image', 'url(' + ajax_sib_front_object.flag_url + country_code + '.png)');
237 jQuery(this).closest('.sib-sms-field').find('.sib-cflags').data('dial-code', dial_code);
238 jQuery(this).closest('.sib-country-list').hide();
239 });
240 jQuery(".sib-sms").on('keypress', function (event){
241 validateInteger(event, 'sms');
242 });
243
244 // allow to input 0-9 and - only for date field
245 jQuery(".sib-date").on('keypress', function(event) {
246 validateInteger(event, 'date');
247 });
248 function is_valid_sms( sms ) {
249 sms = sms.replace(/\b(0(?!\b))+/g, "");
250
251 var tempSms = sms.replace(/( |\(|\)|\.|\-)/g, '');
252
253 if (tempSms.length > 19 || tempSms.length < 6 || tempSms.charAt(0) != '+'){
254 return false;
255 }
256 return true;
257 }
258 function validateInteger(evt,type) {
259 var theEvent = evt || window.event;
260 var key = theEvent.charCode || theEvent.which;
261
262 key = String.fromCharCode( key );
263 // 0-9, +/-, space, brackets
264 var regex = /[ +0-9()-]/;
265 var smsLength = 0;
266 if( type == 'date' ) {
267 regex = /[ 0-9-/]/;
268 }
269 if( !regex.test(key)) {
270 theEvent.returnValue = false;
271 key = theEvent.keyCode;
272 // ignore input for del,tab, back, left, right, home amd end
273 if(theEvent.preventDefault && key != 9 && key != 8 ) theEvent.preventDefault();
274 }
275 }
276
277
278 });
279 // get serialized data form subscribe form
280 jQuery.fn.serializeObject = function()
281 {
282 var o = {};
283 var a = this.serializeArray();
284 jQuery.each(a, function() {
285 if(this.name == 'sib_form_action' || this.name == 'sib_form_id' || this.name == 'email')
286 return true; // continue
287 if (o[this.name] !== undefined) {
288 if (!o[this.name].push) {
289 o[this.name] = [o[this.name]];
290 }
291 o[this.name].push(this.value || '');
292 } else {
293 o[this.name] = this.value || '';
294 }
295 });
296 return o;
297 };
298