94 lines
3.4 KiB
JavaScript
94 lines
3.4 KiB
JavaScript
export function onLoad() {
|
||
const statementField = document.querySelector('textarea[name="statement"]');
|
||
const generateButton = document.querySelector('button[id="gen"]');
|
||
|
||
const optionMapping = {
|
||
"Баклан": 1,
|
||
"Маг": 2,
|
||
"Спец": 3
|
||
};
|
||
|
||
function loadFromLocalStorage() {
|
||
const statement = localStorage.getItem('statement');
|
||
|
||
if (statement) {
|
||
statementField.value = statement;
|
||
}
|
||
}
|
||
|
||
generateButton.addEventListener('click', async () => {
|
||
hideLoadingModal(false);
|
||
console.log('Начата генерация заявления');
|
||
generateStatementModal.showModal();
|
||
|
||
const data = {
|
||
"phone": "+7 " + localStorage.getItem('phoneNumber'),
|
||
"kurs": localStorage.getItem('kurs'),
|
||
"isFreeEducation": localStorage.getItem('paid') === "false",
|
||
"isOchno": localStorage.getItem('ochno') === true,
|
||
"speciality": optionMapping[localStorage.getItem('option')],
|
||
"reason": localStorage.getItem('statement')
|
||
}
|
||
|
||
try {
|
||
const response = await fetch("generateStatement", {
|
||
method: 'POST',
|
||
headers: {
|
||
'Content-Type': 'application/json'
|
||
},
|
||
body: JSON.stringify(data)
|
||
});
|
||
|
||
if (response.ok) {
|
||
console.log('Заявление успешно сгенерировано');
|
||
location.href='otchislenie/result';
|
||
} else {
|
||
hideLoadingModal();
|
||
console.log('Ошибка при генерации заявления');
|
||
console.log(response);
|
||
}
|
||
} catch (error) {
|
||
hideLoadingModal();
|
||
console.log('Ошибка при генерации заявления');
|
||
console.log(response);
|
||
}
|
||
});
|
||
|
||
function hideLoadingModal(hide = true) {
|
||
var loadingAnim = document.getElementById('loadingAnim');
|
||
var failBlock = document.getElementById('failBlock');
|
||
|
||
if (hide) {
|
||
loadingAnim.classList.add('hidden');
|
||
failBlock.classList.remove('hidden');
|
||
} else {
|
||
loadingAnim.classList.remove('hidden');
|
||
failBlock.classList.add('hidden');
|
||
}
|
||
}
|
||
|
||
function validateField() {
|
||
// если первая буква в lowerCase, то превращаем ее в upperCase
|
||
if (statementField.value.length > 0 && statementField.value[0] === statementField.value[0].toLowerCase()) {
|
||
statementField.value = statementField.value[0].toUpperCase() + statementField.value.slice(1);
|
||
}
|
||
|
||
// удаляем пробелы если их больше одного подряд
|
||
statementField.value = statementField.value.replace(/\s{2,}/g, ' ');
|
||
|
||
localStorage.setItem('statement', statementField.value);
|
||
|
||
if (statementField.value.length > 50) {
|
||
// удаляем пробелы в начале и в конце строки
|
||
statementField.value = statementField.value.trim();
|
||
|
||
generateButton.classList.remove('btn-disabled');
|
||
} else
|
||
generateButton.classList.add('btn-disabled');
|
||
}
|
||
|
||
statementField.addEventListener('input', validateField);
|
||
|
||
loadFromLocalStorage();
|
||
validateField();
|
||
} |