Advertisement
pacho_the_python

Untitled

Mar 21st, 2023
498
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.     const makeElement = document.getElementById('make')
  5.     const modelElement = document.getElementById('model')
  6.     const yearElement = document.getElementById('year')
  7.     const fuelElement = document.getElementById('fuel')
  8.     const originalCostElement = document.getElementById('original-cost')
  9.     const sellingPriceElement = document.getElementById('selling-price')
  10.     const publishBtn = document.getElementById('publish')
  11.     const tableBodyElement = document.getElementById('table-body')
  12.     const sellCarUlElement = document.getElementById('cars-list')
  13.     const strongTotalProfitElement = document.getElementById('profit')
  14.     let totalProfitArr = []
  15.  
  16.     let make = ''
  17.     let model = ''
  18.     let year = ''
  19.     let originalCost = ''
  20.     let fuel = ''
  21.     let sellingPrice = ''
  22.  
  23.     publishBtn.addEventListener("click", publishCar)
  24.  
  25.     function publishCar(eventPublisher) {
  26.         eventPublisher.preventDefault()
  27.         make = makeElement.value
  28.         model = modelElement.value
  29.         year = yearElement.value
  30.         fuel = fuelElement.value
  31.         originalCost = originalCostElement.value
  32.         sellingPrice = sellingPriceElement.value
  33.  
  34.         if ( make === '' &&
  35.             model === '' &&
  36.             year === '' &&
  37.             fuel === '' &&
  38.             originalCost === '' &&
  39.             sellingPrice === '' ||
  40.             Number(originalCost) > Number(sellingPrice)) {
  41.             return
  42.         }
  43.  
  44.         let trElement = document.createElement('tr')
  45.         trElement.classList.add('row')
  46.  
  47.         let elementObj = {1: make, 2: model, 3: year, 4: fuel, 5: originalCost, 6: sellingPrice,}
  48.  
  49.         for (let i= 1; i <= 6; i++) {
  50.             let tdElement = createSomeElement('td', elementObj[i])
  51.             trElement.appendChild(tdElement)
  52.         }
  53.  
  54.         let tdButtonsElement = createSomeElement('td')
  55.         let editBtn = createButton('action-btn', 'edit', 'Edit', editCarInfo)
  56.         let sellBtn = createButton('action-btn', 'sell', 'Sell', sellCar)
  57.         tdButtonsElement.appendChild(editBtn)
  58.         tdButtonsElement.appendChild(sellBtn)
  59.         trElement.appendChild(tdButtonsElement)
  60.         tableBodyElement.appendChild(trElement)
  61.  
  62.         makeElement.value = ''
  63.         modelElement.value = ''
  64.         yearElement.value = ''
  65.         fuelElement.value = ''
  66.         originalCostElement.value = ''
  67.         sellingPriceElement.value = ''
  68.     }
  69.  
  70.     function editCarInfo(editEvent) {
  71.         let currentRow = editEvent.target.parentElement.parentElement
  72.         let someArr = Array.from(currentRow.children)
  73.         makeElement.value = someArr[0].textContent
  74.         modelElement.value = someArr[1].textContent
  75.         yearElement.value = someArr[2].textContent
  76.         fuelElement.value = someArr[3].textContent
  77.         originalCostElement.value = someArr[4].textContent
  78.         sellingPriceElement.value = someArr[5].textContent
  79.  
  80.         currentRow.remove()
  81.     }
  82.  
  83.     function sellCar(sellEvent) {
  84.         let currentRow = sellEvent.target.parentElement.parentElement
  85.         let someArr = Array.from(currentRow.children)
  86.         let makeText = someArr[0].textContent
  87.         let modelText = someArr[1].textContent
  88.         let yearText = someArr[2].textContent
  89.         let profit = Number(someArr[5].textContent) - Number(someArr[4].textContent)
  90.         totalProfitArr.push(profit)
  91.  
  92.         let sellLiElement = document.createElement('li')
  93.         sellLiElement.classList.add('each-list')
  94.  
  95.         let makeModelSpan = document.createElement('span')
  96.         makeModelSpan.textContent = `${makeText} ${modelText}`
  97.  
  98.         let yearSpan = document.createElement('span')
  99.         yearSpan.textContent = `${yearText}`
  100.  
  101.         let currentProfitSpan = document.createElement('span')
  102.         currentProfitSpan.textContent = `${profit.toString()}`
  103.  
  104.         sellLiElement.appendChild(makeModelSpan)
  105.         sellLiElement.appendChild(yearSpan)
  106.         sellLiElement.appendChild(currentProfitSpan)
  107.  
  108.         sellCarUlElement.appendChild(sellLiElement)
  109.  
  110.         currentRow.remove()
  111.  
  112.         let totalProfit = totalProfitArr.reduce((a, b) => a + b, 0)
  113.  
  114.         strongTotalProfitElement.textContent = `${totalProfit.toFixed(2)}`
  115.     }
  116.  
  117.     function createButton(firstClassName, secondClassName, context, eventFunction) {
  118.         let currentBtn = document.createElement('button')
  119.         currentBtn.classList.add(firstClassName)
  120.         currentBtn.classList.add(secondClassName)
  121.         currentBtn.textContent = context
  122.         currentBtn.addEventListener("click", eventFunction)
  123.         return currentBtn
  124.     }
  125.  
  126.     function createSomeElement(elementType, elementTextContent) {
  127.         let trElement = document.createElement(elementType)
  128.         trElement.textContent = elementTextContent
  129.         return trElement
  130.     }
  131. }
  132.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement