2023-11-10 14:23:55 +04:00
|
|
|
|
// Модуль для работы с модальным окном
|
|
|
|
|
|
|
|
|
|
// импорт компонента Modal из bootstrap
|
|
|
|
|
import {Modal} from 'bootstrap';
|
|
|
|
|
import {cntrls, imagePlaceholder} from './lines-ui';
|
|
|
|
|
|
|
|
|
|
// поиск модального окна на странице
|
|
|
|
|
const modal = document.getElementById('items-update');
|
|
|
|
|
// если он найден, то создается экземпляр компонента Modal
|
|
|
|
|
// для программного управления модальным окном
|
|
|
|
|
const myModal = modal ? new Modal(modal, {}) : null;
|
|
|
|
|
|
|
|
|
|
// поиск тега с заголовком модального кона для его смены
|
|
|
|
|
const modalTitle = document.getElementById('items-update-title');
|
|
|
|
|
|
|
|
|
|
// обнуление значений модального окна, т. к.
|
|
|
|
|
// используется одно окно для всех операций
|
|
|
|
|
// eslint-disable-next-line require-jsdoc
|
|
|
|
|
function resetValues() {
|
|
|
|
|
cntrls.lineId.value = '';
|
|
|
|
|
cntrls.itemsType.value = '';
|
2023-11-21 16:11:09 +04:00
|
|
|
|
cntrls.name_book.value = '';
|
2023-11-20 23:03:27 +04:00
|
|
|
|
cntrls.author.value = '';
|
2023-11-10 14:23:55 +04:00
|
|
|
|
cntrls.price.value = parseFloat(0).toFixed(2);
|
2023-11-21 16:11:09 +04:00
|
|
|
|
cntrls.isbn.value = 0;
|
2023-11-10 14:23:55 +04:00
|
|
|
|
cntrls.image.value = '';
|
2023-11-21 16:11:09 +04:00
|
|
|
|
cntrls.text.value = '';
|
2023-11-10 14:23:55 +04:00
|
|
|
|
cntrls.imagePreview.src = imagePlaceholder;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// функция для показа модального окна
|
|
|
|
|
// перед показом происходит заполнение формы для редактирования
|
|
|
|
|
// если объект item не пуст
|
|
|
|
|
// eslint-disable-next-line require-jsdoc
|
|
|
|
|
export function showUpdateModal(item) {
|
|
|
|
|
modalTitle.innerHTML = item === null ? 'Добавить' : 'Изменить';
|
|
|
|
|
console.info(item);
|
|
|
|
|
|
|
|
|
|
if (item) {
|
|
|
|
|
cntrls.lineId.value = item.id;
|
|
|
|
|
cntrls.itemsType.value = item.itemsId;
|
2023-11-21 16:11:09 +04:00
|
|
|
|
cntrls.name_book.value = item.name_book;
|
2023-11-20 23:03:27 +04:00
|
|
|
|
cntrls.author.value = item.author;
|
2023-11-10 14:23:55 +04:00
|
|
|
|
cntrls.price.value = item.price;
|
2023-11-21 16:11:09 +04:00
|
|
|
|
cntrls.isbn.value = item.isbn;
|
2023-11-10 14:23:55 +04:00
|
|
|
|
// заполнение превью
|
|
|
|
|
// Если пользователь выбрал изображение, то оно загружается
|
|
|
|
|
// в тэг image с id image - preview
|
|
|
|
|
// иначе устанавливается заглушка, адрес которой указан в imagePlaceholder
|
|
|
|
|
cntrls.imagePreview.src = item.image ? item.image : imagePlaceholder;
|
|
|
|
|
} else {
|
|
|
|
|
resetValues();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
myModal.show();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// функция для скрытия модального окна
|
|
|
|
|
// eslint-disable-next-line require-jsdoc
|
|
|
|
|
export function hideUpdateModal() {
|
|
|
|
|
resetValues();
|
|
|
|
|
|
|
|
|
|
// удаление класса was-validated для скрытия результатов валидации
|
|
|
|
|
cntrls.form.classList.remove('was-validated');
|
|
|
|
|
|
|
|
|
|
myModal.hide();
|
|
|
|
|
}
|