✅ Administrator/Manager видят Заявки на курсы
✅ Curator видит Заявки на курсы
✅ Иконка file-earmark-plus
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
✅ Каждый элемент создаёт отдельную запись
✅ organization_id = null для пользователей/групп
✅ organization_id заполняется для организаций
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
✅ Кнопка удаления в index (с подтверждением)
✅ Кнопка удаления в show (с подтверждением)
✅ Удаление элементов в edit (JavaScript)
✅ approve/reject кнопки в index
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
✅ Номер заявки вместо организации в списке
✅ Столбец Получатели (пользователи/группы/организации)
✅ Null-safe для organization, user, group
✅ Бейджи с названиями в show.blade.php
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
✅ Проверка options перед обращением
✅ Fallback на 'Курс #ID' если option не найден
✅ Безопасное получение text из options
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
✅ <select multiple> вместо <div> для групп/пользователей
✅ plugins: ['remove_button'] для крестиков
✅ modalInitialized флаг для однократной инициализации
✅ Правильное получение getValue() для мультивыбора
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
✅ Modal с TomSelect для всех полей
✅ Курс, Организация, Группа, Пользователь - всё с поиском
✅ Динамическое добавление элементов через JSON
✅ edit.blade.php с загрузкой существующих элементов
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
✅ initTomSelectForElement() для инициализации новых элементов
✅ TomSelect для курсов и организаций
✅ Ручная инициализация при добавлении элемента
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
✅ create.blade.php — создание с элементами
✅ show.blade.php — просмотр с статистикой
✅ edit.blade.php — редактирование элементов
✅ Кнопки approve/reject на show
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
✅ Добавлен use User и use Group
✅ exclude_organization_id для поиска пользователей
✅ Исключение пользователей из текущей организации
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
✅ AJAX добавление/удаление пользователей
✅ AJAX добавление/удаление групп
✅ Modal редактирования организации
✅ Фильтрация GroupSearchController для организаций
✅ Счётчики обновляются без перезагрузки
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
✅ Проверка organization_id только для групп организации
✅ Общие группы добавляют любых пользователей
✅ Разные placeholder для общих/организационных групп
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
✅ Проверка на дубликаты (не добавлять если уже в группе)
✅ Фильтрация поиска по организации группы
✅ UserSearchController фильтрует по organization_id
✅ Подсказка в modal для групп организации
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
✅ Маршрут: POST /groups/{group}/users/add
✅ Контроллер принимает Group из маршрута
✅ JavaScript обновлён
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
✅ Проверка на начатые тесты перед редактированием
✅ Если тестов нет — можно менять курс и дату начала
✅ Если тесты есть — только дата окончания и заметка
✅ Предупреждение в modal
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
✅ При клике на ✏️ из списка → #edit в URL
✅ JavaScript открывает modal при загрузке
✅ Bootstrap 5 Modal API
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
✅ Группировка по курсу + датам в index
✅ Сводная статистика (пользователи/группы/организации)
✅ show с раздельными списками по типам
✅ Modals для быстрого добавления
✅ Удаление edit/update - управление через show
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
✅ CourseAssignmentController (index, create, store)
✅ create.blade.php с тремя tags-input (пользователи/группы/организации)
✅ Разные цвета бейджей (зелёный/голубой/синий)
✅ UserSearchController API
✅ index.blade.php список назначений
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
✅ edit.blade.php — выбор организации через searchable-select
✅ create.blade.php — выбор организации через searchable-select
✅ Контроллер не передаёт $organizations
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
✅ Только бейджи с названиями групп
✅ Без поля поиска и удаления
✅ Отображение организации в скобках
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
✅ console.log для всех этапов инициализации
✅ Логирование загрузки существующих тегов
✅ Логирование API запросов и ответов
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
✅ API возвращает группы при пустом запросе с user_id
✅ Фильтрация по названию только если query не пустой
✅ Компонент передаёт user_id при загрузке тегов
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
✅ $user->load('groups') для eager loading
✅ Проверка !empty(trim()) для groups поля
✅ Не очищаем группы если поле пустое
✅ Загрузка существующих тегов при инициализации
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
✅ API не возвращает группы при пустом запросе
✅ onItemAdd вместо onChange для добавления тегов
✅ Очистка поля после добавления тега
✅ Фильтрация по организации пользователя
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>