Advertisement
teofarov13

Untitled

Oct 14th, 2023
484
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. window.addEventListener('load', solve);
  2.  
  3. function solve() {
  4.  
  5.     const nameElement = document.getElementById('name');//взимаме елемента за име
  6.     const emailElement = document.getElementById('email');//взимаме елемента за имейл
  7.     const contNumElement = document.getElementById('contact-number');//взимаме елемента за телефонен номер
  8.     const classTypeElement = document.getElementById('class-type');//взимаме елемента за типа на класа
  9.     const classTimeElement = document.getElementById('class-time');//взимаме елемента за времето на класа
  10.     const nextButtonElement = document.getElementById('next-btn');//взимаме елемента за бутона
  11.     const previewUlElement = document.querySelector('.class-info');//взимаме елемента за списъка
  12.     const confirmUlElement = document.querySelector('.confirm-class');//взимаме елемента за списъка
  13.     const mainElement = document.getElementById("main")//взимаме елемента за главния див
  14.     const bodyElement = document.getElementById("body")//взимаме елемента за body-то
  15.     nextButtonElement.addEventListener('click', onNext);//добавяме слушател на бутона
  16.  
  17.     function onNext(e) {//функцията за бутона
  18.         e.preventDefault()//превенчираме дефолтното поведение на бутона
  19.         if (nameElement.value == "" || emailElement.value == ""
  20.             || contNumElement.value == "" || classTypeElement.value == ""//
  21.             || classTimeElement.value == "") {
  22.             return;
  23.         }//
  24.  
  25.         let liElement = document.createElement("li");//създаваме елемента за списъка
  26.         liElement.setAttribute("class", "info-item");//добавяме му клас
  27.  
  28.         let article = document.createElement("article");//създаваме елемента за статията
  29.         article.setAttribute('class', "personal-info");//добавяме му клас
  30.  
  31.         let nameParagraph = document.createElement("p");//създаваме елемента за параграфа
  32.         nameParagraph.textContent = nameElement.value;
  33.  
  34.         let emailParagraph = document.createElement("p");
  35.         emailParagraph.textContent = emailElement.value;
  36.  
  37.         let contNumParagraph = document.createElement("p");
  38.         contNumParagraph.textContent = contNumElement.value;
  39.  
  40.         let classTypeParagraph = document.createElement("p");
  41.         classTypeParagraph.textContent = classTypeElement.value;
  42.  
  43.         let classTimeParagraph = document.createElement("p");
  44.         classTimeParagraph.textContent = classTimeElement.value;
  45.  
  46.  
  47.         let editBtn = document.createElement("button");
  48.         editBtn.setAttribute("class", 'edit-btn');
  49.         editBtn.textContent = "Edit";
  50.  
  51.         let continueBtn = document.createElement("button");
  52.         continueBtn.setAttribute("class", "continue-btn");
  53.         continueBtn.textContent = "Continue";
  54.  
  55.         article.appendChild(nameParagraph);
  56.         article.appendChild(emailParagraph);
  57.         article.appendChild(contNumParagraph);
  58.         article.appendChild(classTypeParagraph);
  59.         article.appendChild(classTimeParagraph);
  60.         liElement.appendChild(article);
  61.         liElement.appendChild(editBtn);
  62.         liElement.appendChild(continueBtn);
  63.         previewUlElement.appendChild(liElement)
  64.  
  65.         let editedName = nameElement.value;
  66.         let editedEmail = emailElement.value;
  67.         let editedContNum = contNumElement.value;
  68.         let editedClassType = classTypeElement.value;
  69.         let editedClassTime = classTimeElement.value;
  70.  
  71.         nameElement.value = ""
  72.         emailElement.value = "";
  73.         contNumElement.value = "";
  74.         classTypeElement.value = "";
  75.         classTimeElement.value = "";
  76.  
  77.  
  78.         nextButtonElement.disabled = true;
  79.  
  80.         editBtn.addEventListener("click", onEdit)
  81.  
  82.         function onEdit() {
  83.  
  84.             nameElement.value = editedName;
  85.             emailElement.value = editedEmail;
  86.             contNumElement.value = editedContNum;
  87.             classTypeElement.value = editedClassType;
  88.             classTimeElement.value = editedClassTime;
  89.  
  90.             nextButtonElement.disabled = false;
  91.  
  92.             liElement.remove()
  93.         }
  94.         continueBtn.addEventListener("click", onContinue)
  95.  
  96.         function onContinue() {
  97.             let liElementContinue = document.createElement("li");
  98.             liElementContinue.setAttribute("class", "continue-info");
  99.  
  100.             let articleContinue = document.createElement("article")
  101.             articleContinue = article;
  102.  
  103.             let cancelBtn = document.createElement("button");
  104.             cancelBtn.setAttribute("class", "cancel-btn");
  105.             cancelBtn.textContent = "Cancel"
  106.  
  107.             let confirmBtn = document.createElement("button")
  108.             confirmBtn.setAttribute("class", "confirm-btn");
  109.             confirmBtn.textContent = "Confirm"
  110.  
  111.             liElementContinue.appendChild(articleContinue);
  112.             liElementContinue.appendChild(cancelBtn);
  113.             liElementContinue.appendChild(confirmBtn);
  114.             confirmUlElement.appendChild(liElementContinue)
  115.  
  116.             liElement.remove()
  117.  
  118.             cancelBtn.addEventListener("click", onCancel)
  119.  
  120.             function onCancel() {
  121.                 liElementContinue.remove()
  122.                 nextButtonElement.disabled = false
  123.             }
  124.             confirmBtn.addEventListener("click", onConfirm)
  125.  
  126.             function onConfirm() {
  127.                 mainElement.remove()
  128.                 let header1 = document.createElement("h1")
  129.                 header1.setAttribute("id", "thank-you");
  130.                 header1.textContent = "Thank you for scheduling your appointment, we look forward to seeing you!"
  131.  
  132.                 let backBtn = document.createElement("button")
  133.                 backBtn.setAttribute("id", "done-btn")
  134.                 backBtn.textContent = "Done"
  135.  
  136.                 bodyElement.appendChild(header1)
  137.                 bodyElement.appendChild(backBtn)
  138.  
  139.                 backBtn.addEventListener("click", onBack)
  140.  
  141.                 function onBack() {
  142.                     location.reload()
  143.                 }
  144.             }
  145.         }
  146.     }
  147. }
  148.  
  149.  
  150.  
  151.  
  152. expect($(document.querySelector(".class-info > li")).length).to.equal(1, "The class must be added to the list")
  153.  
  154.  
  155.  
  156. expect($(document.getElementById("name")).val()).to.equal('', 'Name input field was not cleared');
  157. expect($(document.getElementById("email")).val()).to.equal('', 'Email input field was not cleared');
  158. expect($(document.getElementById("contact-number")).val()).to.equal('', 'Contact input field was not cleared');
  159. expect($(document.getElementById("class-type")).val()).to.equal('', 'Type input field was not cleared');
  160. expect($(document.getElementById("class-time")).val()).to.equal('', 'Time  input field was not cleared');
  161.  
  162.  
  163. expect((document.querySelectorAll(".class-info > li > article > p"))[0].textContent).to.equal("John Doe", "Name is invalid");
  164. expect((document.querySelectorAll(".class-info > li > article > p"))[1].textContent).to.equal("[email protected]", "Email is invalid");
  165. expect($(document.querySelectorAll(".class-info > li > article > p"))[2].textContent).to.equal("1234567890", "Contact num is invalid");
  166. expect($(document.querySelectorAll(".class-info > li > article > p"))[3].textContent).to.equal("Yoga", "Class is invalid");
  167. expect($(document.querySelectorAll(".class-info > li > article > p"))[4].textContent).to.equal("17:00", "Time is invalid");
  168.  
  169. expect($("#next-btn").prop('disabled'), 'Next button was not disabled').to.be.true;
  170.  
  171. expect($(document.querySelectorAll(".class-info > li > button")).length).to.equal(2, "Buttons are not added successfully!")
  172.  
  173. expect($(document.getElementById("name")).val()).to.equal('John Doe', 'Name input field was not filled correctly');
  174. expect($(document.getElementById("email")).val()).to.equal('[email protected]', 'Email input field was not filled correctly');
  175. expect($(document.getElementById("contact-number")).val()).to.equal('1234567890', 'Contact input field was not filled correctly');
  176. expect($(document.getElementById("class-type")).val()).to.equal('Yoga', 'Type input field was not filled correctly');
  177. expect($(document.getElementById("class-time")).val()).to.equal('17:00', 'Time input field was not filled correctly');
  178.  
  179.  
  180. expect($(document.querySelector(".class-info > li")).length).to.equal(0, "The class must be removed from the list")
  181.  
  182.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement