// 01. Service
// Js Advanced Final Retake Exam - 10 December 2021
// https://judge.softuni.org/Contests/Practice/Index/3296#0
function solve() {
const productTypeElement = document.getElementById('type-product');
const descriptionElement = document.getElementById('description');
const nameElement = document.getElementById('client-name');
const phoneElement = document.getElementById('client-phone');
const receivedOrders = document.getElementById('received-orders');
const completedOrders = document.getElementById('completed-orders');
document.querySelector('#completed-orders button').addEventListener('click', clearCompletedOrders);
document.querySelector('#right > form > button').addEventListener('click', sendInfo);
function sendInfo(e) {
e.preventDefault();
let data = {
product: productTypeElement.value,
description: descriptionElement.value,
name: nameElement.value,
phone: phoneElement.value,
}
if (data.product == '' || data.description == '' || data.name == '' || data.phone == '') {
alert('Fill all inputs');
return;
}
let div = document.createElement('div');
div.setAttribute('class', 'container');
let h2 = document.createElement('h2');
h2.textContent = `Product type for repair: ${data.product}`;
let h3 = document.createElement('h3');
h3.textContent = `Client information: ${data.name}, ${data.phone}`;
let h4 = document.createElement('h4');
h4.textContent = `Description of the problem: ${data.description}`;
let startBtn = document.createElement('button');
startBtn.textContent = 'Start repair'
startBtn.classList.add('start-btn');
startBtn.addEventListener('click', startRepair)
let finishBtn = document.createElement('button');
finishBtn.textContent = 'Finish repair';
finishBtn.classList.add('finish-btn');
finishBtn.disabled = true;
finishBtn.addEventListener('click', finishRepair)
div.appendChild(h2);
div.appendChild(h3);
div.appendChild(h4);
div.appendChild(startBtn);
div.appendChild(finishBtn);
receivedOrders.appendChild(div);
clearInputs();
}
function startRepair(e) {
let startBtn = e.target;
let finishBtn = e.target.nextElementSibling;
startBtn.disabled = true;
finishBtn.disabled = false;
}
function finishRepair(e) {
let currentOrder = e.target.parentNode;
let divContainer = document.createElement('div');
divContainer.classList.add('container');
let completedH2Node = currentOrder.children[0]
let completedH3Node = currentOrder.children[1]
let completedH4Node = currentOrder.children[2]
divContainer.appendChild(completedH2Node);
divContainer.appendChild(completedH3Node);
divContainer.appendChild(completedH4Node);
completedOrders.appendChild(divContainer);
currentOrder.remove();
}
function clearCompletedOrders(e) {
Array.from(e.target.parentNode.querySelectorAll('div')).forEach(order => {
order.remove();
})
}
function clearInputs() {
descriptionElement.value = '';
nameElement.value = '';
phoneElement.value = '';
}
}