PluginProbe ʕ •ᴥ•ʔ
Brevo – Email, SMS, Web Push, Chat, and more. / 3.1.87
Brevo – Email, SMS, Web Push, Chat, and more. v3.1.87
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 / admin.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
admin.js
1381 lines
1 var $jQ = jQuery.noConflict();
2 var ajax_sib_object;
3 var CountryList = {
4 213: "DZ",
5 376: "AD",
6 54: "AR",
7 971: "AE",
8 43: "AT",
9 61: "AU",
10 387: "BA",
11 880: "BD",
12 32: "BE",
13 359: "BG",
14 973: "BH",
15 590: "BL",
16 55: "BR",
17 1: "CA",
18 41: "CH",
19 56: "CL",
20 86: "CN",
21 57: "CO",
22 420: "CZ",
23 49: "DE",
24 45: "DK",
25 593: "EC",
26 372: "EE",
27 20: "EG",
28 34: "ES",
29 358: "FI",
30 33: "FR",
31 44: "GB",
32 995: "GE",
33 30: "GR",
34 852: "HK",
35 385: "HR",
36 509: "HT",
37 36: "HU",
38 62: "ID",
39 353: "IE",
40 972: "IL",
41 91: "IN",
42 98: "IR",
43 39: "IT",
44 1876: "JM",
45 962: "JO",
46 81: "JP",
47 269: "KM",
48 961: "LB",
49 94: "LK",
50 370: "LT",
51 352: "LU",
52 371: "LV",
53 212: "MA",
54 261: "MG",
55 356: "MT",
56 230: "MU",
57 52: "MX",
58 60: "MY",
59 687: "NC",
60 234: "NG",
61 505: "NI",
62 31: "NL",
63 47: "NO",
64 977: "NP",
65 64: "NZ",
66 507: "PA",
67 51: "PE",
68 689: "PF",
69 675: "PG",
70 63: "PH",
71 92: "PK",
72 48: "PL",
73 508: "PM",
74 1787: "PR",
75 351: "PT",
76 595: "PY",
77 974: "QA",
78 40: "RO",
79 7: "RU",
80 46: "SE",
81 65: "SG",
82 386: "SI",
83 421: "SK",
84 66: "TH",
85 216: "TN",
86 90: "TR",
87 886: "TW",
88 380: "UA",
89 256: "UG",
90 1: "US",
91 598: "UY",
92 58: "VE",
93 84: "VN",
94 681: "WF",
95 262: "YT",
96 27: "ZA",
97 };
98 $jQ(document).ready(function(){
99
100 var bodyHeight = $jQ(document).height();
101 var adminmenu_height = $jQ('#adminmenuwrap').height();
102 if(bodyHeight > adminmenu_height){
103 $jQ("#datamain").height(bodyHeight);
104 }
105 else
106 {
107 $jQ("#datamain").height(adminmenu_height);
108 }
109
110
111 var normal_attributes = [];
112
113 var category_attributes = [];
114
115 function isValidEmailAddress(emailAddress) {
116
117 var pattern = new RegExp(/^[#&*\/=?^{!}~'_a-z0-9-\+]+([#&*\/=?^{!}~'_a-z0-9-\+]+)*(\.[#&*\/=?^{!}~'_a-z0-9-\+]+)*[.]?@[_a-z0-9-]+(\.[_a-z0-9-]+)*(\.[a-z0-9]{2,10})$/);
118 return pattern.test(emailAddress);
119 }
120
121 function change_field_attr(){
122 var attr_val = $jQ('#sib_sel_attribute').val();
123 var attr_type, attr_name, attr_text;
124 if (attr_val == 'email' || attr_val == 'submit') {
125 // get all info of attr
126 var hidden_attr = $jQ('#sib_hidden_' + attr_val);
127 attr_type = hidden_attr.attr('data-type');
128 attr_name = hidden_attr.attr('data-name');
129 attr_text = hidden_attr.attr('data-text');
130 }
131 else {
132 $jQ.each(normal_attributes, function(index, value) {
133 if (value['name'] == attr_val) {
134 attr_type = value['type'];
135 attr_name = value['name'];
136 attr_text = attr_name;
137 }
138 });
139
140 $jQ.each(category_attributes, function(index, value) {
141 if (value['name'] == attr_val) {
142 attr_type = value['type'];
143 attr_name = value['name'];
144 attr_text = attr_name;
145 }
146 });
147 }
148
149 // generate attribute html
150 generate_attribute_html(attr_type, attr_name, attr_text);
151 }
152
153 function change_attribute_tag(attr_type, attr_name, attr_text){
154 $jQ('#sib_field_label').attr('value', attr_text);
155 $jQ('#sib_field_placeholder').attr('value', '');
156 $jQ('#sib_field_initial').attr('value', '');
157 $jQ('#sib_field_button_text').attr('value', attr_text);
158 $jQ('.sib-attr-other').hide();
159 $jQ('.sib-attr-normal').hide();
160 $jQ('.sib-attr-category').hide();
161 $jQ('#sib_field_required').removeAttr('checked');
162 var dateformat = $jQ('.sib-dateformat').val();
163 switch(attr_type)
164 {
165 case 'email':
166 $jQ('#sib_field_required').attr('checked', 'true');
167 dateformat = '';
168 case 'date':
169 $jQ('#sib_field_placeholder').val(dateformat);
170 case 'text':
171 case 'float':
172 $jQ('.sib-attr-normal').show();
173 if(attr_name == 'SMS'){
174 $jQ('#sib_field_initial_area').hide();
175 }
176 break;
177 case 'boolean':
178 $jQ('.sib-attr-normal').show();
179 break;
180 case 'category':
181 $jQ('.sib-attr-category').show();
182 break;
183 case 'submit':
184 $jQ('.sib-attr-other').show();
185 break;
186 }
187 }
188
189 // generate attribute html
190 function generate_attribute_html(attr_type, attr_name, attr_text){
191 var field_label = $jQ('#sib_field_label').val();
192 var field_placeholder = $jQ('#sib_field_placeholder').val();
193 var field_initial = $jQ('#sib_field_initial').val();
194 var field_buttontext = $jQ('#sib_field_button_text').val();
195 //var field_wrap = $jQ('#sib_field_wrap').is(':checked');
196 var field_required = $jQ('#sib_field_required').is(':checked');
197 if(field_required == true) field_label += '*';
198 var field_type = $jQ('input[name=sib_field_type]:checked').val();
199 var dateformat = $jQ('.sib-dateformat').val();
200 var field_html = '';
201
202 if(attr_type != 'submit') {
203 field_html += '<p class="sib-' + attr_name + '-area"> \n';
204 }
205 else {
206 field_html += '<p> \n';
207 }
208
209 if ((field_label != '') && (attr_type == 'category')) {
210 if (field_type == 'select') {
211 field_html += ' <label class="sib-' + attr_name + '-area">' + field_label + '</label> \n';
212 }
213 else {
214 field_html += ' <div style="display:block;"><label class="sib-' + attr_name + '-area">' + field_label + '</label></div> \n';
215 }
216 }
217 else if((field_label != '') && (attr_type != 'submit')) {
218 field_html += ' <label class="sib-' + attr_name + '-area">' + field_label + '</label> \n';
219 }
220
221 switch (attr_type)
222 {
223 case 'email':
224 field_html += ' <input type="email" class="sib-' + attr_name + '-area" name="' + attr_name + '" ';
225 field_html += 'placeholder="' + field_placeholder + '" ';
226 field_html += 'value="' + field_initial + '" ';
227 if(field_required == true) {
228 field_html += 'required="required" ';
229 }
230 field_html += '> \n';
231 break;
232 case 'date':
233 field_html += ' <input type="text" class="sib-' + attr_name + '-area sib-date" name="' + attr_name + '" placeholder="' + dateformat + '" data-format="' + dateformat + '">';
234 break;
235 case 'boolean':
236 field_html += ' <input type="hidden" name="' + attr_name + '" value="0"><input type="checkbox" value="1" class="sib-' + attr_name + '-area" name="' + attr_name + '" ';
237 if(field_placeholder != '') {
238 field_html += 'placeholder="' + field_placeholder + '" ';
239 }
240 if(field_required == true) {
241 field_html += 'required="required" ';
242 }
243 field_html += '> \n';
244 break;
245 case 'text':
246 if ( attr_name == "SMS" ) {
247 field_html += '<div class="sib-sms-field"><div class="sib-country-block">' +
248 '<div class="sib-toggle sib-country-flg"><div class="sib-cflags"></div> ' +
249 '<div class="sib-icon-arrow"></div></div> '+
250 '</div>' + '<ul class="sib-country-list" style="display: none;"></ul>' +
251 '<input type="hidden" name="sib_SMS_prefix" value="+33"><input type="text" name="SMS" class="sib-sms" value="+33" ';
252 if(field_placeholder != '') {
253 field_html += 'placeholder="' + field_placeholder + '" ';
254 }
255 if(field_required == true) {
256 field_html += 'required="required" ';
257 }
258 field_html += '></div>\n';
259 }
260 else {
261 field_html += ' <input type="text" class="sib-' + attr_name + '-area" name="' + attr_name + '" ';
262 if(field_placeholder != '') {
263 field_html += 'placeholder="' + field_placeholder + '" ';
264 }
265 if(field_initial != '') {
266 field_html += 'value="' + field_initial + '" ';
267 }
268 if(field_required == true) {
269 field_html += 'required="required" ';
270 }
271 field_html += '> \n';
272 }
273 break;
274 case 'float':
275 field_html += ' <input type="text" class="sib-' + attr_name + '-area" name="' + attr_name + '" ';
276 if(field_placeholder != '') {
277 field_html += 'placeholder="' + field_placeholder + '" ';
278 }
279 if(field_initial != '') {
280 field_html += 'value="' + field_initial + '" ';
281 }
282 if(field_required == true) {
283 field_html += 'required="required" ';
284 }
285 field_html += 'pattern="[0-9]+([\\.|,][0-9]+)?" > \n';
286 break;
287 case 'submit':
288 field_html += ' <input type="submit" class="sib-default-btn" name="' + attr_name + '" ';
289 field_html += 'value="' + field_buttontext + '" ';
290 field_html += '> \n';
291 break;
292 case 'category':
293 var enumeration = [];
294 $jQ.each(category_attributes, function(index, value) {
295 if (value['name'] == attr_name) {
296 enumeration = value['enumeration'];
297 }
298 });
299
300 if (field_type == 'select') {
301 field_html += ' <select class="sib-' + attr_name + '-area" name="' + attr_name + '" ';
302 if (field_required == true) {
303 field_html += 'required="required" ';
304 }
305 field_html += '> \n';
306 }
307 $jQ.each(enumeration, function(index, value) {
308 if (field_type == 'select') {
309 field_html += ' <option value="' + value['value'] + '">' + value['label'] + '</option> \n';
310 }
311 else {
312 field_html += ' <div style="display:block;"><input type="radio" class="sib-' + attr_name + '-area" name="' + attr_name + '" value="' + value['value'] + '" ';
313 if (field_required == true) {
314 field_html += 'required="required" ';
315 }
316 field_html += '>' + value['label'] + '</div> \n';
317 }
318 });
319 if (field_type == 'select') {
320 field_html += ' </select> \n';
321 }
322 break;
323 }
324
325 field_html += '</p>';
326 $jQ('#sib_field_html').html(field_html);
327 }
328
329 function set_select_list() {
330 var selected_list_id = $jQ('#sib_selected_list_id').val();
331
332 var data = {
333 frmid : $jQ('input[name=sib_form_id]').val(),
334 action : 'sib_get_lists',
335 security: ajax_sib_object.ajax_nonce
336 };
337 $jQ.post(ajax_sib_object.ajax_url, data, function(respond) {
338 var select_html = '';
339 var selected = respond.selected;
340
341 $jQ.each(respond.lists, function(index, value) {
342 if(value['name'] == 'Temp - DOUBLE OPTIN') return true;
343 if ( selected.indexOf(value['id'].toString()) != '-1' ) {
344 select_html += '<option value="' + value['id'] + '" selected>' + value['name'] + '</option>';
345 }
346 else {
347 select_html += '<option value="' + value['id'] + '">' + value['name'] + '</option>';
348 }
349 });
350 $jQ('#sib_select_list').html(select_html).trigger("chosen:updated");
351
352 set_select_attributes();
353
354 });
355 }
356
357 function set_select_template() {
358 var selected_template_id = $jQ('#sib_selected_template_id').val();
359 var selected_do_template_id = $jQ('#sib_selected_do_template_id').val();
360 var selected_confirm_template_id = $jQ('#sib_selected_confirm_template_id').val();
361 var default_template_name = $jQ('#sib_default_template_name').val();
362 var data = {
363 action : 'sib_get_templates',
364 security: ajax_sib_object.ajax_nonce
365 };
366 $jQ.post(ajax_sib_object.ajax_url, data, function(respond) {
367 var select_html = '<select id="sib_template_id" class="col-md-11" name="template_id">';
368 if (selected_template_id == '-1') {
369 select_html += '<option value="-1" selected>' + default_template_name + '</option>';
370 }
371 else {
372 select_html += '<option value="-1">' + default_template_name + '</option>';
373 }
374 $jQ.each(respond.templates, function(index, value) {
375 if (value['id'] == selected_template_id) {
376 select_html += '<option value="' + value['id'] + '" selected>' + value['name'] + '</option>';
377 }
378 else if (!value['is_dopt']) {
379 select_html += '<option value="' + value['id'] + '">' + value['name'] + '</option>';
380 }
381 });
382 select_html += '</select>';
383 $jQ('#sib_template_id_area').html(select_html);
384
385 // For double optin.
386 select_html = '<select class="col-md-11" name="doubleoptin_template_id" id="sib_doubleoptin_template_id">';
387 if (selected_do_template_id == '-1') {
388 select_html += '<option value="-1" selected>' + default_template_name + '</option>';
389 }
390 else {
391 select_html += '<option value="-1">' + default_template_name + '</option>';
392 }
393 $jQ.each(respond.templates, function(index, value) {
394 if (value['id'] == selected_do_template_id) {
395 select_html += '<option is_shortcode="' + value['is_dopt'] + '" value="' + value['id'] + '" selected>' + value['name'] + '</option>';
396 }
397 else if (value['is_dopt']) {
398 select_html += '<option is_shortcode="' + value['is_dopt'] + '" value="' + value['id'] + '">' + value['name'] + '</option>';
399 }
400 });
401 select_html += '</select>';
402 $jQ('#sib_doubleoptin_template_id_area').html(select_html);
403
404 // For final confirmation emait template
405 select_html = '<select id="sib_confirm_template_id" class="col-md-11" name="confirm_template_id">';
406 if (selected_confirm_template_id == '-1') {
407 select_html += '<option value="-1" selected>' + default_template_name + '</option>';
408 }
409 else {
410 select_html += '<option value="-1">' + default_template_name + '</option>';
411 }
412
413 $jQ.each(respond.templates, function(index, value) {
414 if (value['id'] == selected_confirm_template_id) {
415 select_html += '<option is_shortcode="' + value['is_dopt'] + '" value="' + value['id'] + '" selected>' + value['name'] + '</option>';
416 }
417 else if (!value['is_dopt']) {
418 select_html += '<option is_shortcode="' + value['is_dopt'] + '" value="' + value['id'] + '">' + value['name'] + '</option>';
419 }
420 });
421 select_html += '</select>';
422 $jQ('#sib_final_confirm_template_id_area').html(select_html);
423
424 // double optin template id
425 $jQ('#sib_doubleoptin_template_id').on('change', function() {
426 var shortcode_exist = $jQ(this).find(':selected').attr('is_shortcode');
427 if (shortcode_exist == 0 && $jQ(this).val() != -1) {
428 $jQ('#sib_form_alert_message').show();
429 $jQ('#sib_disclaim_smtp').hide();
430 $jQ('#sib_disclaim_confirm_template').hide();
431 $jQ('#sib_disclaim_do_template').show();
432 $jQ(this).val('-1');
433 }
434 else {
435 $jQ('#sib_form_alert_message').hide();
436 }
437 });
438
439 // Final confirm template id
440 $jQ('#sib_confirm_template_id').on('change', function() {
441 var shortcode_exist = $jQ(this).find(':selected').attr('is_shortcode');
442 if (shortcode_exist == 1 && $jQ(this).val() != -1) {
443 $jQ('#sib_form_alert_message').show();
444 $jQ('#sib_disclaim_smtp').hide();
445 $jQ('#sib_disclaim_confirm_template').show();
446 $jQ('#sib_disclaim_do_template').hide();
447 $jQ(this).val('-1');
448 }
449 else {
450 $jQ('#sib_form_alert_message').hide();
451 }
452 });
453
454 $jQ('#sib_setting_signup_spin').addClass('hide');
455
456 });
457 }
458
459 function set_select_attributes() {
460 var data = {
461 action : 'sib_get_attributes',
462 security: ajax_sib_object.ajax_nonce
463 };
464
465 $jQ.post(ajax_sib_object.ajax_url, data, function(respond) {
466
467 var iframWidth = $jQ('.form-field').width() - 48;
468 $jQ('#sib-preview-form').width(iframWidth);
469
470 normal_attributes = respond.attrs.attributes.normal_attributes;
471 category_attributes = respond.attrs.attributes.category_attributes;
472 var attr_email_name = $jQ('#sib_hidden_email').attr('data-text');
473 var message_1 = $jQ('#sib_hidden_message_1').val();
474 var message_2 = $jQ('#sib_hidden_message_2').val();
475 var message_3 = $jQ('#sib_hidden_message_3').val();
476 var message_4 = $jQ('#sib_hidden_message_4').val();
477 var message_5 = $jQ('#sib_hidden_message_5').val();
478 var select_html = '<select class="col-md-12" id="sib_sel_attribute">' +
479 '<option value="-1" disabled selected>' + message_1 + '</option>' +
480 '<optgroup label="' + message_2 + '">';
481 select_html += '<option value="email">' + attr_email_name + '*</option>';
482 $jQ.each(normal_attributes, function(index, value) {
483 select_html += '<option value="' + value['name'] + '">' + value['name'] + '</option>';
484 });
485 select_html += '</optgroup>';
486 select_html += '<optgroup label="' + message_3 + '">';
487 $jQ.each(category_attributes, function(index, value) {
488 if(value['name'] == 'DOUBLE_OPT-IN') return;
489 select_html += '<option value="' + value['name'] + '">' + value['name'] + '</option>';
490 });
491 select_html += '</optgroup>';
492 select_html += '<optgroup label="' + message_4 + '">';
493 select_html += '<option value="submit">' + message_5 + '</option>';
494 select_html += '</optgroup>';
495 select_html += '</select>';
496
497 $jQ('#sib_sel_attribute_area').html(select_html);
498 $jQ('#sib_sel_attribute').on('change', function() {
499 //
500 $jQ('#sib-field-content').show();
501
502 var attr_val = $jQ(this).val();
503 var attr_type, attr_name, attr_text;
504 if (attr_val == 'email' || attr_val == 'submit') {
505 // get all info of attr
506 var hidden_attr = $jQ('#sib_hidden_' + attr_val);
507 attr_type = hidden_attr.attr('data-type');
508 attr_name = hidden_attr.attr('data-name');
509 attr_text = hidden_attr.attr('data-text');
510 }
511 else {
512 $jQ.each(normal_attributes, function(index, value) {
513 if (value['name'] == attr_val) {
514 attr_type = value['type'];
515 attr_name = value['name'];
516 attr_text = attr_name;
517 }
518 });
519
520 $jQ.each(category_attributes, function(index, value) {
521 if (value['name'] == attr_val) {
522 attr_type = value['type'];
523 attr_name = value['name'];
524 attr_text = attr_name;
525 }
526 });
527 }
528 // change attribute tags
529 change_attribute_tag(attr_type, attr_name, attr_text);
530
531 // generate attribute html
532 generate_attribute_html(attr_type, attr_name, attr_text);
533 });
534 $jQ('#sib_setting_form_spin').addClass('hide');
535 set_select_template();
536 });
537 }
538
539 function update_preview(){
540
541 var selectCaptchaType = $jQ('.sib-captcha-select').val();
542 var frmid = $jQ('#sib_form_id').val();
543 var formHtml = $jQ('#sibformmarkup').val();
544 var formCss = $jQ('#sibcssmarkup').val();
545 var isDepend = $jQ('input[name=sib_css_type]:checked').val();
546 if (selectCaptchaType == 3) {
547 var cCaptcha = $jQ('input[name=sib_add_captcha]:checked').val();
548 var cCaptchaSite = $jQ('#sib_captcha_site_turnstile').val();
549 var data = {
550 action:'sib_update_form_html',
551 security: ajax_sib_object.ajax_nonce,
552 frmid: frmid,
553 frmData: formHtml,
554 frmCss: formCss,
555 isDepend: isDepend,
556 selectCaptchaType: selectCaptchaType,
557 gCaptcha: cCaptcha,
558 cCaptchaSite: cCaptchaSite
559 };
560 } else if (selectCaptchaType != 3) {
561 var gCaptcha = $jQ('input[name=sib_add_captcha]:checked').val();
562 var gCaptchaType = $jQ('input[name=sib_recaptcha_type]:checked').val();
563 var gCaptchaSite = $jQ('#sib_captcha_site').val();
564 var data = {
565 action:'sib_update_form_html',
566 security: ajax_sib_object.ajax_nonce,
567 frmid: frmid,
568 frmData: formHtml,
569 frmCss: formCss,
570 isDepend: isDepend,
571 gCaptcha: gCaptcha,
572 gCaptchaType: gCaptchaType,
573 gCaptchaSite: gCaptchaSite,
574 selectCaptchaType: selectCaptchaType,
575 };
576 }
577 $jQ.post(ajax_sib_object.ajax_url, data,function() {
578 var preview_form = $jQ('#sib-preview-form');
579 preview_form.attr('src', preview_form.attr('src') + '&action=update');
580 });
581
582 }
583 // get cursor posistion of text area
584 function get_cursor_position(node) {
585 //node.focus();
586 /* without node.focus() IE will returns -1 when focus is not on node */
587 if(node.selectionStart) return node.selectionStart;
588 else if(!document.selection) return 0;
589 var c = "\001";
590 var sel = document.selection.createRange();
591 var dul = sel.duplicate();
592 dul.moveToElementText(node);
593 sel.text = c;
594 var len = (dul.text.indexOf(c));
595 sel.moveStart('character',-1);
596 sel.text = "";
597 return len;
598 }
599 // set cursor position at top of text area
600 function setSelectionRange(input, selectionStart, selectionEnd) {
601 if (input.setSelectionRange) {
602 input.focus();
603 input.setSelectionRange(selectionStart, selectionEnd);
604 } else if (input.createTextRange) {
605 var range = input.createTextRange();
606 range.collapse(true);
607 range.moveEnd('character', selectionEnd);
608 range.moveStart('character', selectionStart);
609 range.select();
610 }
611 }
612
613 // generate html for multi subscription lists
614 function generate_multi_list_html() {
615 var field_label = $jQ('#sib_multi_field_label').val();
616 var field_html = '<p class="sib-multi-lists-area">\n';
617 var list_id = '';
618 var list_name = '';
619 var required = false;
620 var required_label = '';
621 var required_attr = '';
622 if ( $jQ('#sib_multi_field_required').is(":checked"))
623 {
624 required = true;
625 required_label = '*';
626 required_attr = 'required';
627 }
628 if ( field_label != '' )
629 {
630 field_html += '<label>' + field_label + required_label + '</label>\n';
631 }
632
633 field_html += '<div class="sib-multi-lists" data-require="' + required_attr + '">\n';
634 var selected_lists = $jQ('#sib_select_multi_list').find('option:selected', this);
635 selected_lists.each(function(){
636 list_id = $jQ(this).val();
637 list_name = $jQ(this).data('list');
638 field_html += '<div style="block"><input type="checkbox" class="sib-interesting-lists" value="' + list_id + '" name="listIDs[]">' + list_name + '</div>\n';
639 });
640 field_html += '</div></p>';
641 $jQ('#sib_multi_field_html').html(field_html);
642 }
643 /////////////////////////////////
644 /* home settings */
645 /////////////////////////////////
646
647 // var elements
648 var sib_access_key = $jQ('#sib_access_key');
649 var sib_validate_btn = $jQ('#sib_validate_btn');
650
651 // validate button click process in welcome page
652 sib_validate_btn.on('click', function(){
653
654 var access_key = sib_access_key.val();
655
656 // check validation
657 var error_flag = 0;
658 if(access_key == '') {
659 sib_access_key.addClass('error');
660 error_flag =1;
661 }
662
663 if(error_flag != 0) {
664 return false;
665 }
666
667 // ajax process for validate
668 var data = {
669 action:'sib_validate_process',
670 access_key: access_key,
671 security: ajax_sib_object.ajax_nonce
672 };
673
674 $jQ('.sib_alert').hide();
675 $jQ('.sib-spin').show();
676 sib_access_key.removeClass('error');
677 $jQ(this).attr('disabled', 'true');
678
679 $jQ.post(ajax_sib_object.ajax_url, data, function(respond) {
680 $jQ('.sib-spin').hide();
681 sib_validate_btn.removeAttr('disabled');
682 if(respond == 'success') {
683 $jQ('#success-alert').show();
684 /*var cur_url = $jQ('#cur_refer_url').val();
685 window.location.href = cur_url;*/
686 window.location.reload();
687 }
688 else if (respond == 'curl_no_installed') {
689 sib_access_key.addClass('error');
690 $jQ('#failure-alert').html($jQ('#curl_no_exist_error').val()).show();
691 }
692 else if (respond == 'curl_error') {
693 sib_access_key.addClass('error');
694 $jQ('#failure-alert').html($jQ('#curl_error').val()).show();
695 }
696 else {
697 sib_access_key.addClass('error');
698 $jQ('#failure-alert').html(respond).show();
699 }
700 });
701 });
702
703 sib_access_key.on('keypress', function(){
704 $jQ(this).removeClass('error');
705 });
706
707 // Transactional emails
708 $jQ('input[name=activate_email]').on('click', function(){
709 var option_val = $jQ(this).val();
710 var data = {
711 action: 'sib_activate_email_change',
712 option_val: option_val,
713 security: ajax_sib_object.ajax_nonce
714 };
715 $jQ.post(ajax_sib_object.ajax_url, data, function(respond) {
716 if(respond == 'yes')
717 $jQ('#email_send_field').show();
718 else
719 $jQ('#email_send_field').hide();
720 });
721
722 return true;
723 });
724
725 // change sender detail
726 $jQ('#sender_list').on('change',function(){
727 var data = {
728 action: 'sib_sender_change',
729 sender: $jQ(this).val(),
730 security: ajax_sib_object.ajax_nonce
731 };
732 $jQ.post(ajax_sib_object.ajax_url, data, function() {
733 $jQ(this).blur();
734 });
735
736 return true;
737 });
738
739 // validate MA
740 $jQ('#validate_ma_btn').on('click',function(){
741 var option_val = $jQ('input[name=activate_ma]:checked').val();
742 var data = {
743 action:'sib_validate_ma',
744 option_val: option_val,
745 security: ajax_sib_object.ajax_nonce
746 };
747 var uninstall = false;
748 var uninstallMsg = $jQ('#sib-ma-unistall').val();
749 if(option_val != 'yes'){
750 uninstall = confirm(uninstallMsg);
751 }
752 if(option_val == 'yes' || uninstall) {
753 $jQ(this).find('.sib-spin').show();
754 $jQ('.sib-ma-alert').hide();
755 $jQ(this).attr('disabled', 'true');
756 $jQ.post(ajax_sib_object.ajax_url, data, function (respond) {
757 $jQ('.sib-spin').hide();
758 $jQ('#validate_ma_btn').removeAttr('disabled');
759 if (respond == 'yes') {
760 $jQ('.sib-ma-active').show();
761 } else if(respond == 'no') {
762 $jQ('.sib-ma-inactive').show();
763 } else if(respond == 'disabled'){
764 $jQ('.sib-ma-disabled').show();
765 $jQ('#activate_ma_radio_no').prop('checked', true);
766 }
767 setTimeout(function(){
768 if(respond != 'disabled')
769 window.location.reload();
770 },2000);
771
772 });
773 }
774 });
775
776 // send activate email button
777 $jQ('#send_email_btn').on('click',function(){
778 var activate_email = $jQ('#activate_email');
779 var email = activate_email.val();
780 if(email == '' || isValidEmailAddress(email) != true) {
781 activate_email.removeClass('has-success').addClass('error');
782 $jQ('#failure-alert').show();
783 return false;
784 }
785 $jQ(this).attr('disabled', 'true');
786
787 var data = {
788 action:'sib_send_email',
789 email:email,
790 security: ajax_sib_object.ajax_nonce
791 };
792
793 $jQ('.sib_alert').hide();
794 activate_email.removeClass('error');
795 $jQ(this).find('.sib-spin').show();
796 $jQ.post(ajax_sib_object.ajax_url, data,function(respond) {
797 $jQ('.sib-spin').hide();
798 $jQ('#send_email_btn').removeAttr('disabled');
799 if(respond != 'success') {
800 $jQ('#activate_email').removeClass('has-success').addClass('error');
801 $jQ('#failure-alert').show();
802 } else {
803 $jQ('#success-alert').show();
804 }
805 });
806 });
807
808 ////////////////////////////////
809 /* manage forms */
810 ////////////////////////////////
811
812 $jQ('#sib-field-content').hide();
813
814 // check confirm email
815 var is_send_confirm_email = $jQ("input[name=is_confirm_email]:checked").val();
816
817 if(is_send_confirm_email == '1') {
818 $jQ('#sib_confirm_template_area').show();
819 $jQ('#sib_confirm_sender_area').show();
820 } else {
821 $jQ('#sib_confirm_template_area').hide();
822 $jQ('#sib_confirm_sender_area').hide();
823 }
824
825 // check double optin
826 var is_double_optin = $jQ("input[name=is_double_optin]:checked").val();
827
828 if(is_double_optin == '1') {
829 $jQ('#is_confirm_email_no').prop("checked", true);
830 $jQ('#sib_confirm_template_area').hide();
831 $jQ('#sib_confirm_sender_area').hide();
832 $jQ('#sib_double_sender_area').show();
833 $jQ('#sib_doubleoptin_template_area').show();
834
835 } else {
836 $jQ('#sib_double_sender_area').hide();
837 $jQ('#sib_double_redirect_area').hide();
838 $jQ('#sib_doubleoptin_template_area').hide();
839 $jQ('#sib_final_confirm_template_area').hide();
840 }
841
842 if ($jQ('#sib_setting_signup_body').find('#sib_select_list_area').length > 0 ) {
843 set_select_list();
844 $jQ('#sib_select_list').chosen({width:"100%"});
845 }
846
847 // For multi lists subscription
848 if ( $jQ('#sib_setting_form_body').find('#sib_sel_multi_list_area').length > 0 ) {
849 var data = {
850 frmid : $jQ('input[name=sib_form_id]').val(),
851 action : 'sib_get_lists',
852 security: ajax_sib_object.ajax_nonce
853 };
854 $jQ.post(ajax_sib_object.ajax_url, data, function(respond) {
855 var select_html = '';
856 $jQ.each(respond.lists, function(index, value) {
857 if(value['name'] == 'Temp - DOUBLE OPTIN') return true;
858 select_html += '<option value="' + value['id'] + '" data-list="' + value['name'] + '">' + value['name'] + '</option>';
859 });
860 $jQ('#sib_select_multi_list').html(select_html).trigger("chosen:updated");
861 $jQ('#sib_select_multi_list').chosen({width:"100%"});
862 });
863 }
864
865 $jQ('#sib_select_multi_list').on('change', function(){
866 if ( $jQ(this).val() != null )
867 {
868 $jQ('#sib_multi_list_field').show();
869 generate_multi_list_html();
870 }
871 else {
872 $jQ('#sib_multi_list_field').hide();
873 }
874 });
875
876 $jQ('#sib_multi_field_label').on('change', function () {
877 generate_multi_list_html();
878 });
879
880 $jQ('#sib_multi_field_required').on('change', function () {
881 generate_multi_list_html();
882 });
883 // keep change of fields
884 $jQ('.sib_field_changes').on('change',function() {
885 change_field_attr();
886 });
887
888 // click confirm email
889 $jQ("input[name=is_confirm_email]").on('click',function() {
890 var confirm_email = $jQ(this).val();
891 var is_activated_smtp = parseInt($jQ("#is_smtp_activated").val());
892
893 if(confirm_email == '1') {
894 $jQ('#sib_doubleoptin_template_id').val('-1');
895 $jQ('#sib_confirm_template_id').val('-1');
896 $jQ('#is_double_optin_no').prop("checked", true);
897 $jQ('#sib_double_sender_area').hide();
898 $jQ('#sib_double_redirect_area').hide();
899 $jQ('#sib_confirm_template_area').show();
900 $jQ('#sib_confirm_sender_area').show();
901 $jQ('#sib_doubleoptin_template_area').hide();
902 $jQ('#sib_final_confirm_template_area').hide();
903 $jQ('#sib_form_alert_message').hide();
904 if (is_activated_smtp == 0) {
905 $jQ('#sib_form_alert_message').show();
906 $jQ('#sib_disclaim_smtp').show();
907 $jQ('#sib_disclaim_do_template').hide();
908 $jQ('#sib_disclaim_confirm_template').hide();
909 }
910 } else {
911 $jQ('#sib_confirm_template_area').hide();
912 $jQ('#sib_confirm_sender_area').hide();
913 $jQ('#sib_form_alert_message').hide();
914 }
915 });
916
917 // click double optin
918 $jQ('input[name=is_double_optin]').on('click', function() {
919 var double_optin = $jQ(this).val();
920 var is_activated_smtp = parseInt($jQ("#is_smtp_activated").val());
921 if(double_optin == '1') {
922 $jQ('#sib_template_id').val('-1');
923 $jQ('#is_confirm_email_no').prop("checked", true);
924 $jQ('#sib_confirm_template_area').hide();
925 $jQ('#sib_confirm_sender_area').hide();
926 $jQ('#sib_double_sender_area').show();
927 $jQ('#sib_double_redirect_area').show();
928 $jQ('#sib_doubleoptin_template_area').show();
929 $jQ('#sib_final_confirm_template_area').show();
930 if (is_activated_smtp == 0) {
931 $jQ('#sib_form_alert_message').show();
932 $jQ('#sib_disclaim_smtp').show();
933 $jQ('#sib_disclaim_do_template').hide();
934 $jQ('#sib_disclaim_confirm_template').hide();
935 }
936 } else {
937 $jQ('#sib_double_sender_area').hide();
938 $jQ('#sib_double_redirect_area').hide();
939 $jQ('#sib_doubleoptin_template_area').hide();
940 $jQ('#sib_form_alert_message').hide();
941 $jQ('#sib_final_confirm_template_area').hide();
942 }
943 });
944
945 // click redirect url
946 $jQ('#is_redirect_url_click_yes').on('click', function () {
947 $jQ('#sib_subscrition_redirect_area').show();
948 });
949 $jQ('#is_redirect_url_click_no').on('click', function () {
950 $jQ('#sib_subscrition_redirect_area').hide();
951 });
952
953 //// refresh iframe to preview form
954 $jQ('#sib-preview-form-refresh').on('click',function(){
955 // ajax to update form html
956 update_preview();
957 });
958
959 //// display popup when delete form
960 $jQ('.sib-form-delete').on('click', function(e) {
961 return confirm('Are you sure you want to delete this form?');
962 });
963
964 //// custom or theme's css
965 $jQ('input[name=sib_css_type]').on('change',function() {
966 $jQ('#sibcssmarkup').toggle();
967 update_preview();
968 });
969
970 // remove all transients
971 $jQ(window).focus(function() {
972
973 var data = {
974 action: 'sib_remove_cache',
975 security: ajax_sib_object.ajax_nonce
976 };
977 $jQ.post(ajax_sib_object.ajax_url, data,function(respond) {
978
979 if(respond == 'success') {
980 //
981 }
982 });
983 });
984
985 /* sync wordpress users to sendinblue contact list */
986 // sync popup
987 $jQ('#sib-sync-btn').on('click', function() {
988 var syncModal = $jQ('.sib-sync-modal');
989 syncModal.modal();
990 $jQ('#sync-failure').hide();
991
992 // add to multilist field
993 var list = $jQ('#sib_select_list');
994 list[0].selectedIndex = 0;
995 list.chosen({width:"100%"});
996
997 syncModal.on('hidden.bs.modal', function () {
998 //window.location.reload();
999 });
1000 });
1001
1002 var attrFieldLine = $jQ('.sync-attr-line').html();
1003 var appenderLine = $jQ('.sync-attr-plus-col').html();
1004 // sync add attr line filed
1005 $jQ('.modal-body').on('click', '.sync-attr-plus', function(){
1006 $jQ(this).css('visibility', 'hidden');
1007 $jQ(this).addClass('pb-2');
1008 $jQ('.sync-attr-plus-col').append(appenderLine);
1009 $jQ('.sync-attr-line').append(attrFieldLine);
1010 $jQ('.sync-attr-dismiss').show();
1011 });
1012 // sync dismiss attr line filed
1013 $jQ('.modal-body').on('click', '.sync-attr-dismiss', function(){
1014 $jQ(this).closest('.sync-attr').remove();
1015 var attrCount = $jQ('.sync-attr').length;
1016 if(attrCount == 1) {
1017 $jQ('.sync-attr-dismiss').hide();
1018 }
1019 $jQ(`.sync-attr-plus-col .sync-attr-plus:nth-child(${attrCount - 1})`).css('visibility', 'show');
1020 $jQ(`.sync-attr-plus-col .sync-attr-plus:nth-child(${attrCount})`).remove();
1021 });
1022
1023 // set attribute matching
1024 $jQ('.modal-body').on('change', 'select', function () {
1025 if($jQ(this).attr("class") == 'sync-wp-attr'){
1026 $jQ(this).closest('.sync-attr').find('.sync-match').val($jQ(this).val());
1027 }else{
1028 $jQ(this).closest('.sync-attr').find('.sync-match').attr('name',$jQ(this).val());
1029 }
1030 });
1031
1032 // sync users to sendinblue
1033 $jQ('#sib_sync_users_btn').on('click', function(){
1034
1035 $jQ(this).attr('disabled', 'true');
1036 var postData = $jQ('#sib-sync-form').serializeObject();
1037 $jQ(this).closest('form').find('input[type=hidden]').each(function (index, value) {
1038 var attrName = $jQ(this).attr('name');
1039 if($jQ('input[name='+attrName+']').length > 1){
1040 // the attribute is duplicated !
1041 postData['errAttr'] = attrName;
1042 }
1043 });
1044
1045 var data = {
1046 action:'sib_sync_users',
1047 data: postData,
1048 security: ajax_sib_object.ajax_nonce
1049 };
1050
1051 $jQ('.sib_alert').hide();
1052 $jQ(this).find('.sib-spin').show();
1053 $jQ.post(ajax_sib_object.ajax_url, data,function(respond) {
1054 $jQ('.sib-spin').hide();
1055 $jQ('#sib_sync_users_btn').removeAttr('disabled');
1056 let messageBox = '';
1057 if(respond.code != 'success') {
1058 messageBox = 'sync-failure';
1059 $jQ('#sync-failure').show().html(respond.message);
1060 } else {
1061 // success to sync wp users
1062 location.reload();
1063 $jQ('.sib-sync-modal').modal('toggle');
1064 $jQ('#sib-message-body').html(respond.message);
1065 $jQ('#sib-message-box').show();
1066 }
1067 });
1068
1069 });
1070 $jQ('.sib-add-captcha').on('click', function(){
1071 var add_captcha = $jQ(this).val();
1072 var selectCaptchaType = $jQ('.sib-captcha-select').val();
1073 if(add_captcha == '1')
1074 {
1075 $jQ('.sib-captcha-select').show('slow');
1076
1077 if (selectCaptchaType == 2) {
1078 $jQ('.sib-captcha-key').show('slow');
1079 } else if (selectCaptchaType == 3) {
1080 $jQ('.sib-captcha-key-turnstile').show('slow');
1081 }
1082 }
1083 else
1084 {
1085 $jQ('.sib-captcha-select').hide('slow');
1086 $jQ('.sib-captcha-key').hide('slow');
1087 $jQ('.sib-captcha-key-turnstile').hide('slow');
1088 }
1089 });
1090
1091 //Captcha select
1092 $jQ('.sib-captcha-select').on('change', function(){
1093 var add_captcha = $jQ(this).val();
1094 if(add_captcha == '1')
1095 {
1096 $jQ('.sib-captcha-key-turnstile').hide('slow');
1097 $jQ('.sib-captcha-key').hide('slow');
1098 }
1099 else if(add_captcha == '2')
1100 {
1101 $jQ('.sib-captcha-key-turnstile').hide('slow');
1102 $jQ('.sib-captcha-key').show('slow');
1103 }
1104 else if (add_captcha == '3')
1105 {
1106 $jQ('.sib-captcha-key').hide('slow');
1107 $jQ('.sib-captcha-key-turnstile').show('slow');
1108 }
1109 });
1110
1111 $jQ('.popover-help-form').popover({
1112 });
1113 $jQ('.sib-spin').hide();
1114 $jQ('body').on('click', function(e) {
1115 if(!$jQ(e.target).hasClass('popover-help-form')) {
1116 $jQ('.popover-help-form').popover('hide');
1117 }
1118 });
1119
1120 $jQ('.sib-add-terms').on('click', function(){
1121 var add_terms = $jQ(this).val();
1122 if(add_terms == '1')
1123 {
1124 $jQ('.sib-terms-url').show('slow');
1125 }
1126 else
1127 {
1128 $jQ('.sib-terms-url').hide('slow');
1129 }
1130 });
1131
1132 $jQ('.sib-add-to-form').on('click', function(){
1133 var btn_id = $jQ(this).attr('id');
1134 var field_html = '';
1135
1136 var formMarkup = $jQ("#sibformmarkup");
1137 var cursorPosition = get_cursor_position(formMarkup[0]);
1138 var html = formMarkup.val();
1139 var replacedHTML = "";
1140
1141 if(btn_id == 'sib_add_to_form_btn')
1142 {
1143 let textToslice = $jQ("#sib_field_html").val();
1144 var position = textToslice.search("sib_SMS_prefix");
1145 let firstpart = position + 22;
1146
1147 let lastPoint = firstpart + 7;
1148 let sliceValue = textToslice.slice(firstpart, lastPoint);
1149 var code = sliceValue.substring(sliceValue.indexOf("+") + 1, sliceValue.lastIndexOf('"'));
1150
1151 var flagInicial = CountryList[code];
1152 if (typeof flagInicial !== "undefined") {
1153 var flagICo = jQuery('#getDomain').val() + flagInicial.toLowerCase() + ".png";
1154
1155 field_html = textToslice.replace('class="sib-cflags"', `class="sib-cflags" style=background-image:url(${flagICo})`);
1156 } else {
1157 field_html = textToslice;
1158 }
1159 }
1160 else if(btn_id == 'sib_multi_lists_add_form_btn')
1161 {
1162 field_html = $jQ('#sib_multi_field_html').val();
1163 $jQ('#sib_multi_list_field').hide();
1164 }
1165 else if(btn_id == 'sib_add_captcha_btn')
1166 {
1167 var site_key = $jQ('#sib_captcha_site').val();
1168 var secret_key = $jQ('#sib_captcha_secret').val();
1169 var gCaptcha_type = $jQ('input[name=sib_recaptcha_type]:checked').val();
1170
1171 if(gCaptcha_type == '0')
1172 {
1173 $jQ('.cf-turnstile').remove();
1174 field_html = '<div id="sib_captcha"></div>';
1175 }
1176
1177 if(site_key == '')
1178 {
1179 $jQ('#sib_form_captcha .alert-danger').html('You should input <strong>Site Key</strong>').show(300);
1180 return false;
1181 }
1182 else if(secret_key == '')
1183 {
1184 $jQ('#sib_form_captcha .alert-danger').html('You should input <strong>Secrete Key</strong>').show(300);
1185 return false;
1186 }
1187 }
1188 else if(btn_id == 'sib_add_captcha_btn_turnstile')
1189 {
1190 var site_key = $jQ('#sib_captcha_site_turnstile').val();
1191 var secret_key = $jQ('#sib_captcha_secret_turnstile').val();
1192 var secret_key = $jQ('#sib_captcha_secret_turnstile').val();
1193 var cCaptchaStyle = $jQ('input[name=turnstile_captcha_theme]:checked').val();
1194
1195 var if_site_key_exists = $jQ('#cf-turnstile').val();
1196
1197 if ((if_site_key_exists == '') || (if_site_key_exists != site_key)) {
1198 field_html = '<div id="' + "cf-turnstile-"+site_key + '"' + ' class="cf-turnstile" data-error-callback="errorCallbackForTurnstileErrors" data-sitekey="'+site_key+'" data-theme="'+cCaptchaStyle+'"></div>';
1199 } else {
1200 replacedHTML = html;
1201 }
1202
1203 if(site_key == '')
1204 {
1205 $jQ('#sib_form_captcha .alert-danger').html('You should input <strong>Site Key</strong>').show(300);
1206 return false;
1207 }
1208 else if(secret_key == '')
1209 {
1210 $jQ('#sib_form_captcha .alert-danger').html('You should input <strong>Secrete Key</strong>').show(300);
1211 return false;
1212 }
1213 }
1214 else if(btn_id == 'sib_add_termsUrl_btn')
1215 {
1216 var terms_url = $jQ('#sib_terms_url').val();
1217 field_html = '<input type="checkbox" name="terms" required="required">I accept the <a href="' + terms_url + '">terms and conditions</a> ';
1218 if(terms_url == '')
1219 {
1220 $jQ('#sib_form_terms .alert-danger').html('You should input <strong>Terms URL</strong>').show(300);
1221 return false;
1222 }
1223 }
1224 else if(btn_id == 'sib_add_compliance_note')
1225 {
1226 var compliance_note = $jQ('#sib_gdpr_text').val();
1227 field_html = '<p>' + compliance_note + '</p>';
1228 }
1229
1230 replacedHTML = html.replace(/<div id="cf-turnstile.*?>(.*?)<\/div>/, '$1');
1231
1232 if(replacedHTML.charCodeAt(cursorPosition) == 10 || replacedHTML.charCodeAt(cursorPosition) == 13){ // 10 is value of new line
1233 field_html = "\n" + field_html;
1234 }else{
1235 field_html = field_html + "\n";
1236 }
1237
1238 var formData = [replacedHTML.slice(0, cursorPosition), field_html, replacedHTML.slice(cursorPosition)].join('');
1239
1240 formMarkup.val(formData);
1241
1242 // hide field edit after add the field to form
1243 $jQ('#sib-field-content').hide();
1244 $jQ("#sib_sel_attribute").val('-1');
1245
1246 /*/ refresh iframe form /*/
1247 // ajax to update form html
1248 update_preview();
1249 // set cursor position at top
1250 setSelectionRange(formMarkup[0], 0, 0);
1251 return false;
1252 });
1253
1254 var redirect = '';
1255 $jQ('.sib-form-redirect').on('click', function(e){
1256 e.preventDefault();
1257 redirect = $jQ(this).attr('href');
1258 $jQ('#sib_modal').modal();
1259 });
1260
1261 $jQ('#sib_form_lang').on('change', function(){
1262 $jQ('#sib_modal').modal();
1263 });
1264
1265 $jQ('#sib_modal_cancel').on('click', function(){
1266 $jQ('#sib_modal').modal('hide');
1267 $jQ('#sib_form_lang').val("");
1268 });
1269 $jQ('#sib_modal_ok').on('click', function(){
1270 var url = (redirect != '')? redirect :$jQ('#sib_form_lang').val();
1271 window.location.href = url;
1272 });
1273
1274 // duplicate content from origin form in translation
1275 $jQ('.sib-duplicate-btn').on('click', function(){
1276 $jQ('.sib-spin').show();
1277 var pid = $jQ('input[name="pid"]').val();
1278 var data = {
1279 action: 'sib_copy_origin_form',
1280 pid: pid,
1281 security: ajax_sib_object.ajax_nonce
1282 };
1283 $jQ.post(ajax_sib_object.ajax_url, data, function(respond) {
1284 $jQ('.sib-spin').hide();
1285 $jQ('#sibformmarkup').val(respond);
1286 });
1287
1288 });
1289
1290 $jQ('.sib-add-compliant-note').on('click', function () {
1291 var add_notes = $jQ(this).val();
1292 if(add_notes == '1')
1293 {
1294 $jQ('.sib-gdpr-block-area').show('slow');
1295 $jQ('.sib-gdpr-block-btn').show('slow');
1296 }
1297 else
1298 {
1299 $jQ('.sib-gdpr-block-area').hide('slow');
1300 $jQ('.sib-gdpr-block-btn').hide('slow');
1301 }
1302 });
1303 $jQ('#set_gdpr_default').on('click', function () {
1304 $jQ('#sib_gdpr_text').val(ajax_sib_object.compliance_note);
1305 })
1306
1307 if($jQ("#sib-statistics-date").length) {
1308 $jQ("#sib-statistics-date").datepicker({
1309 dateFormat: 'yy-mm-dd',
1310 numberOfMonths: 1,
1311 onSelect: function( selectedDate ) {
1312 if(!$jQ(this).data().datepicker.first){
1313 $jQ(this).data().datepicker.inline = true
1314 $jQ(this).data().datepicker.first = selectedDate;
1315 }else{
1316 if(selectedDate > $jQ(this).data().datepicker.first){
1317 $jQ(this).val($jQ(this).data().datepicker.first+" - "+selectedDate);
1318 }else{
1319 $jQ(this).val(selectedDate+" - "+$jQ(this).data().datepicker.first);
1320 }
1321 $jQ(this).data().datepicker.inline = false;
1322 }
1323 },
1324 onClose:function(){
1325 delete $jQ(this).data().datepicker.first;
1326 $jQ(this).data().datepicker.inline = false;
1327 }
1328 })
1329 }
1330 $jQ('#sib-statistics-form').on('submit', function (data) {
1331 $jQ("#apply-date-range").attr("disabled", true);
1332 $jQ('.sib-spinner').addClass('is-active');
1333 return true;
1334 });
1335
1336 $jQ('#sibformmarkup').on('change', function ($data) {
1337 var formHtml = $jQ('#sibformmarkup').val();
1338 formHtml = updateHtmlWithFlag(formHtml);
1339 $jQ('#sibformmarkup').val(formHtml);
1340 });
1341 });
1342
1343 // get serialized data form sync users form
1344 $jQ.fn.serializeObject = function()
1345 {
1346 var o = {};
1347 var a = this.serializeArray();
1348 $jQ.each(a, function() {
1349 if (o[this.name] !== undefined) {
1350 if (!o[this.name].push) {
1351 o[this.name] = [o[this.name]];
1352 }
1353 o[this.name].push(this.value || '');
1354 } else {
1355 o[this.name] = this.value || '';
1356 }
1357 });
1358 return o;
1359 };
1360
1361 function updateHtmlWithFlag(htmlString) {
1362 var customEle = document.createElement( 'section' );
1363 customEle.innerHTML = htmlString;
1364 var codeEle = customEle.querySelector("[name='sib_SMS_prefix']");
1365 if(codeEle === null) {
1366 return htmlString;
1367 }
1368 let dialCode = codeEle.value;
1369 dialCode = dialCode.replace('+','');
1370 var flagInicial = CountryList[dialCode];
1371 if (typeof flagInicial !== "undefined") {
1372 let flagICo = jQuery('#getDomain').val()+flagInicial.toLowerCase()+".png";
1373 customEle.querySelector("[class='sib-cflags']").removeAttribute("style");
1374 customEle.querySelector("[class='sib-cflags']").setAttribute("style","background-image:url("+flagICo+")");
1375 }
1376 var HtString = customEle.innerHTML;
1377 HtString = HtString.replace('</p><div class="sib-sms-field','<div class="sib-sms-field');
1378 HtString = HtString.replace('<p></p>','</p>');
1379 return HtString;
1380 }
1381