PageSourceSearch

https://palliativeprojects.eu/inspire/wp-content/plugins/wp-event-…/js/event-ajax-filters.min.js?ver=3.4.1

js palliativeprojects.eu collected 2026-09-25 19:13:10 UTC 30,587 bytes, 559 lines download raw bytes

1var EventAjaxFilters = function() {
2    var supportHtml5History;
3    var xmlHttpRequest = [];
4    return {
5        init: function() {
6            Common.logInfo("EventAjaxFilters.init...");
7            jQuery('#search_fromdate, #search_todate').each(function() {
8                var dateFormat = jQuery(this).attr('data-date-format') || 'mm/dd/yy';
9        
10                jQuery(this).datepicker({
11                    dateFormat: dateFormat.replace('yy', 'yy').replace('mm', 'mm').replace('dd', 'dd'),
12                    changeMonth: true,
13                    changeYear: true
14                });
15            });
16            // After deactivate calendar addon load box layout as default 
17            if(Common.getLayout()==="calendar-layout" ){
18				jQuery('.event_listings').on('update_event_listings', EventAjaxFilters.actions.getEventListings);
19				jQuery("#wpem-event-box-layout").addClass("wpem-active-layout");
20				Common.setLayout("box-layout"); 
21			}
22
23            jQuery("#wpem-event-filter-version-2-filter-action").click(function(){
24                jQuery("#wpem-event-filter-version-2-dropdown").toggle();
25            });
26
27            if (jQuery(".showing_applied_filters").hasClass("showing-applied-filters")) {
28                jQuery(".showing_applied_filters").show();
29            }else{
30                jQuery(".showing_applied_filters").hide();
31            }
32
33            //set datepicker default range 
34            var form = jQuery(this).closest('form');
35            form.find(':input[name^="search_datetimes"]').not(':input[type="hidden"]').val(0).trigger('chosen:updated');
36
37            //more filters
38             if (jQuery('.wpem-search-event-more-filter').length > 0) {
39                //hide advance filter
40                jQuery('.wpem-event-advance-filter').hide();
41                jQuery('.wpem-search-event-more-filter').on('click',function(){
42                    jQuery('.wpem-event-advance-filter').slideToggle( "slow");
43                })
44             }
45             
46            if (jQuery.isFunction(jQuery.fn.chosen)) {
47                if (event_manager_ajax_filters.is_rtl == 1) {
48                    jQuery('select[name^="search_datetimes"]').addClass('chosen-rtl');
49                    jQuery('select[name^="search_categories"]').addClass('chosen-rtl');
50                    jQuery('select[name^="search_event_types"]').addClass('chosen-rtl');
51                    jQuery('select[name^="search_ticket_prices"]').addClass('chosen-rtl')
52                }
53                jQuery('select[name^="search_datetimes"]').chosen({
54                    search_contains: true
55                });
56                jQuery('select[name^="search_categories"]').chosen({
57                    search_contains: true
58                });
59                jQuery('select[name^="search_event_types"]').chosen({
60                    search_contains: true
61                });
62                jQuery('select[name^="search_ticket_prices"]').chosen({
63                    search_contains: true
64                })
65            }
66            if (window.history && window.history.pushState) {
67                supportHtml5History = true
68            } else {
69                supportHtml5History = false
70            }
71            jQuery(document).ready(EventAjaxFilters.actions.windowLoad);
72
73            jQuery(document.body).on('click', '.load_more_upcoming_events', EventAjaxFilters.actions.loadMoreUpcomingEvents);
74            jQuery(document.body).on('click', '.load_more_past_events', EventAjaxFilters.actions.loadMorePastEvents);
75            jQuery(document.body).on('click', '.load_more_events', EventAjaxFilters.actions.loadMoreEvents);
76            jQuery('#event_filters').on('click', '.reset', EventAjaxFilters.actions.eventAjaxFiltersReset); 
77            jQuery('div.event_listings_main').on('click', '.event-manager-pagination a', EventAjaxFilters.actions.eventPagination);
78            jQuery('.event_listings').on('update_event_listings', EventAjaxFilters.actions.getEventListings);
79            if (jQuery('.event_listings_upcoming').length > 0) {
80                jQuery('#search_keywords, #search_location, #search_datetimes, #search_categories, #search_event_types, #search_ticket_prices, .event-manager-filter').change(EventAjaxFilters.actions.getUpcomingEvents);
81            } else {
82                jQuery('#search_keywords, #search_location, #search_datetimes, #search_categories, #search_event_types, #search_ticket_prices, .event-manager-filter').change(function() {
83                    var target = jQuery(this).closest('div.event_listings');
84                    target.triggerHandler('update_event_listings', [1, false]);
85                    EventAjaxFilters.actions.event_manager_store_state(target, 1)
86                });
87            }
88            jQuery('.wpem-event-filter-version-2-search-btn').change(function() {
89                var target = jQuery(this).closest('div.event_listings');
90                target.triggerHandler('update_event_listings', [1, false]);
91                EventAjaxFilters.actions.event_manager_store_state(target, 1)
92            }).on("click", function(e) {
93                jQuery("#wpem-event-filter-version-2-dropdown").toggle(false);
94                EventAjaxFilters.actions.getEventListings(e);
95                if (e.which === 13) {
96                    jQuery(this).trigger('change')
97                }
98            });
99            
100        },
101        
102        actions: {
103            event_manager_store_state: function(target, page) {
104           
105                Common.logInfo("EventAjaxFilters.event_manager_store_state...");
106                var location = document.location.href.split('#')[0];
107                var url = document.location.href;
108                if (url.match(/\/page\/\d+/)) {
109                    url = url.replace(/(\/page\/)\d+/, '/page/' + page);
110                    }else{
111                    if (url.endsWith('/')) {
112                        url += 'page/' + page;
113                    }else{
114                        url += '/page/' + page;
115                    }
116                }
117               
118                if (supportHtml5History) {
119                    var form = target.find('.event_filters');
120                    var data = jQuery(form).serialize();
121                    var index = jQuery('div.event_listings').index(target);
122                    window.history.replaceState({
123                        id: 'event_manager_state',
124                        page: page,
125                        data: data,
126                        index: index
127                    }, '',location)
128                }
129            },
130            windowLoad: function(event) {
131                Common.logInfo("EventAjaxFilters.actions.windowLoad...");
132                jQuery('.event_filters').each(function() {
133                    var target = jQuery(this).closest('div.event_listings');
134                    var form = target.find('.event_filters');
135                    var inital_page = 1;
136                    var index = jQuery('div.event_listings').index(target);
137                    if (window.history.state && window.location.hash) {
138                        var state = window.history.state;
139                        if (state.id && 'event_manager_state' === state.id && index == state.index) {
140                           //set initial_page with 1 on page refresh
141                            inital_page = 1;
142                            form.deserialize(state.data);
143                            form.find(':input[name^="search_datetimes"]').not(':input[type="hidden"]').trigger('chosen:updated');
144                            form.find(':input[name^="search_categories"]').not(':input[type="hidden"]').trigger('chosen:updated');
145                            form.find(':input[name^="search_event_types"]').not(':input[type="hidden"]').trigger('chosen:updated');
146                            form.find(':input[name^="search_ticket_prices"]').not(':input[type="hidden"]').trigger('chosen:updated')
147                        }
148                    }
149                    target.triggerHandler('update_event_listings', [inital_page, false])
150                });
151            },
152            eventAjaxFiltersReset: function(event) {
153                Common.logInfo("EventAjaxFilters.actions.eventAjaxFiltersReset...");
154                
155                var target = jQuery(this).closest('div.event_listings');
156                var form = jQuery(this).closest('form');
157                form.find(':input[name="search_keywords"], :input[name="search_location"], .event-manager-filter').not(':input[type="hidden"]').val('').trigger('chosen:updated');
158                form.find(':input[name^="search_fromdate"]').not(':input[type="hidden"]').val('').trigger('chosen:updated');
159                form.find(':input[name^="search_todate"]').not(':input[type="hidden"]').val('').trigger('chosen:updated');
160                form.find(':input[name^="search_datetimes"]').not(':input[type="hidden"]').val('').trigger('chosen:updated');
161                form.find(':input[name^="search_categories"]').not(':input[type="hidden"]').val('').trigger('chosen:updated');
162                form.find(':input[name^="search_event_types"]').not(':input[type="hidden"]').val('').trigger('chosen:updated');
163                form.find(':input[name^="search_ticket_prices"]').not(':input[type="hidden"]').val('').trigger('chosen:updated');
164                target.triggerHandler('reset');
165                target.triggerHandler('update_event_listings', [1, false]);
166                EventAjaxFilters.actions.event_manager_store_state(target, 1);
167                return false;
168                event.preventDefault()
169            },
170
171            loadMoreEvents: function(event) {
172                event.preventDefault();
173
174                var target = jQuery(this).closest('div.event_listings');
175                var page = parseInt(jQuery(this).data('page') || 1);
176                var loading_previous = false;
177                jQuery(this).parent().addClass('wpem-loading');               
178                page = page + 1;
179                jQuery(this).data('page', page);
180                EventAjaxFilters.actions.event_manager_store_state(target, page);
181                target.triggerHandler('update_event_listings', [page, true, loading_previous]);
182                return false;
183            },
184
185            eventPagination: function(event) {
186                event.preventDefault();
187                var target = jQuery(this).closest('div.event_listings');
188                var page = jQuery(this).data('page');
189                EventAjaxFilters.actions.event_manager_store_state(target, page);
190                target.triggerHandler('update_event_listings', [page, false, false]);
191            },
192            
193            getEventListings: function(event, page=1, append, loading_previous) {
194                event.preventDefault();
195                Common.logInfo("EventAjaxFilters.actions.getEventListings...");
196
197                var data = '';
198                var target = jQuery(event.currentTarget || this).closest('div.event_listings');
199                var form = target.find('.event_filters');
200                var filters_bar = target.find('.showing_applied_filters');
201                var results = target.find('.event_listings');
202                var per_page = target.data('per_page');
203                var orderby = target.data('orderby');
204                var order = target.data('order');
205                var featured = target.data('featured');
206                var cancelled = target.data('cancelled');
207                var event_online = target.data('event_online');
208                var index = jQuery('div.event_listings').index(this);
209                target.find('.load_more_events').hide();
210                if (xmlHttpRequest[index]) {
211                    xmlHttpRequest[index].abort()
212                }
213                if (!append) {
214                    
215                    jQuery(results).parent().addClass('wpem-loading');
216                    jQuery('div.event_listing, div.no_event_listings_found', results).css('visibility', 'hidden');         
217                    target.find('.load_more_events').data('page', page);
218                }
219
220                if (true == target.data('show_filters')) {
221                    var filter_event_type = [];
222
223                    if(form.find(':input[name^="search_datetimes"]').length > 0) {
224                        var datetimes = form.find(':input[name^="search_datetimes"]').map(function () {
225                            return jQuery(this).val()
226                        }).get();
227                    } else {
228                        var startDate = form.find('#search_fromdate').val();
229                        var endDate = form.find('#search_todate').val();
230
231                        var datetimes = (startDate || endDate) ? JSON.stringify({ start: startDate, end: endDate }) : '';
232                        var datetimes = datetimes ? { '': datetimes } : {};
233                    }
234
235                    if(jQuery( 'input.date_range_picker').length > 0) {
236                        jQuery( 'input.date_range_picker').daterangepicker();
237                    }
238                    var categories = form.find(':input[name^="search_categories"]').map(function() {
239                        return jQuery(this).val()
240                    }).get();
241                    var event_types = form.find(':input[name^="search_event_types"]').map(function() {
242                        return jQuery(this).val()
243                    }).get();
244                    var ticket_prices = form.find(':input[name^="search_ticket_prices"]').map(function() {
245                        return jQuery(this).val()
246                    }).get();
247                    var keywords = '';
248                    var location = '';
249                    var $keywords = form.find(':input[name="search_keywords"]');
250                    var $location = form.find(':input[name="search_location"]');
251                    if ($keywords.val() !== $keywords.attr('placeholder')) {
252                        keywords = $keywords.val()
253                    }
254                    if ($location.val() !== $location.attr('placeholder')) {
255                        location = $location.val()
256                    }
257
258                    if(jQuery( ':input[name="event_online"]').length > 0){
259                        if(jQuery(':input[name="event_online"]').prop("checked") == true) {
260                            var event_online = 'true';
261                        }else{
262                            var event_online = '';
263                        }
264                    }
265
266                    data = {
267                        lang: event_manager_ajax_filters.lang,
268                        search_keywords: keywords,
269                        search_location: location,
270                        search_datetimes: datetimes,
271                        search_categories: categories,
272                        search_event_types: event_types,
273                        search_ticket_prices: ticket_prices,
274                        per_page: per_page,
275                        orderby: orderby,
276                        order: order,
277                        page: page,
278                        featured: featured,
279                        cancelled: cancelled,
280                        event_online: event_online,
281                        show_pagination: target.data('show_pagination'),
282                        form_data: form.serialize(),
283                        wpem_filter_nonce: form.find('input[name="wpem_filter_nonce"]').val()
284                    }
285                } else {
286                    
287                    var keywords = target.data('keywords');
288                    var location = target.data('location');
289                    if(form.find(':input[name^="search_datetimes"]').length > 0) {
290                        var datetimes = JSON.stringify(target.data('datetimes'));
291                    } else {
292
293                    }
294                    var categories = target.data('categories');
295                    var event_types = target.data('event_types');
296                    var ticket_prices = target.data('ticket_prices');
297                    if (categories) {
298                        categories = categories.split(',')
299                    }
300                    if (event_types) {
301                        event_types = event_types.split(',')
302                    }
303                    data = {
304                        lang: event_manager_ajax_filters.lang,
305                        search_keywords: keywords,
306                        search_location: location,
307                        search_datetimes: datetimes,
308                        search_categories: categories,
309                        search_event_types: event_types,
310                        search_ticket_prices: ticket_prices,
311                        per_page: per_page,
312                        orderby: orderby,
313                        order: order,
314                        page: page,
315                        featured: featured,
316                        cancelled: cancelled,
317                        event_online: event_online,
318                        show_pagination: target.data('show_pagination'),
319                        wpem_filter_nonce: form.find('input[name="wpem_filter_nonce"]').val()
320                    }
321                }
322                xmlHttpRequest[index] = jQuery.ajax({
323                    type: 'POST',
324                    url: event_manager_ajax_filters.ajax_url.toString().replace("%%endpoint%%", "get_listings"),
325                    data: data,
326                    success: function(result) {
327                        if (result) {
328                            try {
329                                jQuery('.no_event_listings_found').remove();
330                                if (result.filter_value) {
331                                    jQuery(filters_bar).show().html('<span>' + result.filter_value + '</span>' + result.showing_links)
332                                } else {
333                                    jQuery(filters_bar).hide()
334                                }
335                                if (result.showing_applied_filters) {
336                                    jQuery(filters_bar).addClass('showing-applied-filters');
337                                } else {
338                                    jQuery(filters_bar).removeClass('showing-applied-filters');
339                                }
340                                if (result.html) {
341                                    if (append && loading_previous) {
342                                        jQuery(results).prepend(result.html);
343										if(jQuery('div.google-map-loadmore').length > 0) {
344											jQuery('div .google-map-loadmore').not('div.google-map-loadmore:first').remove();
345										}
346                                    } else if (append) { 
347									   jQuery(results).append(result.html);
348									    if(jQuery('div.google-map-loadmore').length > 0){
349											jQuery('div .google-map-loadmore').not('div.google-map-loadmore:first').remove();
350										}
351                                    } else {
352                                        jQuery(results).html(result.html);
353                                    }
354                                }
355                                if (true == target.data('show_pagination')) {
356                                  
357                                    if (result.pagination) {
358                                        jQuery('.event-manager-pagination').html(result.pagination)
359                                    }
360                                } else {
361                                    localStorage.setItem( 'total_event_page', result.max_num_pages);
362                                    localStorage.setItem( 'current_event_page', page);
363                                    if (!result.found_events || result.max_num_pages <= page) {
364                                        target.find('.load_more_events:not(.load_previous)').hide();
365                                    } else if (!loading_previous) {
366                                        target.find('.load_more_events').show();
367                                    }
368                                   target.find('.load_more_events_loader').removeClass('wpem-loading');
369                                    jQuery('li.event_listing', results).css('visibility', 'visible')
370                                }
371                                jQuery(results).parent().removeClass('wpem-loading');
372                                target.triggerHandler('updated_results', result)
373                            } catch (err) {
374                                if (window.console) {
375                                    Common.logError(err)
376                                }
377                            }
378                        }
379                    },
380                    error: function(jqXHR, textStatus, error) {
381                        if (window.console && 'abort' !== textStatus) {
382                            Common.logError(textStatus + ': ' + error)
383                        }
384                    },
385                    statusCode: {
386                        404: function() {
387                            if (window.console) {
388                                Common.logError("Error 404: Ajax Endpoint cannot be reached. Go to Settings > Permalinks and save to resolve.")
389                            }
390                        }
391                    }
392                });
393                event.preventDefault();
394            },
395
396            /**
397             * this function is used to load more upcoming events
398             * @param {*} event 
399             */
400            loadMoreUpcomingEvents: function(event){
401                if(jQuery('#upcoming_event_listing').length > 0) {
402                    event.preventDefault();
403                    var target = jQuery(this).closest('div#upcoming_event_listing');
404                    jQuery(this).parent().addClass('wpem-loading');
405                    var search_keywords = jQuery('#search_keywords').val();
406                    var search_location = jQuery('#search_location').val();
407                    var search_categories = jQuery('#search_categories').val();
408                    var search_event_types = jQuery('#search_event_types').val();
409                    var search_datetimes = jQuery('#search_datetimes').val();
410                    var order = jQuery('#upcoming_event_listing').data('order');
411                    var orderby = jQuery('#upcoming_event_listing').data('orderby');
412                    var currentPage = jQuery('.load_more_upcoming_events').attr('data-page');
413                    var per_page = jQuery('#per-page-settings').data('per-page');
414                    jQuery.ajax({
415                        type: 'POST',
416                        url: event_manager_ajax_filters.ajax_url.toString().replace("%%endpoint%%", "get_upcoming_listings"),
417                        data: {
418                            action: 'get_upcoming_listings',
419                            search_keywords: search_keywords,
420                            search_location: search_location,
421                            search_datetimes: search_datetimes,
422                            search_categories: search_categories,
423                            search_event_types: search_event_types,
424                            order: order,
425                            orderby: orderby,
426                            value: currentPage,
427                            per_page: per_page,
428                        },
429                        success: function(response) {
430                            target.find('#load_more_events_loader').removeClass('wpem-loading');
431                            if (response.success) {
432                                jQuery('.event_listings').append(response.data.events_html);                            
433                                var nextPage = parseInt(currentPage) + 1;
434                                jQuery('#load_more_events').attr('data-page', nextPage);
435                                if (response.data.no_more_events===true) {
436                                    jQuery('#load_more_events').hide();
437                                }
438                            } else {
439                                console.error('Failed to load events:', response.data.error);
440                                if (response.data.error === 'No more events found.') {
441                                    jQuery('#load_more_events').hide();
442                                }
443                            }
444                        },
445                        error: function(xhr, status, error) {
446                            console.error('AJAX Error:', status, error);
447                        }
448                    });
449                };                
450            },
451
452            /**
453             * this function is used to load more upcoming events
454             * @param {*} event 
455             */
456            loadMorePastEvents: function(event){
457                if(jQuery('.past_event_listings').length > 0) {
458                    event.preventDefault();
459                    jQuery(this).parent().addClass('wpem-loading');
460                    var search_keywords = jQuery('#search_keywords').val();
461                    var search_location = jQuery('#search_location').val();
462                    var search_categories = jQuery('#search_categories').val();
463                    var search_event_types = jQuery('#search_event_types').val();
464                    var search_datetimes = jQuery('#search_datetimes').val();
465                    var currentPage = jQuery('.load_more_past_events').attr('data-page');
466                    var per_page = jQuery('#per-page-settings').data('per-page');
467                    jQuery.ajax({
468                        type: 'POST',
469                        url: event_manager_ajax_filters.ajax_url.toString().replace("%%endpoint%%", "load_more_past_listings"),
470                        data: {
471                            action: 'load_more_past_listings',
472                            search_keywords: search_keywords,
473                            search_location: search_location,
474                            search_datetimes: search_datetimes,
475                            search_categories: search_categories,
476                            search_event_types: search_event_types,
477                            value: currentPage,
478                            per_page: per_page,
479                            _wpnonce: event_manager_ajax_filters.nonce,
480                        },
481                        success: function(response) {
482                           jQuery('#load_more_events_loader').removeClass('wpem-loading');
483                            if (response.success) {
484                                jQuery('.event_listings').append(response.data.events_html);                            
485                                var nextPage = parseInt(currentPage) + 1;
486                                jQuery('#load_more_events').attr('data-page', nextPage);
487                                if (response.data.no_more_events===true) {
488                                    jQuery('#load_more_events').hide();
489                                }
490                            } else {
491                                console.error('Failed to load events:', response.data.error);
492                                if (response.data.error === 'No more events found.') {
493                                    jQuery('#load_more_events').hide();
494                                }
495                            }
496                        },
497                        error: function(xhr, status, error) {
498                            console.error('AJAX Error:', status, error);
499                        }
500                    });
501                };                
502            },
503
504            /**
505             * this function is used to get upcoming events
506             * @param {*} event 
507             */
508            getUpcomingEvents: function(event){
509                event.preventDefault();
510                var search_keywords = jQuery('#search_keywords').val();
511                var search_location = jQuery('#search_location').val();
512                var search_categories = jQuery('#search_categories').val();
513                var search_event_types = jQuery('#search_event_types').val();
514                var search_datetimes = jQuery('#search_datetimes').val();
515                var order = jQuery('#upcoming_event_listing').data('order');
516                var orderby = jQuery('#upcoming_event_listing').data('orderby');
517                var currentPage = jQuery('#upcoming_event_listing').attr('data-page');
518                var per_page = jQuery('#per-page-settings').data('per-page');
519                jQuery.ajax({
520                    type: 'POST',
521                    url: event_manager_ajax_filters.ajax_url.toString().replace("%%endpoint%%", "get_upcoming_listings"),
522                    data: {
523                        action: 'get_upcoming_listings',
524                        search_keywords: search_keywords,
525                        search_location: search_location,
526                        search_datetimes: search_datetimes,
527                        search_categories: search_categories,
528                        search_event_types: search_event_types,
529                        order: order,
530                        orderby: orderby,
531                        value: currentPage,
532                        per_page: per_page,
533                    },
534                    success: function(response) {
535                        if (response.success) {
536                            jQuery('#event-listing-view').html(response.data.events_html);
537                            jQuery('#event-listing-view').data('locked', true);
538                            var nextPage = parseInt(currentPage)+1;
539                            jQuery('#load_more_events').attr('data-page', nextPage);
540                            if (response.data.no_more_events===true) {
541                                jQuery('#load_more_events').hide();
542                            }      
543                        } else {
544                            console.error('Failed to load events:', response.data.error);
545                             jQuery('#load_more_events').hide();
546                        }
547                    },
548                    error: function(xhr, status, error) {
549                        console.error('AJAX Error:', status, error);
550                    }
551                });
552            },
553        }
554    }
555};
556EventAjaxFilters = EventAjaxFilters();
557jQuery(document).ready(function($) {
558    EventAjaxFilters.init()
559});

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.