brilliantmojo

Pagination.js

Dec 29th, 2020
1,335
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // Make loader flash so all resolutions get inView effect
  2. var LoaderPaused = false; // 'Pause' flashing loader when unnecessary (not paused by default)
  3.  
  4. function checkLoader() {
  5.  
  6.     if(!LoaderPaused) {
  7.         $('#Loader').is(':visible') ? $('#Loader').hide() : $('#Loader').show();
  8.     } else {
  9.         $('#Loader').hide();
  10.     }
  11.  
  12. }
  13.  
  14. clearInterval(InventoryLoader); // Reset loader after cleared
  15. var InventoryLoader = setInterval(checkLoader, 500); // Loader will flash every 500ms
  16.  
  17. // Get values of checked filters when 'selected'
  18. function GetFilter(event) {
  19.  
  20.     var filter = [];
  21.  
  22.     $('.' + event + ':checked').each(function() {
  23.         filter.push($(this).val());
  24.     });
  25.  
  26.     return filter;
  27.  
  28. }
  29.  
  30. function Inventory() {
  31.  
  32.     wtRange(); // Run jQuery UI function in Filters.js
  33.  
  34.     // When Loader is inView begin delegating paging [with filters]
  35.     $(document).on('inview', '#Loader', function(event, isInView) {
  36.        
  37.         if(isInView) {
  38.  
  39.             var NextPage = parseInt($('#PageNo').val()) + 1; // Add 1 to the page number
  40.            
  41.             // Filters
  42.             var ItemSearch = $('#ItemSearch').val();
  43.             var minimum_wt = $('#wtMin').val();
  44.             var maximum_wt = $('#wtMax').val();
  45.             var shape = GetFilter('shape');
  46.             var color = GetFilter('color');
  47.             var enhancement = GetFilter('enhancement');
  48.             var matching = GetFilter('matching');
  49.            
  50.             $.ajax({
  51.                
  52.                 url: '/vendors/pages/Inventory/Pagination.php',
  53.                 type: 'POST',
  54.                 data:
  55.  
  56.                     (ItemSearch == 0) ? {
  57.                         PageNo: NextPage,
  58.                         minimum_wt: minimum_wt,
  59.                         maximum_wt: maximum_wt,
  60.                         shape: shape,
  61.                         color: color,
  62.                         enhancement: enhancement,
  63.                         matching: matching
  64.                     } : {
  65.                         PageNo: NextPage,
  66.                         ItemSearch: ItemSearch
  67.                     },
  68.                    
  69.                 dataType: 'HTML',
  70.                 async: true,
  71.                 cache: false,
  72.                 error:
  73.        
  74.                     function(strError) {
  75.                        
  76.                         if(strError == 'timeout') {
  77.                            
  78.                             alert('Seems like there was an error loading the next page.'); // Do something. Try again perhaps?
  79.                        
  80.                         }
  81.                        
  82.                     },
  83.                    
  84.                 success:
  85.                
  86.                     function(data) {
  87.                        
  88.                         $('#PageNo').val(NextPage);
  89.  
  90.                         $('#StoneContainer').append(data);
  91.  
  92.                         // If each .Stone's data attribute's contents both match then hide #Loader
  93.                         $('.Stone').each(function(index, element) {
  94.  
  95.                             // Elements found on Listing.php
  96.                             var TotalRowCount = $('[data-totalrows]').data('totalrows');
  97.                             var ListingCount = $('[data-listing]').data('listing');
  98.                        
  99.                             if(TotalRowCount != ListingCount) {
  100.                                 LoaderPaused = false; // If there are more listings flash loader
  101.                             } else {
  102.                                 LoaderPaused = true; // If there are no more listings hide loader
  103.                             }
  104.  
  105.                             $('.Error').hide(); // Hide .Error so data doesn't show with .Error
  106.  
  107.                         });
  108.  
  109.                         // If data has .Error hide Loader
  110.                         if(data.indexOf('class="Error"') > -1) {
  111.                            
  112.                             LoaderPaused = true; // Hide the loader
  113.  
  114.                             // Hide Loader after 500ms
  115.                             setTimeout(function() {
  116.                                 $('#Loader').hide();
  117.                             }, 500);
  118.  
  119.                             $('.Error').slice(1).remove(); // Only show once
  120.                            
  121.                         }
  122.  
  123.                     },
  124.                
  125.                 timeout: 3000
  126.                
  127.             });
  128.            
  129.         }
  130.        
  131.     });
  132.  
  133. }
RAW Paste Data