Advertisement
brilliantmojo

Item.js

Dec 19th, 2019 (edited)
455
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
jQuery 2.22 KB | None | 0 0
  1. // https://stackoverflow.com/questions/17612307/pushstate-what-exactly-is-the-state-object-for
  2.  
  3. function loadItem(ItemNumber) {
  4.  
  5.     $('#pageRoot').css('overflow-y', 'hidden');
  6.  
  7.     $('.LoadItem, #StonePage').show(); // Show modal and loader
  8.  
  9.     $.ajax({
  10.  
  11.         url: 'vendors/pages/Inventory/LandingPage/Item.php?number=' + ItemNumber,
  12.         method: 'POST',
  13.         data: {ItemNumber: ItemNumber},  
  14.         async: true,
  15.         cache: false,
  16.         error:
  17.  
  18.             function(jqXHR, strError) {
  19.                
  20.                 if(strError == 'timeout') {
  21.                     // Do something. Try again perhaps?
  22.                     alert('Seems like there was an error loading this stones information.');
  23.                 }
  24.                
  25.             },
  26.  
  27.         success:
  28.  
  29.             function(data) {
  30.                
  31.                 $('#StoneDetails').html(data);
  32.  
  33.             },
  34.            
  35.         timeout: 3000
  36.  
  37.     });
  38.    
  39. }
  40.  
  41. function ItemNumberHistory(ItemNumber) {
  42.  
  43.     var state = {ItemNumber: ItemNumber};
  44.  
  45.     var title = null;
  46.  
  47.     var path = '/Inventory/' + ItemNumber;
  48.  
  49.     history.pushState(state, title, path); // Add item number to URL/history
  50.  
  51. }
  52.  
  53. $(document).on('click', '.StoneLink', function(event) {
  54.    
  55.     var ItemNumber = $(this).attr('id'); // Get item number from ID;
  56.  
  57.     event.preventDefault();
  58.    
  59.     // Toggle nav on mobile
  60.     if($(navContent).is(':visible')) {
  61.         $(navContent).addClass('navHide'); // Hide nav on mobile
  62.         $('#navToggleIcon').toggleClass('mdi-close mdi-menu'); // Toggle nav menu icon
  63.     }
  64.    
  65.     loadItem(ItemNumber);
  66.    
  67.     ItemNumberHistory(ItemNumber); // Store ItemNumber as a state in history
  68.    
  69. });
  70.  
  71. function closeModal() {
  72.    
  73.     if($('#StonePage').is(':visible')) {
  74.  
  75.         $('#StonePage').hide();
  76.        
  77.         $('#pageRoot').css('overflow-y', 'auto');
  78.        
  79.         history.pushState(null, null, '/Inventory'); // Remove ItemNumber from URL path
  80.  
  81.     }
  82.  
  83. }
  84.  
  85. // Hide modal when close button
  86. $(document).on('click', '#CloseModal', function() {
  87.     closeModal();
  88. });
  89.  
  90. // Hide modal on click away
  91. $(document).on('click', '.head, #StonePage', function(event) {
  92.  
  93.     // If clicked anywhere [on #StonePage] outside of .modal
  94.     if(!$('.modal').is(event.target) && $('.modal').has(event.target).length === 0) {
  95.         closeModal();
  96.     }
  97.  
  98. });
  99.  
  100. // Hide modal on esc key press
  101. $(document).on('keydown', function(event) {
  102.  
  103.     // keyCode 27 is esc key
  104.     if(event.keyCode == 27) {
  105.         closeModal();
  106.     }
  107.  
  108. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement