PageSourceSearch

https://parakletos.pl/wp-content/plugins/wp-event-manager/assets/js/event-ajax-filters.min.js?ver=3.3.3

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

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.