Advertisement
didkoslawow

Untitled

May 16th, 2023
200
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function solve() {
  2.    const nameInput = document
  3.      .querySelector('#container')
  4.      .querySelectorAll('input')[0];
  5.    const hallInput = document
  6.      .querySelector('#container')
  7.      .querySelectorAll('input')[1];
  8.    const ticketPriceInput = document
  9.      .querySelector('#container')
  10.      .querySelectorAll('input')[2];
  11.    const onScreenBtn = document
  12.      .querySelector('#container')
  13.      .querySelector('button');
  14.    const clearBtn = document.querySelectorAll('#archive > button')[0];
  15.  
  16.    clearBtn.addEventListener('click', clearAchive);
  17.    onScreenBtn.addEventListener('click', onScreen);
  18.  
  19.    function onScreen(e) {
  20.      e.preventDefault();
  21.  
  22.      const name = nameInput.value;
  23.      const hall = hallInput.value;
  24.      const ticketPrice = ticketPriceInput.value;
  25.      const isValid = name && hall && ticketPrice;
  26.  
  27.      if (!isValid || isNaN(ticketPrice)) return;
  28.  
  29.      addMovie(name, hall, ticketPrice);
  30.  
  31.      nameInput.value = '';
  32.      hallInput.value = '';
  33.      ticketPriceInput.value = '';
  34.    }
  35.  
  36.    function addMovie(movieName, hall, ticketPrice) {
  37.      const ulMovieListElement = document.querySelector('#movies > ul');
  38.  
  39.      const liElement = document.createElement('li');
  40.      const spanElement = document.createElement('span');
  41.      spanElement.textContent = movieName;
  42.      const strongHallElement = document.createElement('strong');
  43.      strongHallElement.textContent = `Hall: ${hall}`;
  44.  
  45.      const divElement = document.createElement('div');
  46.      const strongPriceElement = document.createElement('strong');
  47.      strongPriceElement.textContent = Number(ticketPrice).toFixed(2);
  48.      const inputSoldCounterElement = document.createElement('input');
  49.      inputSoldCounterElement.placeholder = 'Tickets Sold';
  50.      const btnElement = document.createElement('button');
  51.      btnElement.textContent = 'Archive';
  52.  
  53.      btnElement.addEventListener('click', () => {
  54.        const input = inputSoldCounterElement.value;
  55.        const archivedUlElement = document.querySelector('#archive > ul');
  56.        const archivedliElement = document.createElement('li');
  57.        const totalMoneySpanElement = document.createElement('strong');
  58.        totalMoneySpanElement.textContent = `Total amount: ${(
  59.          Number(ticketPrice) * Number(input)
  60.        ).toFixed(2)}`;
  61.        const deleteBtn = document.createElement('button');
  62.        deleteBtn.textContent = 'Delete';
  63.        deleteBtn.addEventListener('click', () =>
  64.          archivedUlElement.removeChild(archivedliElement)
  65.        );
  66.  
  67.        if (isNaN(input) || !input) return;
  68.  
  69.        const removedChild = ulMovieListElement.removeChild(liElement);
  70.        const movieName = removedChild.querySelector('span');
  71.  
  72.        archivedliElement.appendChild(movieName);
  73.        archivedliElement.appendChild(totalMoneySpanElement);
  74.        archivedliElement.appendChild(deleteBtn);
  75.        archivedUlElement.appendChild(archivedliElement);
  76.      });
  77.  
  78.      divElement.appendChild(strongPriceElement);
  79.      divElement.appendChild(inputSoldCounterElement);
  80.      divElement.appendChild(btnElement);
  81.      liElement.appendChild(spanElement);
  82.      liElement.appendChild(strongHallElement);
  83.      liElement.appendChild(divElement);
  84.      ulMovieListElement.appendChild(liElement);
  85.    }
  86.  
  87.    function clearAchive(e) {
  88.      Array.from(e.target.previousSibling.previousSibling.children).forEach(
  89.        (li) => li.remove()
  90.      );
  91.    }
  92.  }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement