feat: полная интеграция селектора календарей в создание событий
Реализовано:
1. Селектор календаря в форме создания события
- Заменил статический текст 'Календарь: Компания' на <select>
- Показывает legacy календари (Компания, Личный, Отделы)
- Показывает новые Calendar записи из БД
- Разделитель между legacy и новыми календарями
2. Функция populateCalendarSelector()
- Динамическое заполнение селектора при открытии формы
- Использует window.calendarIntegration.calendars
- Фильтрует legacy календари (startsWith('legacy-'))
- Устанавливает значение по умолчанию по state.type
3. Обновлена логика создания/редактирования событий
- Убран старый код с state.type (personal/dept/company)
- Новая логика читает target_calendar из формы:
* 'company' → без доп. параметров (общие события)
* 'personal' → employee_id из meta[name='user-id']
* 'dept-{id}' → department_id
* numeric ID → calendar_id (новые календари)
- Поддержка смешанных ID (string для legacy, int для новых)
- Работает как для POST (создание), так и для PATCH (редактирование)
4. При редактировании события
- Автоматическое определение календаря из data:
* data.calendar_id → numeric ID
* data.employee_id → 'personal'
* data.department_id → 'dept-{id}'
* иначе → 'company'
- Селектор устанавливается в правильное положение
Результат:
✅ События можно создавать в любом календаре (legacy + новые)
✅ События можно редактировать и перемещать между календарями
✅ Сохранение calendar_id в БД для новых календарей
✅ Обратная совместимость с legacy системой (employee_id/department_id)
✅ UI с иконками � для новых календарей
This commit is contained in:
parent
899d8156d7
commit
417fda790d
File diff suppressed because it is too large
Load Diff
@ -119,9 +119,14 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<small class="text-secondary d-block mt-2">
|
||||
Календарь: <span id="eventTargetLabel">Компания</span>
|
||||
</small>
|
||||
<div class="mt-3">
|
||||
<label class="form-label">Календарь</label>
|
||||
<select class="form-select" name="target_calendar" id="targetCalendarSelect">
|
||||
<option value="company" selected>Компания (общие события)</option>
|
||||
<option value="personal">Личный календарь</option>
|
||||
</select>
|
||||
<div class="form-text">События создаются в выбранном календаре</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="modal-footer">
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user