mihalkoff

Central Cinema

Feb 6th, 2022
1,303
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function solve() {
  2.     // let movies = [];
  3.     let nameElement = document.querySelector('#container input[placeholder="Name"]');
  4.     let hallElement = document.querySelector('#container input[placeholder="Hall"]');
  5.     let ticketPriceElement = document.querySelector('#container input[placeholder="Ticket Price"]');
  6.     let moviesOnScreenSection = document.querySelector('#movies ul');
  7.     let archiveSection = document.querySelector('#archive ul');
  8.  
  9.     //on screen button
  10.     let onScreenButton = document.querySelector('#container button');
  11.     onScreenButton.addEventListener('click', addMovie);
  12.  
  13.     // add movie to the list
  14.     function addMovie(e) {
  15.         e.preventDefault();
  16.  
  17.         let name = nameElement.value;
  18.         let hall = hallElement.value;
  19.         let ticketPrice = Number(ticketPriceElement.value);
  20.  
  21.         if(name && hall && ticketPrice && (typeof(ticketPrice) == 'number')) {
  22.             // // make movie object
  23.             // const movie = {
  24.             //     name,
  25.             //     hall,
  26.             //     ticketPrice
  27.             // };
  28.  
  29.             // //add movie to array movies
  30.             // movies.push(movie);
  31.  
  32.             // clear inputs
  33.             nameElement.value = '';
  34.             hallElement.value = '';
  35.             ticketPriceElement.value = '';
  36.  
  37.             // add to movies on screen list
  38.             moviesOnScreenSection.innerHTML += `<li>
  39.                 <span>${name}</span>
  40.                 <strong>Hall: ${hall}</strong><div>
  41.                     <strong>${ticketPrice.toFixed(2)}</strong>
  42.                     <input placeholder="Tickets Sold">
  43.                     <button>Archive</button>
  44.                 </div>
  45.             </li>`;
  46.  
  47.             // archive buttons
  48.             let archiveButtons = document.querySelectorAll('#movies button');
  49.             Array.from(archiveButtons).forEach(button => button.addEventListener('click', addToArchive));
  50.         }
  51.     }
  52.  
  53.     //add to archive
  54.     function addToArchive(e) {
  55.         let ticketSoldElement = e.target.parentNode.parentNode.querySelector('input');
  56.         let ticketSold = Number(ticketSoldElement.value);
  57.         let movieName = e.target.parentNode.parentNode.querySelector('span').textContent;
  58.         let ticketPrice = e.target.parentNode.parentNode.querySelector('div strong').textContent;
  59.         let totalPrice = ticketPrice * ticketSold;
  60.        
  61.         if(ticketSold && (typeof(ticketSold) == 'number')) {
  62.            
  63.             // add to archive
  64.             archiveSection.innerHTML += `<li>
  65.                 <span>${movieName}</span>
  66.                 <strong>Total amount: ${totalPrice.toFixed(2)}</strong>
  67.                 <button>Delete</button>
  68.             </li>`;
  69.  
  70.             // delete from movies on screen list
  71.             e.target.parentNode.parentNode.remove();
  72.  
  73.             // delete buttons and clear button
  74.             let deleteButtons = document.querySelectorAll('#archive button');
  75.             Array.from(deleteButtons).forEach(button => button.addEventListener('click', deleteFromArchive));
  76.         }
  77.     }
  78.  
  79.     //delete from archive
  80.     function deleteFromArchive(e) {
  81.         let button = e.target;
  82.         let liElements = document.querySelectorAll('#archive li');
  83.  
  84.         if(button.textContent == 'Delete') {
  85.             button.parentNode.remove();
  86.         } else if(button.textContent == 'Clear' && liElements) {
  87.             Array.from(liElements).forEach(li => li.remove());
  88.         }
  89.     }
  90. }
Advertisement
Add Comment
Please, Sign In to add comment