Create New Item
×
Item Type
File
Folder
Item Name
×
Search file in folder and subfolders...
File Manager
/
wp-content
/
plugins
/
powerpack-elements
/
assets
/
js
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
( function( $ ) { var loadStatus = true; var count = 1; var loader = ''; var total = 0; function equalHeight( slider_wrapper ) { var slickSlider = slider_wrapper.find('.pp-posts-carousel'), equalHeight = slickSlider.data( 'equal-height' ); if ( 'yes' != equalHeight ) { return; } slickSlider.find('.slick-slide').height('auto'); var slickTrack = slickSlider.find('.slick-track'), slickTrackHeight = $(slickTrack).height(); slickSlider.find('.slick-slide').css('height', slickTrackHeight + 'px'); } var PostsHandler = function( $scope, $ ) { var container = $scope.find( '.pp-posts-container' ), selector = $scope.find( '.pp-posts' ), layout = $scope.find( '.pp-posts' ).data( 'layout' ), search = $scope.find( '.pp-post-filters-container' ).data( 'search-form' ), $search_input = $scope.find( '.pp-search-form-input' ), search_action = $scope.find( '.pp-post-filters-container' ).data( 'search-action' ), loader = $scope.find( '.pp-posts-loader' ); post_filter = $scope.find( '.pp-post-filters' ); var coupon_container = $scope.find( '.pp-coupons' ); if ( 'masonry' == layout ) { $scope.imagesLoaded( function(e) { selector.isotope({ layoutMode: layout, itemSelector: '.pp-grid-item-wrap', }); }); } set_posts_count( $scope, 1 ); // Post Filter post_filter.find( '.pp-post-filter' ).off( 'click' ).on( 'click', function() { $( this ).siblings().removeClass( 'pp-filter-current' ); $( this ).addClass( 'pp-filter-current' ); count = 1; if ( coupon_container.length > 0 ) { _postsFilterAjax( $scope, $( this ), 'coupon' ); } else { _postsFilterAjax( $scope, $( this ), '' ); } }); if ( post_filter.length > 0 ) { // Trigger filter by hash parameter in URL. if ( '' !== location.hash ) { var filterHash = location.hash.split('#')[1]; post_filter.find('li[data-filter=".' + filterHash + '"]').trigger('click'); } // Trigger filter on hash change in URL. $( window ).on( 'hashchange', function() { if ( '' !== location.hash ) { var filterHash = location.hash.split('#')[1]; post_filter.find('li[data-filter=".' + filterHash + '"]').trigger('click'); } } ); } if ( 'show' == search ) { $search_input.on({ focus: function focus() { $scope.find( '.pp-search-form' ).addClass('pp-search-form-focus'); }, blur: function blur() { $scope.find( '.pp-search-form' ).removeClass('pp-search-form-focus'); } }); if ( 'instant' == search_action ) { $scope.find('.pp-search-form-input').keyup(debounce(function () { _postsSearchAjax( $scope, $( this ) ); })); // debounce so filtering doesn't happen every millisecond function debounce(pp, threshold) { var timeout; threshold = threshold || 100; return function debounced() { clearTimeout(timeout); var args = arguments; var _this = this; function delayed() { pp.apply(_this, args); } timeout = setTimeout(delayed, threshold); }; } } else if ( 'button-click' == search_action ) { $scope.find( '.pp-search-form-submit' ).on( 'click', function() { _postsSearchAjax( $scope, $( this ) ); }); } } if ( container.find('.pp-posts').hasClass( 'pp-posts-skin-checkerboard' ) && $scope.hasClass( 'pp-equal-height-yes' ) ) { function setEqualHeight() { var elementorBreakpoints = elementorFrontend.config.breakpoints, maxHeight = 0, $height = 'auto'; $scope.find('.pp-post-wrap').each( function() { if( $(this).find('.pp-post-content').outerHeight() > maxHeight ){ maxHeight = $(this).find('.pp-post-content').outerHeight(); } }); if ($(window).width() >= elementorBreakpoints.md) { $height = maxHeight; } $scope.find('.pp-post-wrap').css('height',$height); } if ( container.find('.pp-posts').hasClass( 'pp-posts-height-auto' ) ) { $(setEqualHeight); $(window).resize(setEqualHeight); } } if ( container.hasClass( 'pp-posts-infinite-scroll' ) || coupon_container.hasClass( 'pp-coupons-infinite-scroll' ) ) { var windowHeight50 = jQuery( window ).outerHeight() / 1.25; $( window ).scroll( function () { if ( elementorFrontend.isEditMode() ) { loader.show(); return false; } if ( coupon_container.hasClass( 'pp-coupons-infinite-scroll' ) ) { if ( ( $( window ).scrollTop() + windowHeight50 ) >= ( $scope.find( '.pp-coupons-grid-wrapper:last' ).offset().top ) ) { var $args = { 'page_id': $scope.find( '.pp-coupons-grid-wrapper' ).data('page'), 'widget_id': $scope.data( 'id' ), 'filter': $scope.find( '.pp-filter-current' ).data( 'filter' ), 'taxonomy': $scope.find( '.pp-filter-current' ).data( 'taxonomy' ), 'skin': $scope.find( '.pp-coupons-grid-wrapper' ).data( 'skin' ), 'page_number': $scope.find( '.page-numbers.current' ).next( 'a' ).html(), 'ajax_for': 'coupon' }; total = $scope.find( '.pp-posts-pagination' ).data( 'total' ); if( true == loadStatus ) { if ( count < total ) { loader.show(); _callAjax( $scope, $args, true ); count++; loadStatus = false; } } } } else { if ( ( $( window ).scrollTop() + windowHeight50 ) >= ( $scope.find( '.pp-post:last' ).offset().top ) ) { var $args = { 'page_id': $scope.find( '.pp-posts' ).data('page'), 'widget_id': $scope.data( 'id' ), 'filter': $scope.find( '.pp-filter-current' ).data( 'filter' ), 'taxonomy': $scope.find( '.pp-filter-current' ).data( 'taxonomy' ), 'skin': $scope.find( '.pp-posts' ).data( 'skin' ), 'page_number': $scope.find( '.pp-posts-pagination .current' ).next( 'a' ).html(), 'ajax_for': '' }; total = $scope.find( '.pp-posts-pagination' ).data( 'total' ); if( true == loadStatus ) { if ( count < total ) { loader.show(); _callAjax( $scope, $args, true ); count++; loadStatus = false; } } } } } ); } if ( 'carousel' == layout ) { var $carousel = $scope.find( '.pp-posts-carousel' ).eq( 0 ), $slider_options = JSON.parse( $carousel.attr('data-slider-settings') ); if ( $carousel.length > 0 ) { $scope.imagesLoaded( function() { $carousel.slick($slider_options); }); } $($carousel).on('setPosition', function () { equalHeight($scope); }); } } $( document ).on( 'click', '.pp-post-load-more', function( e ) { $scope = $( this ).closest( '.elementor-widget-pp-posts' ); loader = $scope.find( '.pp-posts-loader' ); //Coupon widget var $coupon_scope = $( this ).closest( '.elementor-widget-pp-coupons' ); coupon_loader = $coupon_scope.find( '.pp-posts-loader' ); e.preventDefault(); if( elementorFrontend.isEditMode() ) { loader.show(); coupon_loader.show(); return false; } if ( $coupon_scope.length > 0 ) { var page_count = get_posts_count( $coupon_scope ), category = $coupon_scope.find( '.pp-filter-current' ).data( 'filter' ), taxonomy = $coupon_scope.find( '.pp-filter-current' ).data( 'taxonomy' ); var $args = { 'page_id': $coupon_scope.find( '.pp-coupons-grid-wrapper' ).data('page'), 'widget_id': $coupon_scope.data( 'id' ), 'filter': ( category ) ? category : '', 'taxonomy': ( taxonomy ) ? taxonomy : '', 'page_number': ( page_count + 1 ), 'ajax_for': 'coupon' }; total = $coupon_scope.find( '.pp-posts-pagination' ).data( 'total' ); if ( true == loadStatus ) { if ( page_count < total ) { coupon_loader.show(); $( this ).hide(); _callAjax( $coupon_scope, $args, true, page_count ); page_count++; loadStatus = false; } } } else { var page_count = get_posts_count( $scope ), category = $scope.find( '.pp-filter-current' ).data( 'filter' ), taxonomy = $scope.find( '.pp-filter-current' ).data( 'taxonomy' ); var $args = { 'page_id': $scope.find( '.pp-posts' ).data('page'), 'widget_id': $scope.data( 'id' ), 'filter': ( category ) ? category : '', 'taxonomy': ( taxonomy ) ? taxonomy : '', 'skin': $scope.find( '.pp-posts' ).data( 'skin' ), 'page_number': ( page_count + 1 ), 'ajax_for': '' }; total = $scope.find( '.pp-posts-pagination' ).data( 'total' ); if ( true == loadStatus ) { if ( page_count < total ) { loader.show(); $( this ).hide(); _callAjax( $scope, $args, true, page_count ); page_count++; loadStatus = false; } } } } ); function get_posts_count( $scope ) { return $scope.find('.pp-post-load-more').data('count'); } function set_posts_count( $scope, count ) { $scope.find('.pp-post-load-more').attr('data-count', count); } $( 'body' ).on( 'click', '.pp-posts-pagination-ajax .page-numbers', function( e ) { $scope = $( this ).closest( '.elementor-widget-pp-posts' ); // Coupon widget var $coupon_scope = $( this ).closest( '.elementor-widget-pp-coupons' ); if ( 'main' == $scope.find( '.pp-posts' ).data( 'query-type' ) ) { return; } e.preventDefault(); if ( $coupon_scope.length > 0 ) { $coupon_scope.find( '.pp-coupons-grid-wrapper .pp-coupon' ).last().after( '<div class="pp-post-loader"><div class="pp-loader"></div><div class="pp-loader-overlay"></div></div>' ); var page_number = 1; var curr = parseInt( $coupon_scope.find( '.pp-posts-pagination .page-numbers.current' ).html() ); if ( $( this ).hasClass( 'next' ) ) { page_number = curr + 1; } else if ( $( this ).hasClass( 'prev' ) ) { page_number = curr - 1; } else { page_number = $( this ).html(); } var $args = { 'page_id': $coupon_scope.find( '.pp-coupons-grid-wrapper' ).data('page'), 'widget_id': $coupon_scope.data( 'id' ), 'filter': $coupon_scope.find( '.pp-filter-current' ).data( 'filter' ), 'taxonomy': $coupon_scope.find( '.pp-filter-current' ).data( 'taxonomy' ), 'page_number': page_number, 'ajax_for': 'coupon' }; $('html, body').animate({ scrollTop: ( ( $coupon_scope.find( '.pp-coupons-wrap' ).offset().top ) - 30 ) }, 'slow'); _callAjax( $coupon_scope, $args ); } else { $scope.find( '.pp-posts .pp-post' ).last().after( '<div class="pp-post-loader"><div class="pp-loader"></div><div class="pp-loader-overlay"></div></div>' ); var page_number = 1; var curr = parseInt( $scope.find( '.pp-posts-pagination .page-numbers.current' ).html() ); if ( $( this ).hasClass( 'next' ) ) { page_number = curr + 1; } else if ( $( this ).hasClass( 'prev' ) ) { page_number = curr - 1; } else { page_number = $( this ).html(); } var $args = { 'page_id': $scope.find( '.pp-posts' ).data('page'), 'widget_id': $scope.data( 'id' ), 'filter': $scope.find( '.pp-filter-current' ).data( 'filter' ), 'taxonomy': $scope.find( '.pp-filter-current' ).data( 'taxonomy' ), 'skin': $scope.find( '.pp-posts' ).data( 'skin' ), 'page_number': page_number, 'ajax_for': '' }; $('html, body').animate({ scrollTop: ( ( $scope.find( '.pp-posts-container' ).offset().top ) - 30 ) }, 'slow'); _callAjax( $scope, $args ); } } ); var _postsFilterAjax = function( $scope, $this, $coupon ) { if ( 'coupon' === $coupon ) { $scope.find( '.pp-coupons-grid-wrapper .pp-grid-item-wrap' ).last().after( '<div class="pp-posts-loader-wrap"><div class="pp-loader"></div><div class="pp-loader-overlay"></div></div>' ); var $args = { 'page_id': $scope.find( '.pp-coupons-grid-wrapper' ).data('page'), 'widget_id': $scope.data( 'id' ), 'filter': $this.data( 'filter' ), 'taxonomy': $this.data( 'taxonomy' ), 'page_number': 1, 'ajax_for': 'coupon' }; _callAjax( $scope, $args ); } else { $scope.find( '.pp-posts .pp-grid-item-wrap' ).last().after( '<div class="pp-posts-loader-wrap"><div class="pp-loader"></div><div class="pp-loader-overlay"></div></div>' ); var $args = { 'page_id': $scope.find( '.pp-posts' ).data('page'), 'widget_id': $scope.data( 'id' ), 'filter': $this.data( 'filter' ), 'taxonomy': $this.data( 'taxonomy' ), 'skin': $scope.find( '.pp-posts' ).data( 'skin' ), 'page_number': 1, 'ajax_for': '' }; _callAjax( $scope, $args ); } } var _postsSearchAjax = function( $scope, $this ) { $scope.find( '.pp-posts .pp-grid-item-wrap' ).last().after( '<div class="pp-posts-loader-wrap"><div class="pp-loader"></div><div class="pp-loader-overlay"></div></div>' ); var $args = { 'page_id': $scope.find( '.pp-posts' ).data('page'), 'widget_id': $scope.data( 'id' ), 'search': $scope.find( '.pp-search-form-input' ).val(), 'page_number': 1 }; _callAjax( $scope, $args ); } var _callAjax = function( $scope, $obj, $append, $count ) { var loader = $scope.find( '.pp-posts-loader' ); $.ajax({ url: pp_posts_script.ajax_url, data: { action: 'pp_get_post', page_id: $obj.page_id, widget_id: $obj.widget_id, category: $obj.filter, search: $obj.search, taxonomy: $obj.taxonomy, skin: $obj.skin, page_number: $obj.page_number, ajax_for: $obj.ajax_for, nonce: pp_posts_script.posts_nonce, }, dataType: 'json', type: 'POST', success: function( data ) { if ( 'coupon' === $obj.ajax_for ) { var sel = $scope.find( '.pp-coupons-grid-wrapper' ); var not_found = $scope.find( '.pp-posts-empty' ); not_found.remove(); if ( $( not_found ).length == 0 ) { $(data.data.not_found).insertBefore(sel); } if ( true == $append ) { var html_str = data.data.html; sel.append( html_str ); } else { sel.html( data.data.html ); } $scope.find( '.pp-posts-pagination-wrap' ).html( data.data.pagination ); // Complete the process 'loadStatus' loadStatus = true; if ( true == $append ) { loader.hide(); $scope.find( '.pp-post-load-more' ).show(); } set_posts_count( $scope, $obj.page_number ); $count = $count + 1; if( $count == total ) { $scope.find( '.pp-post-load-more' ).hide(); } $scope.trigger('posts.rendered'); } else { var sel = $scope.find( '.pp-posts' ); var not_found = $scope.find( '.pp-posts-empty' ); not_found.remove(); if ( $( not_found ).length == 0 ) { $(data.data.not_found).insertBefore(sel); } if ( true == $append ) { var html_str = data.data.html; sel.append( html_str ); } else { sel.html( data.data.html ); } $scope.find( '.pp-posts-pagination-wrap' ).html( data.data.pagination ); var layout = $scope.find( '.pp-posts' ).data( 'layout' ), selector = $scope.find( '.pp-posts' ); if ( 'masonry' == layout ) { $scope.imagesLoaded( function() { selector.isotope( 'destroy' ); selector.isotope({ layoutMode: layout, itemSelector: '.pp-grid-item-wrap', }); }); } // Complete the process 'loadStatus' loadStatus = true; if ( true == $append ) { loader.hide(); $scope.find( '.pp-post-load-more' ).show(); } set_posts_count( $scope, $obj.page_number ); $count = $count + 1; if( $count == total ) { $scope.find( '.pp-post-load-more' ).hide(); } $scope.trigger('posts.rendered'); } } }); } $( window ).on( 'elementor/frontend/init', function () { elementorFrontend.hooks.addAction( 'frontend/element_ready/pp-posts.classic', PostsHandler ); elementorFrontend.hooks.addAction( 'frontend/element_ready/pp-posts.card', PostsHandler ); elementorFrontend.hooks.addAction( 'frontend/element_ready/pp-posts.checkerboard', PostsHandler ); elementorFrontend.hooks.addAction( 'frontend/element_ready/pp-posts.creative', PostsHandler ); elementorFrontend.hooks.addAction( 'frontend/element_ready/pp-posts.event', PostsHandler ); elementorFrontend.hooks.addAction( 'frontend/element_ready/pp-posts.news', PostsHandler ); elementorFrontend.hooks.addAction( 'frontend/element_ready/pp-posts.portfolio', PostsHandler ); elementorFrontend.hooks.addAction( 'frontend/element_ready/pp-posts.overlap', PostsHandler ); elementorFrontend.hooks.addAction( 'frontend/element_ready/pp-posts.template', PostsHandler ); elementorFrontend.hooks.addAction( 'frontend/element_ready/pp-coupons.default', PostsHandler ); }); } )( jQuery );