1jQuery(document).ready(function($) { 2 $('#loading-spinner').show(); 3 $('#past-loading-spinner').hide(); 4 5 // Track AJAX call completion 6 var pastEventsLoaded = false; 7 var upcomingEventsLoaded = false; 8 9 // Function to check loading status 10 function checkLoadingStatus() { 11 if (pastEventsLoaded && upcomingEventsLoaded) { 12 $('#past-loading-spinner').hide(); 13 } 14 } 15 16 // AJAX call to load upcoming events 17 var dataUpcomingEvents = { 18 'action': 'load_upcoming_events', 19 'user_id': ajax_object.user_id, 20 }; 21 22 $.post(ajax_object.ajax_url, dataUpcomingEvents, function(response) { 23 $('#upcoming-events-container').html(response); 24 $('#loading-spinner').hide(); 25 $('#past-loading-spinner').show(); // Show spinner before past events loading 26 upcomingEventsLoaded = true; 27 checkLoadingStatus(); 28 }).fail(function(jqXHR, textStatus, errorThrown) { 29 console.error("Error loading upcoming events:", textStatus, errorThrown); 30 }); 31 32 // AJAX call to load past events 33 var dataPastEvents = { 34 'action': 'load_past_events', 35 'user_id': ajax_object.user_id, 36 }; 37 38 $.post(ajax_object.ajax_url, dataPastEvents, function(response) { 39 $('#past-events-container').html(response); 40 pastEventsLoaded = true; 41 checkLoadingStatus(); 42 }).fail(function(jqXHR, textStatus, errorThrown) { 43 $('#past-loading-spinner').hide(); 44 console.error("Error loading past events:", textStatus, errorThrown); 45 }); 46});
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.