1'use strict'; 2 3var $ = jQuery; 4 5var GenesisBlocksNewsletterSubmission = { 6 init() { 7 $( '.gb-newsletter-submit' ).on( 'click', function( event ) { 8 var button = $( this ); 9 10 var button_text_original = button.val(); 11 12 var form = $( this ).parents( 'form' ); 13 14 var nonce = button 15 .parent() 16 .find( "[name='gb-newsletter-form-nonce']" ) 17 .val(); 18 19 var email = button 20 .parent() 21 .find( "[name='gb-newsletter-email-address']" ) 22 .val(); 23 24 var provider = button 25 .parent() 26 .find( "[name='gb-newsletter-mailing-list-provider']" ) 27 .val(); 28 29 var list = button 30 .parent() 31 .find( "[name='gb-newsletter-mailing-list']" ) 32 .val(); 33 34 var successMessage = button 35 .parent() 36 .find( "[name='gb-newsletter-success-message']" ) 37 .val(); 38 39 var errorMessageContainer = button 40 .parents( '.gb-block-newsletter' ) 41 .find( '.gb-block-newsletter-errors' ); 42 43 var ampEndpoint = button 44 .parent() 45 .find( "[name='gb-newsletter-amp-endpoint-request']" ) 46 .val(); 47 48 var doubleOptIn = button 49 .parent() 50 .find( "[name='gb-newsletter-double-opt-in']" ) 51 .val(); 52 53 event.preventDefault(); 54 55 wp.a11y.speak( 56 genesis_blocks_newsletter_vars.l10n.a11y.submission_processing 57 ); 58 59 button 60 .val( 61 genesis_blocks_newsletter_vars.l10n.button_text_processing 62 ) 63 .prop( 'disabled', true ); 64 65 if ( ! email ) { 66 setTimeout( function() { 67 button 68 .val( button_text_original ) 69 .prop( 'disabled', false ); 70 wp.a11y.speak( 71 genesis_blocks_newsletter_vars.l10n.a11y 72 .submission_failed 73 ); 74 }, 400 ); 75 return; 76 } 77 78 if ( ! provider || ! list ) { 79 form.html( 80 '<p class="gb-newsletter-submission-message">' + 81 genesis_blocks_newsletter_vars.l10n 82 .invalid_configuration + 83 '</p>' 84 ); 85 return; 86 } 87 88 $.ajax( { 89 data: { 90 action: 'genesis_blocks_newsletter_submission', 91 'gb-newsletter-email-address': email, 92 'gb-newsletter-mailing-list-provider': provider, 93 'gb-newsletter-mailing-list': list, 94 'gb-newsletter-form-nonce': nonce, 95 'gb-newsletter-success-message': successMessage, 96 'gb-newsletter-amp-endpoint-request': ampEndpoint, 97 'gb-newsletter-double-opt-in': doubleOptIn, 98 }, 99 type: 'post', 100 url: genesis_blocks_newsletter_vars.ajaxurl, 101 success( response ) { 102 if ( response.success ) { 103 form.html( 104 '<p class="gb-newsletter-submission-message">' + 105 response.data.message + 106 '</p>' 107 ); 108 wp.a11y.speak( 109 genesis_blocks_newsletter_vars.l10n.a11y 110 .submission_succeeded 111 ); 112 } 113 114 if ( ! response.success ) { 115 errorMessageContainer 116 .html( '<p>' + response.data.message + '</p>' ) 117 .fadeIn(); 118 button 119 .val( button_text_original ) 120 .prop( 'disabled', false ); 121 wp.a11y.speak( 122 genesis_blocks_newsletter_vars.l10n.a11y 123 .submission_failed 124 ); 125 } 126 }, 127 failure( response ) { 128 errorMessageContainer 129 .html( '<p>' + response.data.message + '</p>' ) 130 .fadeIn(); 131 }, 132 } ); 133 } ); 134 135 $( '.gb-newsletter-email-address-input' ).on( 'keyup', function( 136 event 137 ) { 138 $( '.gb-block-newsletter-errors' ) 139 .html( '' ) 140 .fadeOut(); 141 } ); 142 }, 143}; 144 145$( document ).ready( function() { 146 GenesisBlocksNewsletterSubmission.init(); 147} );
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.