Skip to content

Commit 092d0a2

Browse files
committed
[PRAC/cont] Add logic for deleting "edit" client
Organiz client/row deletion, by "Delete client" btn (in "edit" window). Worth noting: - that it/btn was "just" closing this window.. before. core: B-3 / JS-BL
1 parent 7df6b30 commit 092d0a2

File tree

1 file changed

+34
-1
lines changed
  • core-courses/3-js-basic-level/practicum-js-basic-level/sb-crm-client/js

1 file changed

+34
-1
lines changed

core-courses/3-js-basic-level/practicum-js-basic-level/sb-crm-client/js/index.js

Lines changed: 34 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -702,7 +702,7 @@
702702
getOutputTable.addEventListener('click', deleteBodyRowsByBtn);
703703

704704
// ** удаление элементов/строк таблицы данных о клиентах (ОБЩАЯ ЛОГИКА)
705-
function deleteBodyRowsClients(
705+
async function deleteBodyRowsClients(
706706
clientsServerIdsToDelete,
707707
confirmMessage = null,
708708
currentBtn = null
@@ -1713,6 +1713,11 @@
17131713
modalDialog.append(modalContent);
17141714
modalWrap.append(modalDialog);
17151715

1716+
// корректировка Bootstrap атрибута для кнопки "Отмена/Удалить клиента" (т.к. при "edit" нужны другие действия)
1717+
if (type === 'edit') {
1718+
modalFooterCancelBtn.removeAttribute('data-bs-dismiss');
1719+
}
1720+
17161721
// вызов/инициализация tooltips для "X" модальной кнопки (для кнопки закрытия модального окна, с задержкой)
17171722
setTimeout(() => {
17181723
initTippy(modalHeaderXBtn, 'закрыть', 'left');
@@ -1760,6 +1765,34 @@
17601765
// обработка "submit" события для формы (общая валидация, ряд действий)
17611766
handleModalFormSubmit({ modalBodyForm, type, clientData });
17621767

1768+
// организация удаления клиента/строки, через внутреннюю кнопку "Удалить клинта" (при "edit" модальном окне)
1769+
if (type === 'edit') {
1770+
modalFooterCancelBtn.addEventListener('click', async (event) => {
1771+
event.preventDefault(); // исключение закрытия модального окна
1772+
1773+
const clientServerId = clientData.id; // фиксация серверного ID клиента
1774+
if (!clientServerId) {
1775+
console.error('Ошибка: отсутствует ID клиента для удаления!');
1776+
return;
1777+
}
1778+
1779+
// вызов "confirm" для подтверждения удаления
1780+
const confirmed = confirm('Вы уверены, что хотите удалить клиента?');
1781+
if (!confirmed) {
1782+
return;
1783+
}
1784+
1785+
// отработка удаления клиента/строки
1786+
await deleteBodyRowsClients([clientServerId], null, event.target);
1787+
1788+
// закрытие модального окна после удаления
1789+
const modalInstance = bootstrap.Modal.getInstance(modalWrap);
1790+
if (modalInstance) {
1791+
modalInstance.hide();
1792+
}
1793+
});
1794+
}
1795+
17631796
return modalWrap; // возврат модального окна (т.е. здесь/без добавления в DOM.. позже, при клике)
17641797
}
17651798

0 commit comments

Comments
 (0)