1var PUMNewsletter; 2 3(function ($) { 4 PUMNewsletter = { 5 6 //Function to submit the subscription form 7 submit: function ($form) { 8 var data = { 9 action: 'pum_sub_form_submit', 10 sub_data: $form.serialize() 11 }; 12 13 $form.find('.sub_form_button').prop('disabled', true); 14 $form.addClass('pum-sub-form-loading'); 15 $form.prepend('<span class="spinner-loader">Loadingâ¦</span>'); 16 17 $.ajax({ 18 url: pum_sub_ajax_object.ajaxurl, 19 type: 'POST', 20 dataType: 'json', 21 data: data 22 }) 23 .done(function (response) { 24 PUMNewsletter.response($form, response); 25 }) 26 .fail(function (jqXHR, textStatus, errorThrown) { 27 console.log("Error: type of " + textStatus + " with message of " + errorThrown); 28 }); 29 }, 30 31 //Function for displaying success or error message 32 response: function ($form, response) { 33 var data = response.data, 34 error, 35 i; 36 37 $form.find('.spinner-loader').remove(); 38 39 if (response.success) { 40 $($form).trigger('pumNewsletterSuccess'); 41 $form.addClass('pum-newsletter-success'); 42 $form.empty(); 43 $form.append('<p class="pum-newsletter-success-msg">' + data.message + '</p>'); 44 } else { 45 //Log any api error message 46 console.log(data.errors); 47 48 //Trigger main error event, add main error class, and reset form 49 $($form).trigger('pumNewsletterError'); 50 $form.addClass('pum-newsletter-error'); 51 $form.removeClass('pum-sub-form-loading'); 52 $form.find('.sub_form_button').prop('disabled', false); 53 54 for (i = 0; data.errors.length > i; i++) { 55 error = data.errors[i]; 56 $form.find('.pum-newsletter-error-msg').append($('<span>').text(error.message)); 57 58 //Trigger event and add class for given error_type 59 switch (error.error_type) { 60 case 'already_subscribed': 61 $($form).trigger('pumNewsletterErrorAlreadySubscribed'); 62 $form.addClass('pum-newsletter-error-already-subscribed'); 63 break; 64 case 'empty_email': 65 $($form).trigger('pumNewsletterErrorEmptyEmail'); 66 $form.addClass('pum-newsletter-error-empty-email'); 67 break; 68 case 'empty_name_email': 69 $($form).trigger('pumNewsletterErrorEmptyNameEmail'); 70 $form.addClass('pum-newsletter-error-empty-name-email'); 71 break; 72 case 'invalid_email': 73 $($form).trigger('pumNewsletterErrorInvalidEmail'); 74 $form.addClass('pum-newsletter-error-invalid-email'); 75 break; 76 default: 77 $($form).trigger('pumNewsletterErrorDefault'); 78 $form.addClass('pum-newsletter-error-default'); 79 } 80 } 81 } 82 } 83 84 }; 85 86 $(document) 87 .on('submit', 'form.pum_sub_form', function (event) { 88 event.preventDefault(); 89 PUMNewsletter.submit($(this)); 90 }); 91 92}(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.