62 lines
2.6 KiB
JavaScript
62 lines
2.6 KiB
JavaScript
// Модуль для работы с модальным окном
|
||
|
||
// импорт компонента 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");
|
||
|
||
// обнуление значений модального окна, т. к.
|
||
// используется одно окно для всех операций
|
||
function resetValues() {
|
||
cntrls.lineId.value = "";
|
||
cntrls.genreType.value = "";
|
||
cntrls.price.value = parseFloat(0).toFixed(2);
|
||
cntrls.name_book.value = "";
|
||
cntrls.author.value = "";
|
||
cntrls.image.value = "";
|
||
cntrls.imagePreview.src = imagePlaceholder;
|
||
}
|
||
|
||
// функция для показа модального окна
|
||
// перед показом происходит заполнение формы для редактирования
|
||
// если объект item не пуст
|
||
export function showUpdateModal(genre) {
|
||
modalTitle.innerHTML = genre=== null ? "Добавить" : "Изменить";
|
||
console.info(genre);
|
||
console.log(genre);
|
||
if (genre) {
|
||
cntrls.lineId.value = genre.id;
|
||
cntrls.genreType.value = genre.itemsId;
|
||
cntrls.name_book.value = genre.name_book;
|
||
cntrls.price.value = genre.price;
|
||
cntrls.author.value = genre.authorsId;
|
||
// заполнение превью
|
||
// Если пользователь выбрал изображение, то оно загружается
|
||
// в тэг image с id image - preview
|
||
// иначе устанавливается заглушка, адрес которой указан в imagePlaceholder
|
||
cntrls.imagePreview.src = genre.image ? genre.image : imagePlaceholder;
|
||
} else {
|
||
resetValues();
|
||
}
|
||
|
||
myModal.show();
|
||
}
|
||
|
||
// функция для скрытия модального окна
|
||
export function hideUpdateModal() {
|
||
resetValues();
|
||
|
||
// удаление класса was-validated для скрытия результатов валидации
|
||
cntrls.form.classList.remove("was-validated");
|
||
|
||
myModal.hide();
|
||
}
|