From 68334415147a14d43f7edd443c77510429cb462b Mon Sep 17 00:00:00 2001 From: mirivlad Date: Thu, 2 Apr 2026 09:19:50 +0800 Subject: [PATCH] =?UTF-8?q?Fix:=20=D0=9F=D1=80=D0=B0=D0=B2=D0=B8=D0=BB?= =?UTF-8?q?=D1=8C=D0=BD=D0=BE=D0=B5=20=D0=BF=D0=BE=D0=BB=D1=83=D1=87=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20=D0=BD=D0=B0=D0=B7=D0=B2=D0=B0=D0=BD=D0=B8?= =?UTF-8?q?=D0=B9=20=D0=B8=D0=B7=20TomSelect=20options?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ✅ Проверка options перед обращением ✅ Fallback на 'Курс #ID' если option не найден ✅ Безопасное получение text из options Co-authored-by: Qwen-Coder --- .../admin/course-requests/create.blade.php | 18 ++++++++++++++---- .../views/admin/course-requests/edit.blade.php | 17 +++++++++++++---- 2 files changed, 27 insertions(+), 8 deletions(-) diff --git a/resources/views/admin/course-requests/create.blade.php b/resources/views/admin/course-requests/create.blade.php index 4ba9eda..0defa0d 100644 --- a/resources/views/admin/course-requests/create.blade.php +++ b/resources/views/admin/course-requests/create.blade.php @@ -233,17 +233,27 @@ document.getElementById('addElementBtn').addEventListener('click', function() { return; } + // Получаем названия + const courseOption = courseSelect.options[courseId]; + const orgOption = organizationId ? orgSelect.options[organizationId] : null; + // Добавляем элемент items.push({ id: elementCounter++, course_id: courseId, - course_name: courseSelect.options[courseId]?.text || 'Курс', + course_name: courseOption ? courseOption.text : 'Курс #' + courseId, organization_id: organizationId || null, - organization_name: organizationId ? orgSelect.options[organizationId]?.text : null, + organization_name: orgOption ? orgOption.text : null, group_ids: Array.isArray(groupIds) ? groupIds : [groupIds], - group_names: (Array.isArray(groupIds) ? groupIds : [groupIds]).map(id => groupTags.options[id]?.text).filter(Boolean), + group_names: (Array.isArray(groupIds) ? groupIds : [groupIds]).map(id => { + const opt = groupTags.options[id]; + return opt ? opt.text : 'Группа #' + id; + }).filter(Boolean), user_ids: Array.isArray(userIds) ? userIds : [userIds], - user_names: (Array.isArray(userIds) ? userIds : [userIds]).map(id => userTags.options[id]?.text).filter(Boolean), + user_names: (Array.isArray(userIds) ? userIds : [userIds]).map(id => { + const opt = userTags.options[id]; + return opt ? opt.text : 'Пользователь #' + id; + }).filter(Boolean), start_date: startDate, end_date: endDate || null }); diff --git a/resources/views/admin/course-requests/edit.blade.php b/resources/views/admin/course-requests/edit.blade.php index 3221ea7..4479b45 100644 --- a/resources/views/admin/course-requests/edit.blade.php +++ b/resources/views/admin/course-requests/edit.blade.php @@ -192,16 +192,25 @@ document.getElementById('addElementBtn').addEventListener('click', function() { if (!courseId) { alert('Выберите курс'); return; } if (!startDate) { alert('Укажите дату начала'); return; } + const courseOption = courseSelect.options[courseId]; + const orgOption = organizationId ? orgSelect.options[organizationId] : null; + items.push({ id: elementCounter++, course_id: courseId, - course_name: courseSelect.options[courseId]?.text || 'Курс', + course_name: courseOption ? courseOption.text : 'Курс #' + courseId, organization_id: organizationId || null, - organization_name: organizationId ? orgSelect.options[organizationId]?.text : null, + organization_name: orgOption ? orgOption.text : null, group_ids: Array.isArray(groupIds) ? groupIds : [groupIds], - group_names: (Array.isArray(groupIds) ? groupIds : [groupIds]).map(id => groupTags.options[id]?.text).filter(Boolean), + group_names: (Array.isArray(groupIds) ? groupIds : [groupIds]).map(id => { + const opt = groupTags.options[id]; + return opt ? opt.text : 'Группа #' + id; + }).filter(Boolean), user_ids: Array.isArray(userIds) ? userIds : [userIds], - user_names: (Array.isArray(userIds) ? userIds : [userIds]).map(id => userTags.options[id]?.text).filter(Boolean), + user_names: (Array.isArray(userIds) ? userIds : [userIds]).map(id => { + const opt = userTags.options[id]; + return opt ? opt.text : 'Пользователь #' + id; + }).filter(Boolean), start_date: startDate, end_date: endDate || null });