fix: вернуть цветной корешок для событий календаря

Проблема:
- Левая граница (корешок) событий была белой
- Не отображался цвет календаря
- border-left устанавливался без цвета в SCSS

Решение:

1. calendarWidget.js - eventDidMount:
   - Вернул установку полного border-left через JS
   - С цветом календаря: border-left: 4px solid <calendarColor>
   - Без цвета календаря: border-left: 3px solid <eventColor>

2. _calendar-events.scss:
   - Оставил только padding-left (не конфликтует с JS)
   - Добавил комментарии что border-left устанавливается через JS

Результат:
✅ Корешок показывает цвет календаря (4px)
✅ Для legacy календарей - цвет события (3px)
✅ Двухцветная схема работает корректно
✅ SCSS не перезаписывает JS стили

Пример:
- Календарь отдела (красный) + событие (синее) = красный корешок + синий фон
- Legacy календарь + событие (синее) = синий корешок + синий фон
This commit is contained in:
admin i 2026-02-11 13:33:28 +03:00
parent f311d27dad
commit b18802e563
4 changed files with 9 additions and 7 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1017,13 +1017,14 @@ export function initCalendarWidget(options = {}) {
if (calendarColor) {
// Если есть цвет календаря - показываем оба цвета
eventEl.setAttribute("data-has-calendar-color", "true");
eventEl.style.borderLeftColor = calendarColor;
eventEl.style.backgroundColor = eventColor + "CC"; // 80% прозрачности
eventEl.style.borderLeft = `4px solid ${calendarColor}`; // Левая граница = цвет календаря
eventEl.style.backgroundColor = eventColor + "CC"; // 80% прозрачности, фон = цвет события
eventEl.style.borderColor = eventColor;
} else {
// Если нет цвета календаря - используем только цвет события
eventEl.style.backgroundColor = eventColor;
eventEl.style.borderColor = eventColor;
eventEl.style.borderLeft = `3px solid ${eventColor}`;
}
// Улучшаем читаемость текста

View File

@ -56,8 +56,8 @@ $event-max-lines: 2;
// События С цветом календаря (новая система)
.fc-event[data-has-calendar-color="true"] {
// Левая граница = цвет календаря (устанавливается через JS)
border-left: $event-border-width solid !important;
// Левая граница = цвет календаря (устанавливается через JS с шириной и цветом)
// border-left устанавливается через JS: border-left: 4px solid <calendarColor>
padding-left: ($event-padding-x + 1px) !important;
// Фон = цвет события с прозрачностью (устанавливается через JS)
@ -69,7 +69,8 @@ $event-max-lines: 2;
// События БЕЗ цвета календаря (legacy система)
.fc-event:not([data-has-calendar-color="true"]) {
// Просто цвет события без границы
// Левая граница = цвет события (устанавливается через JS)
// border-left устанавливается через JS: border-left: 3px solid <eventColor>
box-shadow: 0 1px 1px rgba(0, 0, 0, 0.06);
}