PluginProbe ʕ •ᴥ•ʔ
Everest Forms – Contact Form, Payment Form, Quiz, Survey & Custom Form Builder with AI / 2.0.3
Everest Forms – Contact Form, Payment Form, Quiz, Survey & Custom Form Builder with AI v2.0.3
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 / admin.js
everest-forms / assets / js / admin Last commit date
gutenberg 2 years ago admin.js 3 years ago admin.min.js 3 years ago deactivation-feedback.js 3 years ago deactivation-feedback.min.js 3 years ago editor.js 7 years ago editor.min.js 5 years ago evf-admin-email.js 2 years ago evf-admin-email.min.js 2 years 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 3 years ago evf-file-uploader.js 3 years ago evf-file-uploader.min.js 3 years ago evf-setup.js 2 years ago evf-setup.min.js 2 years ago extensions.js 2 years ago extensions.min.js 2 years ago form-builder.js 2 years ago form-builder.min.js 2 years ago form-template-controller.js 3 years ago form-template-controller.min.js 3 years ago settings.js 3 years ago settings.min.js 3 years ago tools.js 4 years ago tools.min.js 4 years ago upgrade.js 2 years ago upgrade.min.js 2 years ago
admin.js
438 lines
1 /* global everest_forms_admin, PerfectScrollbar */
2 ( function( $, params ) {
3
4 // Colorpicker.
5 $( document ).on( 'click', '.everest-forms-field.everest-forms-field-rating', function() {
6 $( '.everest-forms-field-option-row-icon_color input.evf-colorpicker' ).wpColorPicker({
7 change: function( event ) {
8 var $this = $( this ),
9 value = $this.val(),
10 id = $this.closest( '.everest-forms-field-option-row' ).data( 'field-id' ),
11 $icons = $( '#everest-forms-field-'+id +' .rating-icon svg' );
12 $icons.css( 'fill', value );
13 }
14 });
15 });
16
17
18 // Enable Perfect Scrollbar.
19 $( document ).on( 'init_perfect_scrollbar', function() {
20 var nav_wrapper = $( 'nav.evf-nav-tab-wrapper' );
21
22 if ( nav_wrapper.length >= 1 ) {
23 window.evf_nav_ps = new PerfectScrollbar( 'nav.evf-nav-tab-wrapper', {
24 suppressScrollY : true,
25 useBothWheelAxes: true,
26 wheelPropagation: true
27 });
28 }
29 });
30
31 // Update Perfect Scrollbar.
32 window.addEventListener( 'resize orientationchange', function() {
33 var resizeTimer,
34 nav_wrapper = $( 'nav.evf-nav-tab-wrapper' );
35
36 if ( nav_wrapper.length >= 1 ) {
37 clearTimeout( resizeTimer );
38 resizeTimer = setTimeout( function() {
39 window.evf_nav_ps.update();
40 }, 400 );
41 }
42 });
43
44 // Trigger Perfect Scrollbar.
45 $( document ).ready( function( $ ) {
46 if ( 'undefined' !== typeof PerfectScrollbar ) {
47 $( document ).trigger( 'init_perfect_scrollbar' );
48 }
49 });
50
51 // Field validation error tips.
52 $( document.body )
53
54 .on( 'evf_add_error_tip', function( e, element, error_type, locale ) {
55 var offset = element.position();
56
57 if ( element.parent().find( '.evf_error_tip' ).length === 0 ) {
58 element.after( '<div class="evf_error_tip ' + error_type + '">' + locale[error_type] + '</div>' );
59 element.parent().find( '.evf_error_tip' )
60 .css( 'left', offset.left + element.width() - ( element.width() / 2 ) - ( $( '.evf_error_tip' ).width() / 2 ) )
61 .css( 'top', offset.top + element.height() )
62 .fadeIn( '100' );
63 }
64 })
65
66 .on( 'evf_remove_error_tip', function( e, element, error_type ) {
67 element.parent().find( '.evf_error_tip.' + error_type ).fadeOut( '100', function() { $( this ).remove(); } );
68 })
69
70 .on( 'click', 'input:not([type=number])', function() {
71 $( '.evf_error_tip' ).fadeOut( '100', function() { $( this ).remove(); } );
72 })
73
74 .on( 'blur', '.evf-input-meta-key[type=text], .evf-input-number[type=number]', function() {
75 $( '.evf_error_tip' ).fadeOut( '100', function() { $( this ).remove(); } );
76 })
77
78 .on( 'change', '.evf-input-meta-key[type=text], .evf-input-number[type=number]', function() {
79 var regex;
80
81 if ( $( this ).is( '.evf-input-number' ) ) {
82 regex = new RegExp( '[^-0-9]+', 'gi' );
83 } else {
84 regex = new RegExp( '[^a-z0-9_\-]+', 'gi' );
85 }
86
87 var value = $( this ).val();
88 var newvalue = value.replace( regex, '' );
89
90 if ( value !== newvalue ) {
91 $( this ).val( newvalue );
92 }
93 })
94
95 .on( 'keyup', '.evf-input-meta-key[type=text]', function() {
96 var regex, error;
97
98 if ( $( this ).is( '.evf-input-meta-key' ) ) {
99 regex = new RegExp( '[^a-z0-9_\-]+', 'gi' );
100 error = 'i18n_field_meta_key_error';
101 }
102
103 var value = $( this ).val();
104 var newvalue = value.replace( regex, '' );
105
106 if ( value !== newvalue ) {
107 $( document.body ).triggerHandler( 'evf_add_error_tip', [ $( this ), error, params ] );
108 } else {
109 $( document.body ).triggerHandler( 'evf_remove_error_tip', [ $( this ), error ] );
110 }
111 })
112
113 .on( 'keyup focus', '.evf-input-number[type=number]', function() {
114 var fieldId = $( this ).parent().data( 'fieldId' ) ? $( this ).parent().data( 'fieldId' ) : $( this ).closest( '.everest-forms-field-option-row' ).data( 'field-id' );
115 var maxField = $( "input#everest-forms-field-option-"+fieldId+"-max_value" );
116 var minField = $( "input#everest-forms-field-option-"+fieldId+"-min_value" );
117 var maxVal = maxField.val();
118 var minVal = minField.val();
119
120 if ( 0 !== minVal.length && 0 !== maxVal.length ) {
121 if ( parseFloat( minVal ) > parseFloat( maxVal ) ) {
122 if( $( this ).attr( 'id' ).indexOf( 'min_value' ) !== -1 ) {
123 $( document.body ).triggerHandler( 'evf_add_error_tip', [ $( this ), 'i18n_field_min_value_greater', params ] );
124 } else {
125 $( document.body ).triggerHandler( 'evf_add_error_tip', [ $( this ), 'i18n_field_max_value_smaller', params ] );
126 }
127 } else {
128 $( document.body ).triggerHandler( 'evf_remove_error_tip', [ $( this ), 'i18n_field_max_value_smaller' ] );
129 $( document.body ).triggerHandler( 'evf_remove_error_tip', [ $( this ), 'i18n_field_min_value_greater' ] );
130 }
131 }
132 })
133
134 .on('keydown click','.evf-max-file-number[type=number]', function(e) {
135 if( !( ( e.keyCode > 95 && e.keyCode < 106 )
136 || ( e.keyCode > 47 && e.keyCode < 58 )
137 || e.keyCode == 8 ) ) {
138 return false;
139 }
140 })
141
142 .on( 'focusout','.evf-input-number[type=number]', function(e) {
143 var fieldId = $( this ).parent().data( 'fieldId' ) ? $( this ).parent().data( 'fieldId' ) : $( this ).closest( '.everest-forms-field-option-row' ).data( 'field-id' );
144 var maxField = $( "input#everest-forms-field-option-"+fieldId+"-max_value" );
145 var minField = $( "input#everest-forms-field-option-"+fieldId+"-min_value" );
146 var maxVal = parseFloat( maxField.val() );
147 var minVal = parseFloat( minField.val() );
148
149 if ( minVal > maxVal || ( '' === maxField.val() && '' !== minField.val() ) ) {
150 maxField.val( minVal + 1 );
151 }
152 })
153
154 .on('click','.everest-forms-field-number, .everest-forms-field-range-slider', function(e) {
155 var $this = $(this);
156 var id = $this.data('field-id');
157 $(document).on('keydown click',"#everest-forms-field-option-"+ id +"-default_value",function(e){
158 if( !( ( e.keyCode > 95 && e.keyCode < 106 )
159 || ( e.keyCode > 47 && e.keyCode < 58 )
160 || e.keyCode == 8 ) ) {
161 return false;
162 }
163 })
164
165 $(document).on( 'keyup focus',"#everest-forms-field-option-"+ id +"-default_value",function( e ){
166 var fieldId = $( this ).parent().data( 'fieldId' ) ? $( this ).parent().data( 'fieldId' ) : $( this ).closest( '.everest-forms-field-option-row' ).data( 'field-id' );
167 var maxField = $( "input#everest-forms-field-option-"+fieldId+"-max_value" );
168 var minField = $( "input#everest-forms-field-option-"+fieldId+"-min_value" );
169 var maxVal = maxField.val();
170 var minVal = minField.val();
171 var defVal = e.target.value;
172 var $this = $( this );
173
174 if ( 0 !== minVal.length ) {
175
176 if( 0 !== maxVal.length && parseFloat( defVal ) > parseFloat( maxVal ) ) {
177 $( document.body ).triggerHandler( 'evf_remove_error_tip', [ $this, 'i18n_field_def_value_smaller' ] );
178 $( document.body ).triggerHandler( 'evf_add_error_tip', [ $this, 'i18n_field_def_value_greater', params ] );
179 } else {
180 $( document.body ).triggerHandler( 'evf_remove_error_tip', [ $this, 'i18n_field_def_value_greater' ] );
181 }
182
183 if( 0 !== defVal.length && parseFloat( defVal ) < parseFloat( minVal ) ) {
184 $( document.body ).triggerHandler( 'evf_remove_error_tip', [ $this, 'i18n_field_def_value_greater' ] );
185 $( document.body ).triggerHandler( 'evf_add_error_tip', [ $this, 'i18n_field_def_value_smaller', params ] );
186 } else {
187 $( document.body ).triggerHandler( 'evf_remove_error_tip', [ $this, 'i18n_field_def_value_smaller' ] );
188 }
189 }
190 })
191
192 .on( 'focusout', "#everest-forms-field-option-"+ id +"-default_value", function(e) {
193 var fieldId = $( this ).parent().data( 'fieldId' ) ? $( this ).parent().data( 'fieldId' ) : $( this ).closest( '.everest-forms-field-option-row' ).data( 'field-id' );
194 var maxField = $( "input#everest-forms-field-option-"+fieldId+"-max_value" );
195 var minField = $( "input#everest-forms-field-option-"+fieldId+"-min_value" );
196 var maxVal = parseFloat( maxField.val() );
197 var minVal = parseFloat( minField.val() );
198 var defVal = parseFloat( e.target.value );
199
200 if ( minVal > defVal || maxVal < defVal ) {
201 e.target.value = '';
202 }
203 })
204 })
205
206 .on('click','.everest-forms-field-payment-quantity', function(e) {
207 var $this = $(this);
208 var id = $this.data('field-id');
209 $(document).on('keydown click',"#everest-forms-field-option-"+ id +"-default_value",function(e){
210 if( !( ( e.keyCode > 95 && e.keyCode < 106 )
211 || ( e.keyCode > 47 && e.keyCode < 58 )
212 || e.keyCode == 8 ) ) {
213 return false;
214 }
215 })
216 })
217
218 .on( 'init_tooltips', function() {
219 $( '.tips, .help_tip, .everest-forms-help-tip, .everest-forms-help-tooltip, .everest-forms-icon' ).tooltipster( {
220 maxWidth: 200,
221 multiple: true,
222 interactive: true,
223 position: 'bottom',
224 contentAsHTML: true,
225 updateAnimation: false,
226 restoration: 'current',
227 functionInit: function( instance, helper ) {
228 var $origin = $( helper.origin ),
229 dataTip = $origin.attr( 'data-tip' );
230
231 if ( dataTip ) {
232 instance.content( dataTip );
233 }
234 }
235 } );
236 });
237
238 // Dynamic live binding on newly created elements.
239 $( 'body' ).on( 'mouseenter', '.evf-content-email-settings-inner .everest-forms-help-tooltip:not(.tooltipstered)', function() {
240 $( this ).tooltipster({
241 maxWidth: 200,
242 multiple: true,
243 interactive: true,
244 position: 'bottom',
245 contentAsHTML: true,
246 updateAnimation: false,
247 restoration: 'current',
248 functionInit: function( instance, helper ) {
249 var $origin = $( helper.origin ),
250 dataTip = $origin.attr( 'data-tip' );
251 if ( dataTip ) {
252 instance.content( dataTip );
253 }
254 }
255 });
256 $( this ).tooltipster( 'open' );
257 });
258
259 $( document ).on( 'click', '.everest-forms-email-add', function() {
260 $( '.evf-content-email-settings-inner .tooltipstered' ).tooltipster( 'destroy' );
261 });
262
263 // Tooltips
264 $( document.body ).trigger( 'init_tooltips' );
265
266 // Check for new form entries using Heartbeat API.
267 $( document ).on( 'heartbeat-send', function( event, data ) {
268 var $entriesList = $( '#everest-forms-entries-list' ),
269 form_id = $entriesList.find( '#entries-list' ).data( 'form-id' );
270 last_entry_id = $entriesList.find( '#entries-list' ).data( 'last-entry-id' );
271
272 // Work on entry list table page and check if last entry ID is found.
273 if ( ! $entriesList.length || typeof last_entry_id === 'undefined' ) {
274 return;
275 }
276
277 // Add custom entries data to Heartbeat data.
278 data.evf_new_entries_form_id = form_id;
279 data.evf_new_entries_last_entry_id = last_entry_id;
280 });
281
282 // Display entries list notification if Heartbeat API new form entries check is successful.
283 $( document ).on( 'heartbeat-tick', function ( event, data ) {
284 var $entriesList = $( '#everest-forms-entries-list' ),
285 columnsCount = $entriesList.find( '.wp-list-table thead tr:first-child > :visible' ).length;
286
287 // Work on entry list table page and check for new entry notification.
288 if ( ! $entriesList.length || ! data.evf_new_entries_notification ) {
289 return;
290 }
291
292 if ( ! $entriesList.find( '.new-entries-notification' ).length ) {
293 $entriesList.find( '.wp-list-table thead' ).append( '<tr class="new-entries-notification"><td colspan="' + columnsCount + '"><a href="#new" onClick="window.location.reload(true);"></a></td></tr>' );
294 }
295
296 $entriesList
297 .find( '.new-entries-notification a' )
298 .text( data.evf_new_entries_notification )
299 .slideDown( {
300 duration : 500,
301 start : function () {
302 $( this ).css( {
303 display: 'block'
304 } );
305 }
306 } );
307 });
308
309 // To play welcome video.
310 $( document ).on( 'click', '#everest-forms-welcome .welcome-video-play', function( event ) {
311 var video = '<div class="welcome-video-container"><iframe width="760" height="429" src="https://www.youtube.com/embed/N_HbZccA-Ts?rel=0&amp;showinfo=0&amp;autoplay=1" frameborder="0" allowfullscreen></iframe></div>';
312
313 event.preventDefault();
314
315 $(this).find('.everest-froms-welcome-thumb').remove();
316 $(this).append(video);
317 });
318
319 // Change span with file name when user selects a file.
320 $( '#everest-forms-import' ).on( 'change', function(e) {
321 var file = $( '#everest-forms-import' ).prop( 'files' )[0];
322
323 $( '#import-file-name' ).html( file.name );
324 });
325
326 $( '.everest-forms-export-form-action' ).on( 'click', function() {
327 var form_id = $( this ).closest( '.everest-forms-export-form' ).find( '#everest-forms-form-export' ).val();
328
329 $( this ).closest( '.everest-forms-export-form' ).find( '#message' ).remove();
330
331 if ( ! form_id ) {
332 $( this ).closest( '.everest-forms-export-form' ).find( 'h3' ).after( '<div id="message" class="error inline everest-froms-import_notice"><p><strong>' + everest_forms_admin.i18n_form_export_action_error + '</strong></p></div>' );
333 return false;
334 }
335 });
336
337 $( '.everest_forms_import_action' ).on( 'click', function() {
338 var file_data = $( '#everest-forms-import' ).prop( 'files' )[0],
339 form_data = new FormData();
340
341 form_data.append( 'jsonfile', file_data );
342 form_data.append( 'action', 'everest_forms_import_form_action' );
343 form_data.append( 'security', everest_forms_admin.ajax_import_nonce );
344
345 $.ajax({
346 url: evf_email_params.ajax_url,
347 dataType: 'json', // JSON type is expected back from the PHP script.
348 cache: false,
349 contentType: false,
350 processData: false,
351 data: form_data,
352 type: 'POST',
353 beforeSend: function () {
354 var spinner = '<i class="evf-loading evf-loading-active"></i>';
355 $( '.everest_forms_import_action' ).closest( '.everest_forms_import_action' ).append( spinner );
356 $( '.everest-froms-import_notice' ).remove();
357 },
358 complete: function( response ) {
359 var message_string = '';
360
361 $( '.everest_forms_import_action' ).closest( '.everest_forms_import_action' ).find( '.evf-loading' ).remove();
362 $( '.everest-froms-import_notice' ).remove();
363
364 if ( true === response.responseJSON.success ) {
365 message_string = '<div id="message" class="updated inline everest-froms-import_notice"><p><strong>' + response.responseJSON.data.message + '</strong></p></div>';
366 } else {
367 message_string = '<div id="message" class="error inline everest-froms-import_notice"><p><strong>' + response.responseJSON.data.message + '</strong></p></div>';
368 }
369
370 $( '.everest-forms-import-form' ).find( 'h3' ).after( message_string );
371 $( '#everest-forms-import' ).val( '' );
372 $( '#import-file-name' ).html( 'No file selected' );
373 }
374 });
375 });
376
377 // Adding active class for button group
378 $('.everest-forms-btn-group .everest-forms-btn').on('click', function() {
379 $(this).siblings().removeClass('is-active')
380 $(this).addClass('is-active');
381 })
382
383 $(document).find('.evf-form-locate').on('click', function(e) {
384 var id = $(this).data('id');
385 var data = {
386 'action':'everest_forms_locate_form_action',
387 'id':id,
388 'security':everest_forms_admin_locate.ajax_locate_nonce
389 }
390 var tag = e.target;
391 var target_tag = tag.closest(".row-actions");
392 $.ajax({
393 url : everest_forms_admin_locate.ajax_url,
394 dataType: 'json', // JSON type is expected back from the PHP script.
395 cache: false,
396 data: data,
397 type: 'POST',
398 beforeSend: function () {
399 var spinner = '<i class="evf-loading evf-loading-active"></i>';
400 $(target_tag).append( spinner );
401 },
402 success: function(response) {
403 var len = Object.keys(response.data).length;
404 if(len>0) {
405 var add_tag = '<div class = "locate-form"><span>'+everest_forms_admin_locate.form_found+'</span>';
406 var i = 1;
407 $.each(response.data, function(index, value) {
408 if(i > 1) {
409 add_tag +=", ";
410 }
411 let wordsArray = index.split(" ");
412 if(wordsArray.length > 4 ) {
413 let slicedArray = wordsArray.slice(0, 4);
414 index = slicedArray.join(" ");
415 index = index + "...";
416 }
417 add_tag+=' <a href="'+value+'" target="_blank">'+index+'</a>';
418 i++;
419 });
420 add_tag +="</div>";
421 if($(target_tag).find('.locate-form').length !=0) {
422 $(target_tag).find('.locate-form').remove();
423 }
424 $(target_tag).find('span:first').prepend(add_tag);
425
426 } else {
427 if($(target_tag).find('.locate-form').length !=0) {
428 $(target_tag).find('.locate-form').remove();
429 }
430 $(target_tag).find('span:first').prepend('<div class = "locate-form"><span>'+everest_forms_admin_locate.form_found_error+'</span></div>');
431 }
432 $(target_tag).find('.evf-loading').remove();
433 }
434
435 })
436 });
437 })( jQuery, everest_forms_admin );
438