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