diff --git a/app/Http/Controllers/Admin/GroupUserController.php b/app/Http/Controllers/Admin/GroupUserController.php index 74b7bb9..16385b5 100755 --- a/app/Http/Controllers/Admin/GroupUserController.php +++ b/app/Http/Controllers/Admin/GroupUserController.php @@ -47,9 +47,7 @@ class GroupUserController extends Controller { Gate::authorize('create', Group::class); - $organizations = Organization::pluck('name', 'id'); - - return view('admin.groups.create', compact('organizations')); + return view('admin.groups.create'); } public function store(Request $request) diff --git a/app/Http/Controllers/Api/OrganizationSearchController.php b/app/Http/Controllers/Api/OrganizationSearchController.php new file mode 100755 index 0000000..e466f13 --- /dev/null +++ b/app/Http/Controllers/Api/OrganizationSearchController.php @@ -0,0 +1,30 @@ +get('q', ''); + + $organizations = Organization::query() + ->where('name', 'like', "%{$query}%") + ->orWhere('inn', 'like', "%{$query}%") + ->orderBy('name') + ->limit(50) + ->get() + ->map(function($org) { + return [ + 'id' => $org->id, + 'text' => $org->name . ($org->inn ? " (ИНН: {$org->inn})" : ''), + ]; + }); + + return response()->json($organizations); + } +} diff --git a/resources/views/admin/groups/create.blade.php b/resources/views/admin/groups/create.blade.php index 89ab528..c73b1b6 100755 --- a/resources/views/admin/groups/create.blade.php +++ b/resources/views/admin/groups/create.blade.php @@ -30,13 +30,13 @@
@@ -90,3 +90,6 @@ document.addEventListener('DOMContentLoaded', function() { }); @endsection + +@push('scripts') +@endpush diff --git a/resources/views/components/searchable-select.blade.php b/resources/views/components/searchable-select.blade.php new file mode 100644 index 0000000..c9fd532 --- /dev/null +++ b/resources/views/components/searchable-select.blade.php @@ -0,0 +1,55 @@ +@props(['name', 'url', 'placeholder' => 'Начните вводить...', 'value' => null, 'required' => false]) + + + + +@push('scripts') + + + +@endpush diff --git a/routes/web.php b/routes/web.php index cb3254b..021c4fe 100644 --- a/routes/web.php +++ b/routes/web.php @@ -11,6 +11,7 @@ use App\Http\Controllers\Admin\TestController; use App\Http\Controllers\Admin\QuestionController; use App\Http\Controllers\Admin\CourseAssignmentController; use App\Http\Controllers\Admin\GroupUserController; +use App\Http\Controllers\Api\OrganizationSearchController; use App\Http\Controllers\DashboardController; use Illuminate\Support\Facades\Route; @@ -53,4 +54,7 @@ Route::middleware('auth')->group(function () { Route::post('/users/{user}/groups/add', [GroupUserController::class, 'addUser'])->name('groups.users.add'); Route::delete('/groups/{group}/users/{user}/remove', [GroupUserController::class, 'removeUser'])->name('groups.users.remove'); }); + + // API для поиска + Route::get('/api/organizations/search', OrganizationSearchController::class)->name('api.organizations.search'); });