Advertisement
Guest User

Untitled

a guest
Feb 17th, 2020
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function solve() {
  2.  
  3.     let ul = document.querySelector('#products ul');
  4.     let addButton = document.querySelector('#add-new button');
  5.  
  6.     function addToMyProducts(e) {
  7.  
  8.         let productListItem = e.target.parentElement.parentElement;
  9.         let quantityContent = productListItem.children[1].textContent.split(': ');
  10.  
  11.         let quantity = Number(quantityContent[1])
  12.  
  13.         if (quantity > 1) {
  14.             quantityContent[1] = Number(quantityContent[1]) - 1;
  15.             productListItem.children[1].textContent = quantityContent.join(': ');
  16.         } else {
  17.             productListItem.style.display = "none"
  18.         }
  19.  
  20.         let productPrice = Number(productListItem.children[2].children[0].innerHTML);
  21.  
  22.         totalPriceContent[1] = (Number(totalPriceContent[1]) + productPrice).toFixed(2);
  23.         totalPriceHeader.textContent = totalPriceContent.join(': ')
  24.  
  25.         let li = document.createElement('li');
  26.         li.textContent = productListItem.children[0].textContent;
  27.         let strong = document.createElement('strong');
  28.         strong.textContent = productListItem.children[2].children[0].textContent;
  29.         li.appendChild(strong);
  30.  
  31.         myProductsList.appendChild(li);
  32.     }
  33.  
  34.     function createListItem(product) {
  35.  
  36.         let li = document.createElement('li');
  37.         let span = document.createElement('span');
  38.         span.textContent = product.Name;
  39.         li.appendChild(span);
  40.         let strong = document.createElement('strong');
  41.         strong.textContent = `Available: ${product.Quantity}`;
  42.         li.appendChild(strong);
  43.  
  44.         let div = document.createElement('div');
  45.  
  46.         let innerStrong = document.createElement('strong');
  47.         innerStrong.textContent = product.Price;
  48.         let button = document.createElement('button');
  49.         button.textContent = "Add to Client's List";
  50.  
  51.         button.addEventListener('click', addToMyProducts)
  52.         div.appendChild(innerStrong);
  53.         div.appendChild(button);
  54.         li.appendChild(div);
  55.  
  56.         return li;
  57.     }
  58.  
  59.     function addHandler(e) {
  60.  
  61.         e.preventDefault();
  62.  
  63.         let inputs = document.querySelectorAll('#add-new input');
  64.  
  65.         let product = Array.from(inputs).reduce((acc, x) => {
  66.  
  67.             if (!acc.hasOwnProperty(x.placeholder)) {
  68.                 acc[x.placeholder] = x.value;
  69.             }
  70.  
  71.             return acc;
  72.  
  73.         }, {});
  74.  
  75.         ul.appendChild(createListItem(product))
  76.  
  77.         for (input of inputs) {
  78.             input.value = '';
  79.         }
  80.     }
  81.  
  82.     let filterButton = document.querySelector('#products div button');
  83.  
  84.     addButton.addEventListener("click", addHandler);
  85.  
  86.     function filterProducts() {
  87.  
  88.         let filterValue = document.getElementById('filter').value.toLocaleLowerCase();
  89.  
  90.         document.querySelectorAll('#products ul li').forEach(e => {
  91.  
  92.             if (!e.children[0].textContent.toLocaleLowerCase().includes(filterValue)) {
  93.                 e.style.display = "none"
  94.             }
  95.         })
  96.     }
  97.  
  98.     filterButton.addEventListener('click', filterProducts);
  99.  
  100.     let totalPriceHeader = document.getElementsByTagName('h1')[1];
  101.     let totalPriceContent = totalPriceHeader.textContent.split(': ');
  102.     let myProductsList = document.querySelector('#myProducts ul')
  103.  
  104.     let buyButton = document.querySelector('#myProducts button');
  105.  
  106.     function buyItems(e) {
  107.  
  108.         e.preventDefault()
  109.         document.querySelectorAll('#myProducts ul li').innerHTML = '';
  110.         totalPriceHeader.innerHTML = "Total Price: 0.00"
  111.     }
  112.  
  113.     buyButton.addEventListener('click', buyItems)
  114. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement