diff --git a/app/Http/Controllers/Api/GroupSearchController.php b/app/Http/Controllers/Api/GroupSearchController.php index b318995..07ec634 100755 --- a/app/Http/Controllers/Api/GroupSearchController.php +++ b/app/Http/Controllers/Api/GroupSearchController.php @@ -13,11 +13,6 @@ class GroupSearchController extends Controller $query = $request->get('q', ''); $userId = $request->get('user_id', null); - // Если запрос пустой - возвращаем пустой массив - if (empty(trim($query))) { - return response()->json([]); - } - $groupsQuery = Group::query()->with('organization'); // Если указан user_id - фильтруем по доступным группам @@ -37,8 +32,12 @@ class GroupSearchController extends Controller } } + // Если запрос не пустой - фильтруем по названию + if (!empty(trim($query))) { + $groupsQuery->where('name', 'like', "%{$query}%"); + } + $groups = $groupsQuery - ->where('name', 'like', "%{$query}%") ->orderBy('name') ->limit(50) ->get() diff --git a/resources/views/components/tags-input.blade.php b/resources/views/components/tags-input.blade.php index cc0ad6d..72eb53a 100644 --- a/resources/views/components/tags-input.blade.php +++ b/resources/views/components/tags-input.blade.php @@ -148,10 +148,14 @@ document.addEventListener('DOMContentLoaded', function() { @if(count($value) > 0) const existingIds = {!! json_encode(array_map('strval', is_array($value) ? $value : [])) !!}; if (existingIds.length > 0) { - // Загружаем все группы и фильтруем нужные - fetch('{{ $url }}?q=') + // Загружаем все доступные группы (с user_id для фильтрации) + let url = '{{ $url }}?q='; + @if(isset($user_id) && $user_id)url += '&user_id={{ $user_id }}';@endif + + fetch(url) .then(response => response.json()) .then(allItems => { + // Фильтруем только нужные группы const items = allItems.filter(item => existingIds.includes(String(item.id))); items.forEach(item => { select.addOption(item);