1/* global esdSettings, jQuery, grecaptcha */ 2 3function esOnSubmit() { 4 jQuery( '#js-esd-form' ).submit(); 5} 6 7( function( $ ) { 8 $( document ).ready( function() { 9 $( '#js-esd-form' ).on( 'submit', function( e ) { 10 e.preventDefault(); 11 e.stopPropagation(); 12 const self = $( this ); 13 14 if ( typeof grecaptcha !== 'undefined' && ! grecaptcha.getResponse() ) { 15 $( '<p class="esd-form__row esd-form__response esd-form__response--error">Error: ' + esdSettings.recaptchaFailed + '</p>' ).insertBefore( self.find( '#es-submit' ) ); 16 return; 17 } 18 19 const submitButtonText = self.find( 'input[type=submit]' ).val(); 20 self.find( 'input[type=submit]' ).val("..."); 21 22 if ( self.find( '#gdpr' ).is( ':checked' ) ) { 23 self.find( '#gdpr' ).val( 'true' ); 24 } 25 26 self.find( 'input[type=submit]' ).attr( 'disabled', 'disabled' ); 27 28 self.find( '.esd-form__response' ).remove(); 29 30 let formData = $( this ).serialize(); 31 formData += '&action=process_sendy'; 32 33 $.ajax( { 34 method: 'POST', 35 url: esdSettings.ajaxurl, 36 data: formData, 37 dataType: 'json', 38 } ) 39 .done( function( res ) { 40 if ( res.data && res.data.status === false ) { 41 const message = res.data.message || 'Some error occurred.'; 42 $( '<p class="esd-form__row esd-form__response esd-form__response--error">Error: ' + message + '</p>' ).insertBefore( self.find( '#es-submit' ) ); 43 return; 44 } 45 46 if ( res.success === false ) { 47 $( '<p class="esd-form__row esd-form__response esd-form__response--error">Error: ' + res.data.message + '</p>' ).insertBefore( self.find( '#es-submit' ) ); 48 return; 49 } 50 51 if ( res.success && res.data.status ) { 52 const message = ( res.data.message === 'Already subscribed!' ) ? esdSettings.alreadySubscribed : esdSettings.successMessage; 53 54 $( '<p class="esd-form__row esd-form__response esd-form__response--success">' + message + '</p>' ).insertBefore( self.find( '#es-submit' ) ); 55 } 56 } ) 57 .fail( function( data ) { 58 const response = data.responseText; 59 let message = ''; 60 61 if ( 'Already subscribed.' === response ) { 62 message = esdSettings.alreadySubscribed; 63 } else { 64 message = response; 65 } 66 67 $( '<p class="esd-form__row esd-form__response esd-form__response--error">Error: ' + message + '</p>' ).insertBefore( self.find( '#es-submit' ) ); 68 } ) 69 .always( function() { 70 self.find( 'input[type=submit]' ).removeAttr( 'disabled' ); 71 self.find( 'input[type=submit]' ).val(submitButtonText); 72 if ( typeof grecaptcha !== 'undefined' ) { 73 grecaptcha.reset(); 74 } 75 } ); 76 } ); 77 } ); 78}( jQuery ) );
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.