Advertisement
Liliana797979

1. Service - js advanced exam

Feb 26th, 2022
842
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function solve() {
  2.     const [ receivedSection, completedSection ] = Array.from(document.querySelectorAll('#wrapper section'));
  3.     const repairForm = document.querySelector('div#right form');
  4.     const sendFormBtn = document.querySelector('div#right form button');
  5.     const [ clearBtn ] = [...Array.from(completedSection.getElementsByClassName('clear-btn'))];
  6.     clearBtn.addEventListener('click', onClear);
  7.  
  8.     sendFormBtn.addEventListener('click', onSend);
  9.  
  10.     function onSend(e) {
  11.         e.preventDefault();
  12.  
  13.         let productType = document.getElementById('type-product');
  14.         let description = document.getElementById('description');
  15.         let clientName = document.getElementById('client-name');
  16.         let clientPhone = document.getElementById('client-phone');
  17.  
  18.         if(!productType.value.trim()
  19.             && (!productType.value.trim() == 'Computer' || !productType.value.trim() == 'Phone')
  20.             || !description.value.trim() || !clientName.value.trim() || !clientPhone.value.trim()) {
  21.                 return;
  22.         }
  23.  
  24.         const newElement = createReceivedOrderElement(productType.value.trim(), description.value.trim(), clientName.value.trim(), clientPhone.value.trim());
  25.         const [ startBtn, finishBtn] = [...Array.from(newElement.querySelectorAll('button'))];
  26.         startBtn.addEventListener('click', onStart.bind(null, startBtn, finishBtn, e));
  27.         finishBtn.addEventListener('click', onFinish.bind(null, newElement));
  28.         receivedSection.appendChild(newElement);
  29.         repairForm.reset();
  30.  
  31.         function createReceivedOrderElement(type, description, name, phone) {
  32.             const newDiv = document.createElement('div');
  33.             newDiv.className = 'container';
  34.             newDiv.innerHTML = `<h2>Product type for repair: ${type}</h2>
  35.             <h3>Client information: ${name}, ${phone}</h3>
  36.             <h4>Description of the problem: ${description}</h4>
  37.             <button class="start-btn">Start repair</button>
  38.             <button class="finish-btn" disabled>Finish repair</button>`
  39.  
  40.             return newDiv;
  41.         }
  42.     }
  43.  
  44.     function onStart(startElement, endElement,e) {
  45.         startElement.disabled = true;
  46.         endElement.disabled = false;
  47.     }
  48.  
  49.     function onFinish(completedElement, e) {
  50.         completedElement.remove();
  51.         const [ startBtn, finishBtn] = [...Array.from(completedElement.querySelectorAll('button'))];
  52.         startBtn.remove();
  53.         finishBtn.remove();
  54.  
  55.         completedSection.appendChild(completedElement);
  56.     }
  57.  
  58.     function onClear(e) {
  59.         const containerDivs = Array.from(completedSection.querySelectorAll('div.container'));
  60.         if(containerDivs.length < 1) {
  61.             return;
  62.         } else {
  63.             containerDivs.forEach(containerElement => containerElement.remove());
  64.         }
  65.     }
  66.    
  67. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement