добавил возможность скрвать/показывать рег. менеджеров

This commit is contained in:
developer 2026-05-08 22:49:16 +08:00
parent bc19e0dbec
commit c12b363c79
6 changed files with 52 additions and 2 deletions

View File

@ -28,4 +28,11 @@ public function delete(Request $request, CityManager $manager)
$manager->delete(); $manager->delete();
return to_route('admin.cities.managers'); return to_route('admin.cities.managers');
} }
public function toggleShow(Request $request, CityManager $manager)
{
$manager->is_visible = !$manager->is_visible;
$manager->save();
return back();
}
} }

View File

@ -55,6 +55,7 @@
Route::get('/admin/cities/managers', [Modules\Admin\Http\Controllers\AdminCityManagersController::class, 'index'])->name('admin.cities.managers'); Route::get('/admin/cities/managers', [Modules\Admin\Http\Controllers\AdminCityManagersController::class, 'index'])->name('admin.cities.managers');
Route::post('/admin/cities/managers/create', [Modules\Admin\Http\Controllers\AdminCityManagersController::class, 'create'])->name('admin.cities.managers.create'); Route::post('/admin/cities/managers/create', [Modules\Admin\Http\Controllers\AdminCityManagersController::class, 'create'])->name('admin.cities.managers.create');
Route::post('/admin/cities/managers/{manager}/delete', [Modules\Admin\Http\Controllers\AdminCityManagersController::class, 'delete'])->name('admin.cities.managers.delete'); Route::post('/admin/cities/managers/{manager}/delete', [Modules\Admin\Http\Controllers\AdminCityManagersController::class, 'delete'])->name('admin.cities.managers.delete');
Route::post('/admin/cities/managers/{manager}/toggle-show', [Modules\Admin\Http\Controllers\AdminCityManagersController::class, 'toggleShow'])->name('admin.cities.managers.toggleShow');
Route::get('/admin/complexes', [Modules\Admin\Http\Controllers\AdminComplexesController::class, 'index'])->name('admin.complexes'); Route::get('/admin/complexes', [Modules\Admin\Http\Controllers\AdminComplexesController::class, 'index'])->name('admin.complexes');
Route::get('/admin/payments', [Modules\Admin\Http\Controllers\AdminPaymentsController::class, 'index'])->name('admin.payments'); Route::get('/admin/payments', [Modules\Admin\Http\Controllers\AdminPaymentsController::class, 'index'])->name('admin.payments');

View File

@ -30,6 +30,7 @@
<table class="table m-0"> <table class="table m-0">
<thead> <thead>
<tr scope="col"> <tr scope="col">
<th></th>
<th>Пользователь</th> <th>Пользователь</th>
<th>Город</th> <th>Город</th>
<th>Дата назначения</th> <th>Дата назначения</th>
@ -39,6 +40,20 @@
<tbody class=" "> <tbody class=" ">
@foreach ($managers as $manager) @foreach ($managers as $manager)
<tr> <tr>
<td>
<form method="post" action="{{ route('admin.cities.managers.toggleShow', ['manager' => $manager]) }}">
@csrf
@if(!$manager->is_visible)
<button class="btn btn-light" type="submit" title="Менеджер не отображается на основном сайте. Нажмите, чтобы показать.">
<i class="bi bi-eye-slash"></i>
</button>
@else
<button class="btn btn-success" type="submit" title="Менеджер виден на основном сайте. Нажмите, чтобы скрыть.">
<i class="bi bi-eye"></i>
</button>
@endif
</form>
</td>
<td>{{ $manager->user->name }}</td> <td>{{ $manager->user->name }}</td>
<td>{{ $manager->city->name }}</td> <td>{{ $manager->city->name }}</td>
<td>{{ $manager->created_at->diffForHumans() }}</td> <td>{{ $manager->created_at->diffForHumans() }}</td>

View File

@ -0,0 +1,26 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::table('city_managers', function (Blueprint $table)
{
$table->boolean('is_visible')->default(true);
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
}
};

View File

@ -11,7 +11,7 @@ class CityManagerInfo extends Component
public function mount() public function mount()
{ {
$availableCities = GetAvailableCities(); $availableCities = GetAvailableCities();
CityManager::whereIn('city_id', $availableCities->pluck('id'))->get()->each(function ($cityManager) { CityManager::where('is_visible', true)->whereIn('city_id', $availableCities->pluck('id'))->get()->each(function ($cityManager) {
if (!array_key_exists($cityManager->user->id, $this->managers)) { if (!array_key_exists($cityManager->user->id, $this->managers)) {
$this->managers[$cityManager->user->id] = [ $this->managers[$cityManager->user->id] = [
'user' => $cityManager->user, 'user' => $cityManager->user,

View File

@ -13,7 +13,8 @@ class CityManager extends Model
use HasFactory; use HasFactory;
protected $fillable = [ protected $fillable = [
'city_id', 'city_id',
'user_id' 'user_id',
'is_visible'
]; ];
public function user() public function user()
{ {