PIbd-21_Zhirnova_A._E._Inte.../3 proba/js/lines-modal.js

68 lines
2.8 KiB
JavaScript
Raw Normal View History

2023-12-22 12:28:50 +04:00
/* eslint-disable linebreak-style */
2024-01-09 15:01:48 +04:00
// Модуль для работы с модальным окном
// eslint-disable-next-line linebreak-style
// импорт компонента 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.nameBook.value = "";
cntrls.authorsType.value = "";
cntrls.genresType.value = "";
cntrls.year.value = "";
cntrls.description.value = "";
cntrls.count.value = "";
cntrls.image.value = "";
cntrls.imagePreview.src = imagePlaceholder;
2023-12-06 22:05:45 +04:00
}
2024-01-09 15:01:48 +04:00
// функция для показа модального окна
// перед показом происходит заполнение формы для редактирования
// если объект item не пуст
export function showUpdateModal(item) {
modalTitle.innerHTML = item === null ? "Добавить" : "Изменить";
console.info(item);
if (item) {
cntrls.lineId.value = item.id;
cntrls.nameBook.value = item.nameBook;
cntrls.authorsType.value = item.authorsId;
cntrls.genresType.value = item.genresId;
cntrls.year.value = item.year;
cntrls.description.value = item.description;
cntrls.count.value = item.count;
// заполнение превью
// Если пользователь выбрал изображение, то оно загружается
// в тэг image с id image - preview
// иначе устанавливается заглушка, адрес которой указан в imagePlaceholder
cntrls.imagePreview.src = item.image ? item.image : imagePlaceholder;
} else {
resetValues();
}
myModal.show();
2023-12-22 12:28:50 +04:00
}
2024-01-09 15:01:48 +04:00
// функция для скрытия модального окна
export function hideUpdateModal() {
resetValues();
2023-12-06 22:05:45 +04:00
2024-01-09 15:01:48 +04:00
// удаление класса was-validated для скрытия результатов валидации
cntrls.form.classList.remove("was-validated");
2023-12-06 22:05:45 +04:00
2024-01-09 15:01:48 +04:00
myModal.hide();
2023-12-06 22:05:45 +04:00
}