Advertisement
pacho_the_python

Untitled

Mar 23rd, 2023
501
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function solve() {
  2.     const firstnameElement = document.getElementById('first-name')
  3.     const lastnameElement = document.getElementById('last-name')
  4.     const ageElement = document.getElementById('age')
  5.     const genderElement = document.getElementById('genderSelect')
  6.     const taskElement = document.getElementById('task')
  7.     const submitBtn = document.getElementById('form-btn')
  8.     const progressStatusElement = document.getElementById('in-progress')
  9.     const progressCountElement = document.getElementById('progress-count')
  10.     const finishedUlElement = document.getElementById('finished')
  11.     const clearBtn = document.getElementById('clear-btn')
  12.  
  13.     let first = ''
  14.     let last = ''
  15.     let age = ''
  16.     let gender = ''
  17.     let task = ''
  18.     let counter = 0
  19.  
  20.     function createArticle(firstname, lastname, chefAge, chefGender, taskArea) {
  21.         let articleElement = document.createElement('article')
  22.         let fullName = document.createElement('h4')
  23.         let ageGenderElementCreate = document.createElement('p')
  24.         let taskAreaElementCreate = document.createElement('p')
  25.  
  26.         fullName.textContent = `${firstname} ${lastname}`
  27.         articleElement.appendChild(fullName)
  28.  
  29.         ageGenderElementCreate.textContent = `${chefGender}, ${chefAge}`
  30.         articleElement.appendChild(ageGenderElementCreate)
  31.  
  32.         taskAreaElementCreate.textContent = `Dish description: ${taskArea}`
  33.         articleElement.appendChild(taskAreaElementCreate)
  34.  
  35.         return articleElement
  36.     }
  37.  
  38.     function createButton(className, context, someFunction) {
  39.         let currentBtn = document.createElement('button')
  40.         currentBtn.classList.add(className)
  41.         currentBtn.textContent = context
  42.         currentBtn.addEventListener("click", someFunction)
  43.         return currentBtn
  44.     }
  45.  
  46.     submitBtn.addEventListener("click", submitInfo)
  47.     clearBtn.addEventListener("click", clearAll)
  48.  
  49.     function submitInfo(e) {
  50.         e.preventDefault()
  51.  
  52.         first = firstnameElement.value
  53.         last = lastnameElement.value
  54.         age = ageElement.value
  55.         gender = genderElement.value
  56.         task = taskElement.value
  57.  
  58.         if (first === '' ||
  59.             last === '' ||
  60.             age === '' ||
  61.             gender === '' ||
  62.             task === '') {
  63.             return
  64.         }
  65.  
  66.         let articleElement = createArticle(first, last, age, gender, task)
  67.  
  68.         let liElement = document.createElement('li')
  69.         liElement.classList.add('each-line')
  70.  
  71.         let editBtn = createButton('edit-btn', 'Edit', editInfo)
  72.         let completeBtn = createButton('complete-btn', 'Mark as complete', completeDish)
  73.  
  74.         liElement.appendChild(articleElement)
  75.         liElement.appendChild(editBtn)
  76.         liElement.appendChild(completeBtn)
  77.         progressStatusElement.appendChild(liElement)
  78.  
  79.         counter += 1
  80.         progressCountElement.textContent = counter
  81.  
  82.         firstnameElement.value = ''
  83.         lastnameElement.value = ''
  84.         ageElement.value = ''
  85.         genderElement.value = ''
  86.         taskElement.value = ''
  87.     }
  88.  
  89.     function editInfo (eventEdit) {
  90.         const ulElement = eventEdit.target.parentElement.parentElement
  91.         const liElement = eventEdit.target.parentElement
  92.         const articleElement = Array.from(liElement.children)[0]
  93.         let elements = Array.from(articleElement.children)
  94.  
  95.         let h4 = elements[0]
  96.         firstnameElement.value = h4.textContent.split(' ')[0]
  97.         lastnameElement.value = h4.textContent.split(' ')[1]
  98.  
  99.  
  100.         let ageGenderData = elements[1]
  101.  
  102.         ageElement.value = ageGenderData.textContent.split(', ')[1]
  103.         genderElement.value = ageGenderData.textContent.split(', ')[0]
  104.  
  105.         taskElement.value = elements[2].textContent.split(': ')[1]
  106.  
  107.         counter -= 1
  108.         progressCountElement.textContent = counter
  109.  
  110.         ulElement.removeChild(liElement)
  111.     }
  112.    
  113.     function completeDish (eventComplete) {
  114.         // let ulElement = eventComplete.target.parentElement.parentElement
  115.         let liElement = eventComplete.target.parentElement
  116.  
  117.         let removeEditBtn = liElement.children[1]
  118.         let removeCompleteBtn = liElement.children[2]
  119.         removeEditBtn.remove()
  120.         removeCompleteBtn.remove()
  121.         finishedUlElement.appendChild(liElement)
  122.  
  123.         counter -= 1
  124.         progressCountElement.textContent = counter
  125.     }
  126.  
  127.     function clearAll() {
  128.         let finishedDishes = Array.from(finishedUlElement.children)
  129.         for (const dish of finishedDishes) {
  130.             finishedUlElement.removeChild(dish)
  131.         }
  132.     }
  133. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement