PluginProbe ʕ •ᴥ•ʔ
Everest Forms – Contact Form, Payment Form, Quiz, Survey & Custom Form Builder with AI / 3.5.2
Everest Forms – Contact Form, Payment Form, Quiz, Survey & Custom Form Builder with AI v3.5.2
3.5.2 3.5.1 3.5.0 3.4.8 3.4.7 3.4.6 1.1.0 1.1.1 1.1.2 1.1.3 1.1.4 1.1.5 1.1.5.1 1.1.6 1.1.7 1.1.8 1.1.9 1.2.0 1.2.1 1.2.2 1.2.3 1.2.4 1.3.0 1.3.1 1.3.2 1.3.3 1.3.4 1.4.0 1.4.1 1.4.2 1.4.3 1.4.4 1.4.5 1.4.6 1.4.7 1.4.8 1.4.9 1.5.0 1.5.1 1.5.10 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.5.9 1.6.0 1.6.1 1.6.2 1.6.3 1.6.4 1.6.5 1.6.6 1.6.6.1 1.6.7 1.7.0 1.7.0.1 1.7.0.2 1.7.0.3 1.7.1 1.7.2 1.7.2.1 1.7.2.2 1.7.3 1.7.4 1.7.5 1.7.5.1 1.7.5.2 1.7.6 1.7.7 1.7.7.1 1.7.7.2 1.7.8 1.7.9 1.8.0 1.8.0.1 1.8.1 1.8.2 1.8.2.1 1.8.2.2 1.8.2.3 1.8.3 1.8.4 1.8.5 1.8.6 1.8.7 1.8.8 1.8.9 1.9.0 1.9.0.1 1.9.1 1.9.2 1.9.3 1.9.4 1.9.4.1 1.9.5 1.9.6 1.9.7 1.9.8 1.9.9 2.0.0 2.0.0.1 2.0.1 2.0.2 2.0.3 2.0.3.1 2.0.4 2.0.4.1 2.0.5 2.0.6 2.0.7 2.0.8 2.0.8.1 2.0.9 3.0.0 3.0.0.1 3.0.1 3.0.2 3.0.3 3.0.3.1 3.0.4 3.0.4.1 3.0.4.2 3.0.5 3.0.5.1 3.0.5.2 3.0.6 3.0.6.1 3.0.7.1 3.0.8 3.0.8.1 3.0.9 3.0.9.1 3.0.9.2 3.0.9.3 3.0.9.4 3.0.9.5 3.1.0 3.1.1 3.1.2 3.2.0 3.2.1 3.2.2 3.2.3 3.2.4 3.2.5 3.2.6 3.3.0 3.4.0 3.4.1 3.4.2 3.4.2.1 3.4.3 3.4.4 3.4.5 trunk 1.0 1.0.1 1.0.2 1.0.3
everest-forms / assets / js / admin / settings.js
everest-forms / assets / js / admin Last commit date
admin.js 3 weeks ago admin.min.js 3 weeks ago chart.js 2 years ago chart.min.js 1 year ago customize-controls.js 1 year ago customize-controls.min.js 1 year ago customize-preview.js 1 year ago customize-preview.min.js 1 year ago deactivation-feedback.js 2 years ago deactivation-feedback.min.js 2 years ago editor.js 7 years ago editor.min.js 5 years ago everest-forms-survey-polls-quiz-builder.js 2 years ago everest-forms-survey-polls-quiz-builder.min.js 2 years ago evf-admin-email.js 2 years ago evf-admin-email.min.js 1 year ago evf-clipboard.js 7 years ago evf-clipboard.min.js 7 years ago evf-enhanced-select.js 3 years ago evf-enhanced-select.min.js 2 years ago evf-file-uploader.js 1 year ago evf-file-uploader.min.js 1 year ago evf-setup.js 1 year ago evf-setup.min.js 1 year ago extensions.js 2 years ago extensions.min.js 2 years ago form-builder.js 6 days ago form-builder.min.js 6 days ago form-template-controller.js 3 years ago form-template-controller.min.js 3 years ago printThis.min.js 2 years ago progressbar.js 2 years ago progressbar.min.js 1 year ago randomColor.js 2 years ago randomColor.min.js 2 years ago settings.js 3 weeks ago settings.min.js 3 weeks ago shortcode-form-embed.js 2 years ago shortcode-form-embed.min.js 2 years ago tool-import-entries.js 2 years ago tool-import-entries.min.js 2 years ago tools.js 3 weeks ago tools.min.js 3 weeks ago upgrade.js 3 weeks ago upgrade.min.js 3 weeks ago
settings.js
447 lines
1 /* global everest_forms_settings_params, jconfirm */
2 (function ($, params) {
3 // Confirm defaults.
4 $(document).ready(function () {
5 if (typeof jconfirm === 'undefined') {
6 return;
7 }
8
9 // jquery-confirm defaults.
10 jconfirm.defaults = {
11 closeIcon: true,
12 backgroundDismiss: true,
13 escapeKey: true,
14 animationBounce: 1,
15 useBootstrap: false,
16 theme: 'modern',
17 boxWidth: '400px',
18 columnClass: 'evf-responsive-class',
19 };
20 });
21
22 if ($.fn.wpColorPicker) {
23 $('.evf-colorpicker').wpColorPicker({
24 change: function (event, ui) {
25 // // Update the preview background color
26 // $(this).closest('.everest-forms-global-settings--field').find('.colorpickpreview').css('background-color', ui.color.toString());
27 },
28 hide: true, // Keep the picker hidden initially
29 border: true,
30 });
31 }
32
33 // Toggle the color picker visibility when the input field is clicked
34 $('.evf-colorpicker').on('click', function (event) {
35 event.stopPropagation(); // Prevent the body click from hiding the picker
36
37 // Show the color picker container
38 const pickerContainer = $(this)
39 .closest('.everest-forms-global-settings--field')
40 .find('.wp-picker-container .iris-picker');
41
42 if (pickerContainer.is(':visible')) {
43 pickerContainer.hide();
44 } else {
45 $('.iris-picker').hide();
46 pickerContainer.show();
47 }
48 });
49
50 // Hide the color picker when clicking anywhere outside
51 $('body').on('click', function () {
52 $('.iris-picker').hide();
53 });
54
55 // Prevent clicks inside the color picker from closing it
56 $('.wp-picker-container').on('click', function (event) {
57 event.stopPropagation();
58 });
59
60 // Edit prompt
61 $(function () {
62 var changed = false;
63
64 $('input, textarea, select, checkbox').change(function () {
65 changed = true;
66 });
67
68 $('.evf-nav-tab-wrapper a').click(function () {
69 if (changed) {
70 window.onbeforeunload = function () {
71 return params.i18n_nav_warning;
72 };
73 } else {
74 window.onbeforeunload = '';
75 }
76 });
77
78 $('.submit :input').click(function () {
79 window.onbeforeunload = '';
80 });
81 });
82
83 // Select all/none
84 $('.everest-forms').on('click', '.select_all', function () {
85 $(this).closest('td').find('select option').attr('selected', 'selected');
86 $(this).closest('td').find('select').trigger('change');
87 return false;
88 });
89
90 $('.everest-forms').on('click', '.select_none', function () {
91 $(this).closest('td').find('select option').removeAttr('selected');
92 $(this).closest('td').find('select').trigger('change');
93 return false;
94 });
95
96 // Handle invisible reCAPTCHA v2 toggle
97 $('input#everest_forms_recaptcha_v2_invisible')
98 .on('change', function () {
99 var v2_site_key = $('#everest_forms_recaptcha_v2_site_key').closest(
100 '.everest-forms-global-settings',
101 ),
102 v2_secret_key = $('#everest_forms_recaptcha_v2_secret_key').closest(
103 '.everest-forms-global-settings',
104 ),
105 v2_invisible_site_key = $(
106 '#everest_forms_recaptcha_v2_invisible_site_key',
107 ).closest('.everest-forms-global-settings'),
108 v2_invisible_secret_key = $(
109 '#everest_forms_recaptcha_v2_invisible_secret_key',
110 ).closest('.everest-forms-global-settings');
111
112 if ($(this).is(':checked')) {
113 v2_site_key.hide();
114 v2_secret_key.hide();
115
116 v2_invisible_site_key.removeClass('everest-forms-hidden').show();
117 v2_invisible_secret_key.removeClass('everest-forms-hidden').show();
118 } else {
119 v2_site_key.show();
120 v2_secret_key.show();
121 v2_invisible_site_key.addClass('everest-forms-hidden').hide();
122 v2_invisible_secret_key.addClass('everest-forms-hidden').hide();
123 }
124 })
125 .trigger('change');
126
127 // Send Test Email.
128 $('.everest_forms_send_email_test').on('click', function (e) {
129 e.preventDefault();
130 let email = $('#everest_forms_email_send_to').val();
131 let data = {
132 action: 'everest_forms_send_test_email',
133 email: email,
134 security: evf_email_params.ajax_email_nonce,
135 };
136 $.ajax({
137 url: evf_email_params.ajax_url,
138 data: data,
139 type: 'post',
140 beforeSend: function () {
141 var spinner = '<i class="evf-loading evf-loading-active"></i>';
142 $('.everest_forms_send_email_test')
143 .closest('.everest_forms_send_email_test')
144 .append(spinner);
145 },
146 complete: function (response) {
147 $('.everest_forms_send_email_test')
148 .closest('.everest_forms_send_email_test')
149 .find('.evf-loading')
150 .remove();
151
152 if (true === response.responseJSON.success) {
153 window.evfShowToast(
154 response.responseJSON.data.message,
155 'success',
156 5000,
157 );
158 } else {
159 window.evfShowToast(
160 response.responseJSON.data.message,
161 'error',
162 5000,
163 );
164 }
165 },
166 });
167 });
168
169 // Handles collapse of side menu.
170 $('#evf-settings-collapse').on('click', function (e) {
171 e.preventDefault();
172 if ($(this).hasClass('close')) {
173 $(this).closest('header').addClass('collapsed');
174 $(this).removeClass('close').addClass('open');
175 setStorageValue('evf-settings-navCollapsed', true); // set to localStorage
176 } else {
177 $(this).closest('header').removeClass('collapsed');
178 $(this).removeClass('open').addClass('close');
179 localStorage.removeItem('evf-settings-navCollapsed'); // remove from localStorage
180 }
181 });
182
183 // Persist the collapsable state through page reload
184
185 var isNavCollapsed =
186 getStorageValue('evf-settings-navCollapsed') === true
187 ? 'collapsed'
188 : 'not-collapsed';
189 getStorageValue('evf-settings-navCollapsed');
190 if (isNavCollapsed == 'collapsed') {
191 $('.everest-forms-header').addClass('collapsed');
192 $('#evf-settings-collapse').removeClass('close').addClass('open');
193 } else {
194 $('.everest-forms-header').removeClass('collapsed');
195 $('#evf-settings-collapse').removeClass('open').addClass('close');
196 }
197
198 // Set localStorage with expiry
199 function setStorageValue(key, value) {
200 var current = new Date();
201
202 var data = {
203 value: value,
204 expiry: current.getTime() + 86400000, // 1day of expiry time
205 };
206
207 localStorage.setItem(key, JSON.stringify(data));
208 }
209
210 // Get localStorage with expiry
211 function getStorageValue(key) {
212 var item = localStorage.getItem(key);
213
214 if (!item) {
215 return false;
216 }
217
218 var data = JSON.parse(item);
219 var current = new Date();
220
221 if (current.getTime() > data.expiry) {
222 localStorage.removeItem(key);
223 return false;
224 }
225 return true;
226 }
227
228 // Send Routine Report Test Email.
229 $('.everest_forms_send_routine_report_test_email').on('click', function (e) {
230 e.preventDefault();
231 let email = $('#everest_forms_email_send_to').val();
232 let data = {
233 action: 'everest_forms_send_routine_report_test_email',
234 email: email,
235 security: evf_email_params.ajax_email_nonce,
236 };
237 $.ajax({
238 url: evf_email_params.ajax_url,
239 data: data,
240 type: 'post',
241 beforeSend: function () {
242 var spinner = '<i class="evf-loading evf-loading-active"></i>';
243 $('.everest_forms_send_routine_report_test_email')
244 .closest('.everest_forms_send_routine_report_test_email')
245 .append(spinner);
246 $('.everest-froms-send_test_email_notice').remove();
247 },
248 complete: function (response) {
249 var message_string = '';
250
251 $('.everest_forms_send_routine_report_test_email')
252 .closest('.everest_forms_send_routine_report_test_email')
253 .find('.evf-loading')
254 .remove();
255 $('.everest-froms-send_test_email_notice').remove();
256 if (true === response.responseJSON.success) {
257 message_string =
258 '<div id="message" class="updated inline everest-froms-send_test_email_notice"><p><strong>' +
259 response.responseJSON.data.message +
260 '</strong></p></div>';
261 $('.everest-forms-options-header').append(message_string);
262 } else {
263 message_string =
264 '<div id="message" class="error inline everest-froms-send_test_email_notice"><p><strong>' +
265 response.responseJSON.data.message +
266 '</strong></p></div>';
267 }
268
269 $('.everest-forms-settings').find('h2').after(message_string);
270 },
271 });
272 });
273
274 function initAccordionItem($accordionItem) {
275 var $accordionContent = $accordionItem.find(
276 '.everest-forms-accordion-content',
277 );
278
279 if ($accordionItem.hasClass('is-open')) {
280 $accordionContent.css('max-height', '3000px');
281 } else {
282 $accordionContent.css('max-height', '0');
283 }
284 }
285
286 function toggleAccordionHeader($header) {
287 var $accordionItem = $header.closest('.everest-forms-accordion-item');
288 var $accordionContent = $accordionItem.find(
289 '.everest-forms-accordion-content',
290 );
291
292 if ($accordionItem.hasClass('is-open')) {
293 $accordionItem.removeClass('is-open');
294 $accordionContent.css('max-height', '0');
295 $accordionContent.css('padding', '0 24px');
296 } else {
297 $accordionItem.addClass('is-open');
298 $accordionContent.css('max-height', '3000px');
299 $accordionContent.css('padding', '24px');
300 }
301 }
302
303 $(document.body).on(
304 'click',
305 '.everest-forms-accordion-header',
306 function (e) {
307 if (
308 $(e.target).closest(
309 'input, select, textarea, button, a, label, .evf-toggle-switch',
310 ).length
311 ) {
312 return;
313 }
314
315 e.preventDefault();
316 toggleAccordionHeader($(this));
317 },
318 );
319
320 // Initialize accordion items and CAPTCHA toggles on document ready
321 $(document).ready(function () {
322 // Initialize accordion items
323 $('.everest-forms-accordion-item').each(function () {
324 initAccordionItem($(this));
325 });
326
327 // Open accordion matching URL hash: #everest-forms-settings-id-{slug}
328 var hashMatch = window.location.hash.match( /^#everest-forms-settings-id-(.+)$/ );
329 if ( hashMatch ) {
330 var slug = hashMatch[1].replace( /-/g, '_' );
331 var fieldPrefix = 'everest_forms_' + slug + '_';
332 var $target = $( '.everest-forms-accordion-item' ).filter( function () {
333 return $( this ).find( 'input[id^="' + fieldPrefix + '"], select[id^="' + fieldPrefix + '"], textarea[id^="' + fieldPrefix + '"]' ).length > 0;
334 } ).first();
335
336 if ( $target.length && ! $target.hasClass( 'is-open' ) ) {
337 $target.addClass( 'is-open' );
338 $target.find( '.everest-forms-accordion-content' ).css( { 'max-height': '3000px', 'padding': '24px' } );
339 }
340
341 if ( $target.length ) {
342 setTimeout( function () {
343 $( 'html, body' ).animate( { scrollTop: $target.offset().top - 60 }, 300 );
344 }, 100 );
345 }
346 }
347
348 $(document).on(
349 'change',
350 '#everest_forms_recaptcha_v2_enable, #everest_forms_recaptcha_v3_enable, #everest_forms_recaptcha_hcaptcha_enable, #everest_forms_recaptcha_turnstile_enable',
351 function () {
352 var $currentToggle = $(this);
353 var currentId = $currentToggle.attr('id');
354
355 if ($currentToggle.is(':checked')) {
356 // Get all other CAPTCHA toggles
357 var otherToggles = [
358 '#everest_forms_recaptcha_v2_enable',
359 '#everest_forms_recaptcha_v3_enable',
360 '#everest_forms_recaptcha_hcaptcha_enable',
361 '#everest_forms_recaptcha_turnstile_enable',
362 ].filter(function (id) {
363 return id !== '#' + currentId;
364 });
365
366 // Automatically uncheck all other toggles (disable them)
367 otherToggles.forEach(function (toggleId) {
368 var $toggle = $(toggleId);
369 // Uncheck the toggle
370 $toggle.prop('checked', false);
371
372 var $description = $toggle
373 .closest('.everest-forms-global-settings--field')
374 .find('.description');
375 if ($description.length) {
376 $description.text(
377 'Enable this CAPTCHA. Note: Enabling this will disable other CAPTCHA providers.',
378 );
379 }
380 });
381
382 // Update the current toggle description
383 var $currentDescription = $currentToggle
384 .closest('.everest-forms-global-settings--field')
385 .find('.description');
386 if ($currentDescription.length) {
387 $currentDescription.text('This CAPTCHA is currently enabled.');
388 }
389 } else {
390 // If this toggle was disabled, update description
391 var $currentDescription = $currentToggle
392 .closest('.everest-forms-global-settings--field')
393 .find('.description');
394 if ($currentDescription.length) {
395 $currentDescription.text(
396 'Enable this CAPTCHA. Note: Enabling this will disable other CAPTCHA providers.',
397 );
398 }
399 }
400 },
401 );
402 });
403
404 disableFormChangeModal();
405
406 /**
407 * Disable leave page before saving changes modal when hid/show sidebar is clicked.
408 */
409 function disableFormChangeModal() {
410 var form = $('.everest-forms').find('form')[0];
411
412 var formChanged = false;
413
414 $(form).on('change', function (event) {
415 if (event.target.name !== 'everest-forms-enable-premium-sidebar') {
416 formChanged = true;
417 }
418 });
419
420 var skipBeforeUnloadPopup = false;
421 $(form).on('submit', function () {
422 skipBeforeUnloadPopup = true;
423 });
424 $(form)
425 .find('.evf-nav__link')
426 .on('click', function () {
427 skipBeforeUnloadPopup = true;
428 });
429
430 $(window).on('beforeunload', function (event) {
431 if (formChanged && !skipBeforeUnloadPopup) {
432 event.preventDefault();
433 event.returnValue = '';
434 } else {
435 event.stopImmediatePropagation();
436 }
437 });
438 }
439 })(
440 jQuery,
441 typeof everest_forms_settings_params !== 'undefined'
442 ? everest_forms_settings_params
443 : {
444 i18n_nav_warning: '',
445 },
446 );
447