diff --git a/app/Http/Controllers/Admin/AdminInstanceController.php b/app/Http/Controllers/Admin/AdminInstanceController.php index 061fefb4..43a42979 100644 --- a/app/Http/Controllers/Admin/AdminInstanceController.php +++ b/app/Http/Controllers/Admin/AdminInstanceController.php @@ -14,29 +14,58 @@ trait AdminInstanceController public function instances(Request $request) { $this->validate($request, [ + 'filter' => [ 'nullable', 'string', 'min:1', 'max:20', - Rule::in(['autocw', 'unlisted', 'banned']) + Rule::in([ + 'cw', + 'unlisted', + 'banned', + // 'popular', + 'new', + 'all' + ]) ], ]); - if($request->has('filter') && $request->filled('filter')) { + if($request->has('q') && $request->filled('q')) { + $instances = Instance::where('domain', 'like', '%' . $request->input('q') . '%')->simplePaginate(10); + } else if($request->has('filter') && $request->filled('filter')) { switch ($request->filter) { - case 'autocw': - $instances = Instance::whereAutoCw(true)->orderByDesc('id')->paginate(5); + case 'cw': + $instances = Instance::select('id', 'domain', 'unlisted', 'auto_cw', 'banned')->whereAutoCw(true)->orderByDesc('id')->simplePaginate(10); break; case 'unlisted': - $instances = Instance::whereUnlisted(true)->orderByDesc('id')->paginate(5); + $instances = Instance::select('id', 'domain', 'unlisted', 'auto_cw', 'banned')->whereUnlisted(true)->orderByDesc('id')->simplePaginate(10); break; case 'banned': - $instances = Instance::whereBanned(true)->orderByDesc('id')->paginate(5); + $instances = Instance::select('id', 'domain', 'unlisted', 'auto_cw', 'banned')->whereBanned(true)->orderByDesc('id')->simplePaginate(10); break; + case 'new': + $instances = Instance::select('id', 'domain', 'unlisted', 'auto_cw', 'banned')->latest()->simplePaginate(10); + break; + // case 'popular': + // $popular = Profile::selectRaw('*, count(domain) as count') + // ->whereNotNull('domain') + // ->groupBy('domain') + // ->orderByDesc('count') + // ->take(10) + // ->get() + // ->pluck('domain') + // ->toArray(); + // $instances = Instance::whereIn('domain', $popular)->simplePaginate(10); + // break; + + default: + $instances = Instance::select('id', 'domain', 'unlisted', 'auto_cw', 'banned')->orderByDesc('id')->simplePaginate(10); + break; } } else { - $instances = Instance::orderByDesc('id')->paginate(5); + $instances = Instance::select('id', 'domain', 'unlisted', 'auto_cw', 'banned')->orderByDesc('id')->simplePaginate(10); } + return view('admin.instances.home', compact('instances')); } @@ -99,4 +128,4 @@ trait AdminInstanceController return response()->json([]); } -} \ No newline at end of file +} diff --git a/resources/views/admin/instances/home.blade.php b/resources/views/admin/instances/home.blade.php index 8e73e339..5bd16119 100644 --- a/resources/views/admin/instances/home.blade.php +++ b/resources/views/admin/instances/home.blade.php @@ -1,96 +1,87 @@ @extends('admin.partial.template-full') @section('section') -
Warning
-No instances were found.
-Do you want to scan and populate instances from Profiles and Statuses?
--
- -@else -- {{$instance->domain}} -
-- Overview - - @if($instance->unlisted) - - @endif - @if($instance->auto_cw) - - @endif - @if($instance->banned) - - @endif -
-{{$instance->profiles()->count()}}
-Profiles
-{{$instance->statuses()->count()}}
-Statuses
-{{$instance->reported()->count()}}
-Reports
-0
-Storage Used
-Warning
+No instances were found.
Do you want to scan and populate instances from Profiles and Statuses?
++
+ + @else ++ {{$instance->domain}} +
++ @if($instance->unlisted) + + @endif + @if($instance->auto_cw) + + @endif + @if($instance->banned) + + @endif + Overview + +
+No results found
+ + @endif + @if(request()->filled('filter') && $instances->count() == 0) +No results found
+ + @endif +