- Created calendarWidgetIntegration.js as integration layer - Modified calendarWidget.js to use new calendar filtering system - Added fallback to legacy mode for backward compatibility - Updated calendar_scripts.html to initialize integration - Implemented fetchEventsForVisibleCalendars with calendar_id filtering - Added event deduplication and color override from calendars - Exposed window.calendarIntegration for global access - Added comprehensive logging for debugging Technical decisions: - Non-invasive integration via optional chaining - Callback-based synchronization (onCalendarToggle, onCalendarsChange) - Parallel event loading with Promise.all() - Automatic legacy mode when no calendars configured
23 lines
801 B
HTML
23 lines
801 B
HTML
{% load static %}
|
||
{# === JavaScript инициализация календаря === #}
|
||
|
||
<script type="module">
|
||
import { initCalendarWidget } from '{% static "js/components/calendarWidget.js" %}';
|
||
import { integrateCalendarManager } from '{% static "js/components/calendarWidgetIntegration.js" %}';
|
||
|
||
// Инициализация базового виджета календаря
|
||
const widget = initCalendarWidget();
|
||
|
||
if (widget) {
|
||
window.calendarWidget = widget;
|
||
|
||
// Интеграция с менеджером календарей
|
||
const integration = integrateCalendarManager(widget);
|
||
if (integration) {
|
||
window.calendarIntegration = integration;
|
||
console.log('[Calendar] Integration initialized with multiple calendars support');
|
||
}
|
||
}
|
||
</script>
|
||
|