diff --git a/app/Livewire/AgentsTable.php b/app/Livewire/AgentsTable.php index 7b81517..b9d6909 100644 --- a/app/Livewire/AgentsTable.php +++ b/app/Livewire/AgentsTable.php @@ -46,4 +46,11 @@ public function restore($id) 'agent' => $id ]); } + + public function delete($id) + { + to_route('company.agents.delete', [ + 'agent' => $id + ]); + } } diff --git a/app/Modules/Admin/Http/Controllers/AdminCompaniesController.php b/app/Modules/Admin/Http/Controllers/AdminCompaniesController.php index 0c45d78..2a32666 100644 --- a/app/Modules/Admin/Http/Controllers/AdminCompaniesController.php +++ b/app/Modules/Admin/Http/Controllers/AdminCompaniesController.php @@ -16,9 +16,15 @@ public function index(Request $request) { $companies = Company::orderBy('name'); //if ($request->filter) { - if (!(!$request->filter || $request->filter == 'all')) + if ($request->filter) { - $companies->where('status', $request->filter); + if ($request->filter == 'trashed') { + $companies->onlyTrashed(); + } else { + if ($request->filter != 'all') { + $companies->where('status', $request->filter); + } + } } $companies = $companies->get(); return view('admin::companies.index', [ @@ -41,5 +47,14 @@ public function update(Request $request, Company $company) $company->update($request->only('name', 'email', 'phone')); return to_route('admin.companies.edit', ['company' => $company]); } + public function delete(Company $company) { + $company->delete(); + return back()->withSuccess('Агентство было перемещено в корзину. Все пользователи, прикрепленные к агентству не смогут войти на портал.'); + } + + public function restore(Company $company) { + $company->restore(); + return to_route('admin.companies.edit', ['company' => $company])->withSuccess('Агентство "' . $company->name . '" было восстановлено из корзины'); + } } diff --git a/app/Modules/Admin/Routes/web.php b/app/Modules/Admin/Routes/web.php index 5ce6c23..e419b53 100644 --- a/app/Modules/Admin/Routes/web.php +++ b/app/Modules/Admin/Routes/web.php @@ -29,11 +29,14 @@ Route::post('/admin/users/create', [Modules\Admin\Http\Controllers\AdminUsersController::class, 'store'])->name('admin.users.create'); Route::get('/admin/users/{user}/edit', [Modules\Admin\Http\Controllers\AdminUsersController::class, 'edit'])->name('admin.users.edit'); Route::post('/admin/users/{user}/update', [Modules\Admin\Http\Controllers\AdminUsersController::class, 'update'])->name('admin.users.update'); + Route::post('/admin/users/{user}/delete', [Modules\Admin\Http\Controllers\AdminUsersController::class, 'delete'])->name('admin.users.delete'); + Route::post('/admin/user-role/{userRole}/delete', [Modules\Admin\Http\Controllers\AdminUsersController::class, 'deleteUserRole'])->name('admin.users.role.delete'); Route::get('/admin/companies', [Modules\Admin\Http\Controllers\AdminCompaniesController::class, 'index'])->name('admin.companies'); - Route::get('/admin/companies/{company}/edit', [Modules\Admin\Http\Controllers\AdminCompaniesController::class, 'edit'])->name('admin.companies.edit'); + Route::get('/admin/companies/{company}/edit', [Modules\Admin\Http\Controllers\AdminCompaniesController::class, 'edit'])->name('admin.companies.edit')->withTrashed(); Route::post('/admin/companies/{company}/update', [Modules\Admin\Http\Controllers\AdminCompaniesController::class, 'update'])->name('admin.companies.update'); - Route::post('/admin/companies/{company}/delete', [Modules\Admin\Http\Controllers\AdminUsersController::class, 'update'])->name('admin.companies.delete'); + Route::post('/admin/companies/{company}/delete', [Modules\Admin\Http\Controllers\AdminCompaniesController::class, 'delete'])->name('admin.companies.delete'); + Route::post('/admin/companies/{company}/restore', [Modules\Admin\Http\Controllers\AdminCompaniesController::class, 'restore'])->name('admin.companies.restore')->withTrashed(); Route::get('/admin/cities', [Modules\Admin\Http\Controllers\AdminCitiesController::class, 'index'])->name('admin.cities'); Route::get('/admin/cities/managers', [Modules\Admin\Http\Controllers\AdminCityManagersController::class, 'index'])->name('admin.cities.managers'); diff --git a/app/Modules/Admin/Views/companies/index.blade.php b/app/Modules/Admin/Views/companies/index.blade.php index ba0b046..2c5ee6a 100644 --- a/app/Modules/Admin/Views/companies/index.blade.php +++ b/app/Modules/Admin/Views/companies/index.blade.php @@ -2,7 +2,7 @@ @extends('layouts.admin') @section('content')
| + |
|
@else
- {{ $agent->deleted_at->diffForHumans() }}
-
-
- Восстановить
-
+ Уволен {{ $agent->deleted_at->diffForHumans() }}
+ |
+
+
+
+
|
@endif