georgiev955

01. Car Parts

Oct 13th, 2023
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.29 KB | None | 0 0
  1. function solve() {
  2. const data = {
  3. carModel: document.querySelector('#car-model'),
  4. carYear: document.querySelector('#car-year'),
  5. partName: document.querySelector('#part-name'),
  6. partNumber: document.querySelector('#part-number'),
  7. condition: document.querySelector('#condition'),
  8. };
  9.  
  10. document.querySelector('#next-btn').addEventListener('click', next);
  11.  
  12. const infoUl = document.querySelector('ul.info-list');
  13. const confirmUl = document.querySelector('ul.confirm-list');
  14.  
  15. function next(e) {
  16. e.preventDefault();
  17.  
  18. for (const key in data) {
  19. if (data[key].value === '') {
  20. return;
  21. }
  22.  
  23. if (key === 'carYear') {
  24. if (data[key].value < 1980 || data[key].value > 2023) {
  25. return;
  26. }
  27. }
  28. }
  29.  
  30. let listItem = document.createElement('li');
  31. listItem.className = 'part-content';
  32. infoUl.appendChild(listItem);
  33.  
  34. listItem.innerHTML = `<article>
  35. <p>Car Model: ${data.carModel.value}</p>
  36. <p>Car Year: ${data.carYear.value}</p>
  37. <p>Part Name: ${data.partName.value}</p>
  38. <p>Part Number: ${data.partNumber.value}</p>
  39. <p>Condition: ${data.condition.value}</p>
  40. </article>`
  41.  
  42. const leftButton = document.createElement('button');
  43. leftButton.className = 'edit-btn';
  44. leftButton.textContent = 'Edit';
  45.  
  46. const rightButton = document.createElement('button');
  47. rightButton.className = 'continue-btn';
  48. rightButton.textContent = 'Continue';
  49.  
  50. listItem.appendChild(leftButton);
  51. listItem.appendChild(rightButton);
  52.  
  53. document.querySelector('#next-btn').disabled = true;
  54.  
  55. let backUp = {};
  56. for (const key in data) {
  57. backUp[key] = data[key].value;
  58. data[key].value = '';
  59. }
  60.  
  61. document.querySelector('#complete-img').style.visibility = 'hidden';
  62. document.querySelector('#complete-text').textContent = '';
  63.  
  64. leftButton.addEventListener('click', edit);
  65.  
  66. function edit() {
  67. listItem.remove();
  68. if (leftButton.textContent === 'Edit') {
  69. for (const key in data) {
  70. data[key].value = backUp[key];
  71. }
  72. }
  73.  
  74. document.querySelector('#next-btn').disabled = false;
  75. }
  76.  
  77. rightButton.addEventListener('click', continueCase);
  78.  
  79. function continueCase() {
  80. listItem.remove();
  81. confirmUl.appendChild(listItem);
  82.  
  83. leftButton.className = 'confirm-btn';
  84. leftButton.textContent = 'Confirm';
  85.  
  86. rightButton.className = 'cancel-btn';
  87. rightButton.textContent = 'Cancel';
  88.  
  89. leftButton.addEventListener('click', confirm);
  90.  
  91. function confirm() {
  92. listItem.remove();
  93. document.querySelector('#next-btn').disabled = false;
  94.  
  95. document.querySelector('#complete-img').style.visibility = 'visible';
  96. document.querySelector('#complete-text').textContent = 'Part is Ordered!';
  97. }
  98.  
  99. rightButton.addEventListener('click', cancelAction);
  100.  
  101. function cancelAction() {
  102. listItem.remove();
  103. document.querySelector('#next-btn').disabled = false;
  104. }
  105. }
  106. }
  107.  
  108. }
Advertisement
Add Comment
Please, Sign In to add comment