Advertisement
vvsvvs

Untitled

Oct 6th, 2022
655
0
122 days
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function solve() {
  2.     let strongElement = document.createElement('strong');
  3.     let inputElement = document.createElement('input');
  4.     inputElement['placeholder'] = 'Ticket Sold';
  5.     let buttonElement = document.createElement('button');
  6.     buttonElement.textContent = 'Archive';
  7.  
  8.     let divElement = document.createElement('div');
  9.     divElement.appendChild(strongElement);
  10.     divElement.appendChild(inputElement);
  11.     divElement.appendChild(buttonElement);
  12.  
  13.     let spanElement = document.createElement('span');
  14.     strongElement = document.createElement('strong');
  15.  
  16.     let liElement = document.createElement('li');
  17.  
  18.     liElement.appendChild(spanElement);
  19.     liElement.appendChild(strongElement);
  20.     liElement.appendChild(divElement);
  21.  
  22.     let moveOnScreenLiElement = liElement.cloneNode(true);
  23.  
  24.     buttonElement.textContent = 'Delete';
  25.  
  26.     liElement = document.createElement('li');
  27.  
  28.     liElement.appendChild(spanElement);
  29.     liElement.appendChild(strongElement);
  30.     liElement.appendChild(buttonElement);
  31.  
  32.     let archiveLiElement = liElement.cloneNode(true);
  33.  
  34.  
  35.     let bodyElement = document.getElementsByTagName('body')[0];
  36.  
  37.     bodyElement.addEventListener('click', hanlerEvent.bind(bodyElement));
  38.  
  39.     let divContainer = document.getElementById('container');
  40.     let moveOnScreenUlElement = document.getElementById('movies').getElementsByTagName('ul')[0];
  41.     let archiveUlElement = document.getElementById('archive').getElementsByTagName('ul')[0];
  42.  
  43.     function hanlerEvent(e) {
  44.         let action = manipulation();
  45.         e.preventDefault();
  46.         let element = e.target;
  47.  
  48.         if (element.nodeName == "BUTTON") {
  49.             let buttonSelector = element.textContent.toLowerCase().split(' ')[0];
  50.  
  51.             action[buttonSelector](element);
  52.         }
  53.  
  54.         function manipulation(buttonElement) {
  55.             return {
  56.                 clear: (element) => {                    
  57.                     while (archiveUlElement.childNodes.length > 0) {
  58.                         archiveUlElement.removeChild(archiveUlElement.childNodes[0]);                        
  59.                     }
  60.                 },
  61.  
  62.                 archive: (element) => {
  63.  
  64.                     let liArchiveElement = element.parentElement.parentElement;
  65.  
  66.  
  67.                     let count = liArchiveElement.childNodes[2].childNodes[1].value;
  68.  
  69.                     let countTicets = Number(count);
  70.  
  71.                     let isValidNumber = !Number.isNaN(countTicets) && count.length > 0;
  72.                    
  73.                     //isValidNumber = isValidNumber && (Math.floor(countTicets) - countTicets == 0);
  74.  
  75.                     if ( isValidNumber ) {
  76.                         let moveName = liArchiveElement.childNodes[0].textContent;
  77.                         let movePrice = liArchiveElement.childNodes[2].childNodes[0].textContent;
  78.  
  79.                         let liArchiveLiElement = archiveLiElement.cloneNode(true);
  80.  
  81.                         let totalPrice = countTicets * Number(movePrice);
  82.  
  83.                         liArchiveLiElement.childNodes[0].textContent = moveName;
  84.                         liArchiveLiElement.childNodes[1].textContent = `Total amount: ${totalPrice.toFixed(2)}`;
  85.  
  86.                         archiveUlElement.appendChild(liArchiveLiElement);                        
  87.  
  88.                         liArchiveElement.parentElement.removeChild(liArchiveElement);
  89.                     } else {
  90.                         liArchiveElement.childNodes[2].childNodes[1].value = '';
  91.                     }
  92.  
  93.                 },
  94.  
  95.                 delete: (element) => {
  96.                     let liArchiveElement = element.parentElement;
  97.                     archiveUlElement.removeChild(liArchiveElement);
  98.                 },
  99.  
  100.                 on: () => {
  101.  
  102.                     let moveName = divContainer.children[0].value;
  103.                     let moveHall = divContainer.children[1].value;
  104.                     let movePrice = divContainer.children[2].value;
  105.  
  106.                     movePriceAtNum = Number(movePrice);
  107.  
  108.                     let isFillInput = moveName.length > 0 && moveHall.length > 0 && !Number.isNaN(movePriceAtNum) && movePrice.length > 0;
  109.                     let priceStr = movePriceAtNum.toFixed(2);
  110.  
  111.                     if (isFillInput) {
  112.                         let newMoveOnScreenLiElement = moveOnScreenLiElement.cloneNode(true);
  113.  
  114.                         newMoveOnScreenLiElement.childNodes[0].textContent = moveName;
  115.                         newMoveOnScreenLiElement.childNodes[1].textContent = 'Hall: ' + moveHall;
  116.                         newMoveOnScreenLiElement.childNodes[2].childNodes[0].textContent = priceStr;
  117.                         moveOnScreenUlElement.appendChild(newMoveOnScreenLiElement);
  118.                     }
  119.  
  120.                     divContainer.children[0].value = ``;
  121.                     divContainer.children[1].value = ``;
  122.                     movePrice = divContainer.children[2].value = ``;
  123.                 }
  124.             };
  125.         }
  126.     }
  127. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement