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