1(function( $ ) { 2 'use strict'; 3 4 /** 5 * All of the code for your public-facing JavaScript source 6 * should reside in this file. 7 * 8 * Note: It has been assumed you will write jQuery code here, so the 9 * $ function reference has been prepared for usage within the scope 10 * of this function. 11 * 12 * This enables you to define handlers, for when the DOM is ready: 13 */ 14 $(function() { 15 16 // Show eventilla subscription form on click. 17 $( "a.show-eventilla-form" ).click(function(e) { 18 e.preventDefault(); 19 var classNames = $(this).attr('class').split(' '); 20 if ($.inArray("redirect", classNames) === -1) { 21 var form_id = $(this).attr('href'); 22 $(form_id).toggle(); 23 $('form').hide(); 24 } else { 25 window.location.replace($(this).attr('href')); 26 } 27 }); 28 29 $( "a" ).on('click', function (e) { 30 if ($(this).text() == "Register now") { 31 e.preventDefault(); 32 $('.eventilla-single-event').css('display', 'block'); 33 $('#registrants').hide(); 34 var uid = $(this)[0].pathname.split("/"); 35 uid = uid[uid.length - 1]; 36 var elements = document.getElementsByClassName(uid); 37 var childElem = elements[0].childNodes; 38 var forms = []; 39 var count = 0; 40 for (var i = 0; i < childElem.length; i++) { 41 if (childElem[i].id == "attend") { 42 forms[count] = childElem[i]; 43 forms[count].style.display = 'none'; 44 count++; 45 } 46 } 47 elements[0].className = uid; 48 forms[0].style.display = 'block'; 49 } 50 }); 51 52 $( "a.btn-danger" ).on('click', function (e) { 53 e.preventDefault(); 54 $(this)[0].parentElement.parentElement.style.display = 'none' 55 }); 56 57 $('#orderTickets').submit(function(e) { 58 59 e.preventDefault(); 60 61 var user_input = $(this).serializeArray(); 62 var pressed_button_id = $(document.activeElement).attr('id'); 63 //var user_input_last = $.trim(user_input.split(',').pop()); 64 65 $.ajax({ 66 url: eventillajax.ajax_url, 67 type: 'POST', 68 data: { 69 'form': 'ticket', 70 'user_input': user_input, 71 'action': 'event_registration', 72 'security': eventillajax.ajax_nonce, 73 'pressed_button_id': pressed_button_id 74 }, 75 success:function(data) { 76 console.log(data); 77 }, 78 error: function(errorThrown){ 79 console.log(errorThrown); 80 } 81 }); 82 83 }); 84 85 $("a.eventilla-form").click(function (e) { 86 e.preventDefault(); 87 var classNames = $(this).attr('class').split(' '); 88 if ($.inArray("redirect", classNames) === -1) { 89 $('form').hide(); 90 var ticket_id = $(this).attr('href'); 91 $('.'+ticket_id).css( "display", "block" ); 92 } else { 93 window.location.replace($(this).attr('href')); 94 } 95 }); 96 97 /* 98 * Hand single Eventilla #attend form submission 99 */ 100 $('.eventilla-form #attend').submit(function(e) { 101 102 e.preventDefault(); 103 104 // Clear possible form errors/notices/success from previous runs. 105 $('.eventilla_error').removeClass('eventilla_error'); 106 $('p.eventilla_error_msg').remove(); 107 $('p.eventilla_notice_msg').remove(); 108 $('p.eventilla_success_msg').remove(); 109 110 111 112 var user_input = $(this).serializeArray(); 113 var pressed_button_id = $(document.activeElement).attr('id'); 114 var eventilla_id = $(this).attr('action'); 115 eventilla_id = eventilla_id.substr(eventilla_id.lastIndexOf('/') + 1); 116 var ticket_id = $(this)[0].className; 117 118 $.ajax({ 119 url: eventillajax.ajax_url, 120 type: 'POST', 121 data: { 122 'form': 'registration', 123 'user_input': user_input, 124 'event_id': eventilla_id, 125 'form_ticket': ticket_id, 126 'action': 'event_registration', 127 'security': eventillajax.ajax_nonce, 128 'pressed_button_id': pressed_button_id 129 }, 130 beforeSend:function(data) { 131 $(this).find(':input').prop('disabled', true); 132 }, 133 success:function(data) { 134 $(this).find(':input').prop('disabled', false); 135 $(".msg-success").show(); 136 $(".msg-success").text("Good"); 137 138 var json = jQuery.parseJSON(data); 139 140 var error_msg_ob = json.error_messages; 141 142 if( 143 typeof(json) === 'object' && 144 'registration' in json && 145 'errors' in json.registration 146 ) { 147 var error_msg_ob = json.registration.errors; 148 $.each( error_msg_ob, function(i, val){ 149 150 var err_key = i; 151 var err_msg = val; 152 153 // For some reason fields email, firstname and lastname follow different pattern and have containers set differently. 154 if( err_key === 'email' || err_key === 'firstname' || err_key === 'lastname' ){ 155 156 $('input[name="0_' + err_key + '"]' ).parent().addClass('eventilla_error'); 157 $('input[name="0_' + err_key + '"]' ).after('<p class="eventilla_error_msg">' + err_msg + '</p>' ); 158 159 160 } /*else if( err_key.length > 0 ) { 161 162 $('#field_div_0_' + err_key).addClass('eventilla_error'); 163 $('input[name="0_' + err_key + '"]' ).after('<p class="eventilla_error_msg">' + err_msg + '</p>' ); 164 165 } */else { 166 167 $('#eventille_event_' + eventilla_id + ' .notice').show( function(e){ 168 $(this).append('<p class="eventilla_notice_msg">' + err_msg + '</p>'); 169 }); 170 $('#eventille_event_' + eventilla_id + ' form').after('<p class="eventilla_notice_msg">' + err_msg + '</p>'); 171 172 } 173 174 }); 175 } 176 177 if( 178 typeof(json) === 'object' && 179 'registration' in json && 180 'link' in json.registration && 181 'type' in json.registration.link && 182 json.registration.link.type === 'return' 183 ) { 184 var message = 'You have registered. <a href="' + json.registration.link.href + '">Summary page</a>'; 185 json.registration.hasOwnProperty('success') ? message = json.registration.success : ''; 186 187 // var success_msg = json.success_msg; 188 $('#eventille_event_' + eventilla_id + ' .success').show( function(e){ 189 $(this).append('<p class="eventilla_success_msg">' + message + '</p>'); 190 }); 191 $('#eventille_event_' + eventilla_id + ' form').after('<p class="eventilla_success_msg">' + message + '</p>'); 192 193 $('#eventille_event_' + eventilla_id + ' form').trigger('reset'); 194 } 195 196 197 }, 198 error: function(errorThrown){ 199 console.log(errorThrown); 200 201 $(".msg-error").text("Error"); 202 $(".msg-error").show(); 203 $(this).find(':input').prop('disabled', false); 204 } 205 }); 206 207 }); 208 209 }); 210 /* 211 * When the window is loaded: 212 */ 213 $( window ).on("load", function() { 214 if ($('tr.event-content').length > 0) { 215 $('.eventilla-single-event').hide(); 216 } 217 }); 218 /* 219 * ...and/or other possibilities. 220 * 221 * Ideally, it is not considered best practise to attach more than a 222 * single DOM-ready or window-load handler for a particular page. 223 * Although scripts in the WordPress core, Plugins and Themes may be 224 * practising this, we should strive to set a better example in our own work. 225 */ 226 227})( 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.