PluginProbe ʕ •ᴥ•ʔ
Brevo – Email, SMS, Web Push, Chat, and more. / 3.1.73
Brevo – Email, SMS, Web Push, Chat, and more. v3.1.73
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 4 years ago admin.js 2 years ago chosen.jquery.min.js 9 years ago index.php 11 years ago mailin-front.js 2 years ago
mailin-front.js
301 lines
1 var captchaRes = '';
2 var sibErrMsg;
3 var gCaptchaSibWidget;
4 var ajax_sib_front_object;
5 var sibVerifyCallback = function (response) {
6 captchaRes = response;
7 var formIdInvisible = sessionStorage.getItem("formIdRecapcha");
8 if (captchaRes) {
9 var validationErr = 0;
10 jQuery.each(jQuery(formIdInvisible).find('input[required=required]'), function () {
11 if (jQuery(this).val().trim() == '' || (jQuery(this).attr('type') == "checkbox" && jQuery(this).prop("checked") == false)) {
12 validationErr++;
13 var form = jQuery(this).closest('form');
14 var requiredField = jQuery(this).closest('form').find('input[name="sib_form_alert_notice"]').val();
15 if (requiredField !== undefined) {
16 sibErrMsg.requiredField = requiredField;
17 }
18 form.find('.sib_msg_disp').html('<p class="sib-alert-message sib-alert-message-warning ">' + sibErrMsg.requiredField + '</p>').show();
19 return;
20 }
21 });
22 }
23 if (validationErr == 0) {
24 jQuery(formIdInvisible).trigger('submit');
25 }
26 };
27
28 jQuery(document).ready(function(){
29 jQuery('.sib_signup_form').find('input[required=required]').on("invalid", function () {
30 if(jQuery(this).val().trim() == '')
31 {
32 var alert_msg = jQuery(this).closest('form').find('input[name="sib_form_alert_notice"]').val();
33 this.setCustomValidity(alert_msg);
34 }
35 else {
36 this.setCustomValidity('');
37 }
38 });
39 // run MA script identify() when submit on any forms with email field
40 jQuery(document).on('submit', 'form', function(e){
41 var invalidEmail = jQuery(this).closest('form').find('input[name="sib_form_invalid_email_notice"]').val();
42 var requiredField = jQuery(this).closest('form').find('input[name="sib_form_alert_notice"]').val();
43 if (invalidEmail !== undefined) {
44 sibErrMsg.invalidMail = invalidEmail;
45 }
46 if (requiredField !== undefined) {
47 sibErrMsg.requiredField = requiredField;
48 }
49
50 if(!jQuery(this).hasClass('sib_signup_form')) {
51 var email = jQuery(this).find('input[type=email]').val();
52 var emailPattern = /^([a-zA-Z0-9_.+-])+\@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/;
53 if (typeof sendinblue != 'undefined' && email != null && emailPattern.test(email)) {
54 var postData = jQuery('input[type!=password]',this).serializeObject();
55 sendinblue.identify(email, postData);
56 }
57 }
58 else
59 {
60 e.preventDefault();
61 var form = jQuery(this).closest('form');
62 // for sms field
63 jQuery.each(form.find('.sib-sms'), function () {
64 var sms = jQuery(this).val();
65 var sms_prefix = jQuery(this).closest('.sib-sms-field').find('input[name="sib_SMS_prefix"]').val();
66 if ( sms == sms_prefix && !jQuery(this).prop('required')) {
67 jQuery(this).val('');
68 }
69 });
70
71 /**
72 * For safari
73 * Not support required attribute
74 */
75
76 var required_fileds = [];
77 var err_index = 0;
78
79 var multi_lists = form.find(jQuery('.sib-multi-lists'));
80 if( multi_lists != undefined && multi_lists.data('require') == 'required' )
81 {
82 if ( multi_lists.find('input:checked').length == 0 )
83 {
84 err_index++;
85 multi_lists.addClass('sib_error');
86 }
87 }
88 if(err_index > 0)
89 {
90 form.find('.sib_msg_disp').html('<p class="sib-alert-message sib-alert-message-warning ">' + sibErrMsg.requiredField + '</p>').show();
91 return;
92 }
93 err_index=0;
94 jQuery.each(form.find('input[type="email"]'), function(){
95 var Email = /^([a-zA-Z0-9_.+-])+@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/i;
96 if (!Email.test(jQuery(this).val()))
97 {
98 err_index++;
99 }
100 });
101 if(err_index > 0)
102 {
103 form.find('.sib_msg_disp').html('<p class="sib-alert-message sib-alert-message-warning ">' + sibErrMsg.invalidMail + '</p>').show();
104 return;
105 }
106
107 // Check sms validation
108 err_index = 0;
109 jQuery.each(form.find('.sib-sms'), function () {
110 var sms = jQuery(this).val();
111 if ( is_valid_sms(sms) == false && sms != '' ) {
112 err_index ++;
113 }
114 });
115 if(err_index > 0)
116 {
117 form.find('.sib_msg_disp').html('<p class="sib-alert-message sib-alert-message-warning ">' + sibErrMsg.invalidSMSFormat + '</p>').show();
118 return;
119 }
120 form.find('.sib_loader').show();
121 jQuery('.sib_msg_disp').hide();
122 var postData = form.serializeArray();
123 if( captchaRes != '' )
124 {
125 postData.push({"name": "g-recaptcha-response", "value": captchaRes});
126 }
127 captchaRes = '';
128 if( jQuery('.sib-multi-lists').length )
129 {
130 var interesting_lists = [];
131 jQuery('.sib-interesting-lists').each(function () {
132 postData.push({"name":"interestingLists[]", "value": jQuery(this).val()})
133 });
134 }
135 var formURL = form.attr("action");
136 form.addClass('sib_processing');
137
138 postData.push({ "name": "security", "value": ajax_sib_front_object.ajax_nonce });
139 jQuery.ajax({
140 url: formURL,
141 type: "POST",
142 dataType: "json",
143 data: postData,
144 success: function (data, textStatus, jqXHR) {
145 jQuery('.sib_loader').hide();
146 if( jQuery('.sib-multi-lists').length )
147 {
148 jQuery('.sib-multi-lists').removeClass('sib_error');
149 }
150 if (data.status === 'success' || data.status === 'update') {
151 var cdata = '<p class="sib-alert-message sib-alert-message-success ">' + data.msg.successMsg + '</p>';
152 form.find('.sib_msg_disp').html(cdata).show();
153 } else if (data.status === 'failure') {
154 var cdata = '<p class="sib-alert-message sib-alert-message-error ">' + data.msg.errorMsg + '</p>';
155 form.find('.sib_msg_disp').html(cdata).show();
156 } else if (data.status === 'already_exist') {
157 var cdata = '<p class="sib-alert-message sib-alert-message-warning ">' + data.msg.existMsg + '</p>';
158 form.find('.sib_msg_disp').html(cdata).show();
159 } else if (data.status === 'invalid') {
160 var cdata = '<p class="sib-alert-message sib-alert-message-error ">' + data.msg.invalidMsg + '</p>';
161 form.find('.sib_msg_disp').html(cdata).show();
162 } else if (data.status === 'gcaptchaEmpty') {
163 var cdata = '<p class="sib-alert-message sib-alert-message-error ">' + data.msg + '</p>';
164 form.find('.sib_msg_disp').html(cdata).show();
165 } else if (data.status === 'gcaptchaFail') {
166 var cdata = '<p class="sib-alert-message sib-alert-message-error ">' + data.msg + '</p>';
167 form.find('.sib_msg_disp').html(cdata).show();
168 }
169 form[0].reset();
170 if (data.redirect && (data.status === 'success' || data.status === 'update')) {
171 window.location.href = data.redirect;
172 }
173 var previous_code = form.find('.sib-cflags').data('dial-code');
174 if ( previous_code )
175 {
176 form.find('.sib-sms').val('+' + previous_code);
177 form.find('input[name="sib_SMS_prefix"]').val('+' + previous_code);
178 }
179
180 // run MA script identify() when subscribe on SIB forms
181 if (typeof sendinblue != 'undefined') {
182 var email = form.find('input[name=email]').val();
183 var postData = form.serializeObject();
184 if (data.status === 'success' || data.status === 'update' || data.status === 'already_exist') {
185 sendinblue.identify(email, postData);
186 }
187 }
188 jQuery(".sib-alert-message").delay(2000).hide('slow');
189 form.removeClass('sib_processing');
190 if (typeof grecaptcha != 'undefined')
191 {
192 grecaptcha.reset(gCaptchaSibWidget);
193 }
194 },
195 error: function (jqXHR, textStatus, errorThrown) {
196 form.find('.sib_msg_disp').html(jqXHR).show();
197 if (typeof grecaptcha != 'undefined')
198 {
199 grecaptcha.reset(gCaptchaSibWidget);
200 }
201 }
202 });
203 }
204 });
205 jQuery('.sib-country-block').on('click', function () {
206 jQuery('.sib-country-list').toggle();
207 });
208 if (jQuery('.sib-country-list').length > 0)
209 {
210 jQuery('.sib-country-list').ready( function () {
211 var data = {
212 action : 'sib_get_country_prefix',
213 security: ajax_sib_front_object.ajax_nonce,
214 };
215 jQuery.post( ajax_sib_front_object.ajax_url, data, function (respond) {
216 jQuery('.sib-country-list').html(respond);
217 });
218 });
219 }
220
221 jQuery('body').on('click', function(e){
222 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 ) {
223 jQuery('.sib-sms-field .sib-country-list').hide();
224 }
225 });
226
227 jQuery('.sib-country-list').on( 'click', 'li' , function () {
228 var country_code = jQuery(this).data('country-code').toLowerCase();
229 var dial_code = jQuery(this).data('dial-code');
230 jQuery(this).closest('.sib-sms-field').find('.sib-sms').val('+' + dial_code );
231 jQuery(this).closest('.sib-sms-field').find('input[name="sib_SMS_prefix"]').val('+' + dial_code );
232 jQuery(this).closest('.sib-sms-field').find('.sib-cflags').css('background-image', 'url(' + ajax_sib_front_object.flag_url + country_code + '.png)');
233 jQuery(this).closest('.sib-sms-field').find('.sib-cflags').data('dial-code', dial_code);
234 jQuery(this).closest('.sib-country-list').hide();
235 });
236 jQuery(".sib-sms").on('keypress', function (event){
237 validateInteger(event, 'sms');
238 });
239
240 // allow to input 0-9 and - only for date field
241 jQuery(".sib-date").on('keypress', function(event) {
242 validateInteger(event, 'date');
243 });
244 function is_valid_sms( sms ) {
245 sms = sms.replace(/\b(0(?!\b))+/g, "");
246
247 var tempSms = sms.replace(/( |\(|\)|\.|\-)/g, '');
248
249 if (tempSms.length > 19 || tempSms.length < 6 || tempSms.charAt(0) != '+'){
250 return false;
251 }
252 return true;
253 }
254 function validateInteger(evt,type) {
255 var theEvent = evt || window.event;
256 var key = theEvent.charCode || theEvent.which;
257
258 key = String.fromCharCode( key );
259 // 0-9, +/-, space, brackets
260 var regex = /[ +0-9()-]/;
261 var smsLength = 0;
262 if( type == 'date' ) {
263 regex = /[ 0-9-/]/;
264 }
265 if( !regex.test(key)) {
266 theEvent.returnValue = false;
267 key = theEvent.keyCode;
268 // ignore input for del,tab, back, left, right, home amd end
269 if(theEvent.preventDefault && key != 9 && key != 8 ) theEvent.preventDefault();
270 }
271 }
272
273
274 });
275 // get serialized data form subscribe form
276 jQuery.fn.serializeObject = function()
277 {
278 var o = {};
279 var a = this.serializeArray();
280 jQuery.each(a, function() {
281 if(this.name == 'sib_form_action' || this.name == 'sib_form_id' || this.name == 'email')
282 return true; // continue
283 if (o[this.name] !== undefined) {
284 if (!o[this.name].push) {
285 o[this.name] = [o[this.name]];
286 }
287 o[this.name].push(this.value || '');
288 } else {
289 o[this.name] = this.value || '';
290 }
291 });
292 return o;
293 };
294 // get form id
295 jQuery(document).ready(function () {
296 jQuery(".sib-default-btn").on("click", function () {
297 var row = jQuery(this).closest(".sib_signup_form");
298 sessionStorage.setItem("formIdRecapcha", "#" + jQuery(row).attr('id'));
299 })
300 })
301