fix(calendar): resolve infinite loading on manage calendar button

- Removed duplicate modal opening via data-bs-toggle attribute
- Changed to programmatic opening via openForCreate() only
- Added calendar:edit event listener for edit functionality
- Updated button selector from data-bs-target to data-action

Issue: Button had both Bootstrap modal trigger and JS event listener,
causing double initialization and infinite loading state.

Solution: Use only programmatic modal opening through calendarManageModal API.
This commit is contained in:
admin i 2026-02-11 10:59:10 +03:00
parent d9395def63
commit 6a99acf7e4
2 changed files with 11 additions and 3 deletions

View File

@ -180,13 +180,22 @@ export function integrateCalendarManager(calendarWidgetInstance, options = {}) {
});
// Привязываем кнопку создания календаря к модальному окну
const createCalendarBtn = document.querySelector('[data-bs-target="#calendarManageModal"]');
const createCalendarBtn = document.querySelector('[data-action="create-calendar"]');
if (createCalendarBtn && manageModalInstance) {
createCalendarBtn.addEventListener('click', () => {
manageModalInstance.openForCreate();
});
}
// Обрабатываем событие редактирования календаря из списка
if (manageModalInstance) {
document.addEventListener('calendar:edit', (e) => {
const calendar = e.detail;
console.log('[CalendarIntegration] Edit calendar requested:', calendar);
manageModalInstance.openForEdit(calendar.id);
});
}
// Создаём объект интеграции
const integration = {
/**

View File

@ -25,8 +25,7 @@
<button
class="btn btn-sm btn-outline-primary"
type="button"
data-bs-toggle="modal"
data-bs-target="#calendarManageModal"
data-action="create-calendar"
aria-label="Создать календарь"
title="Создать календарь"
>