diff --git a/app/Http/Controllers/Admin/InformationController.php b/app/Http/Controllers/Admin/InformationController.php index f572507..0b87019 100644 --- a/app/Http/Controllers/Admin/InformationController.php +++ b/app/Http/Controllers/Admin/InformationController.php @@ -51,7 +51,7 @@ class InformationController extends Controller $q->where('oq.que_status', 3); } // all は絞り込みなし - $jobs = $q->orderByDesc('oq.que_id')->paginate(50)->appends($request->query()); + $jobs = $q->orderBy('oq.que_id')->paginate(20)->appends($request->query()); return view('admin.information.list', compact('jobs','period','type','status')); } diff --git a/resources/views/admin/information/list.blade.php b/resources/views/admin/information/list.blade.php index 0d888df..408561b 100644 --- a/resources/views/admin/information/list.blade.php +++ b/resources/views/admin/information/list.blade.php @@ -123,6 +123,62 @@ + + @php + $paginator = $jobs; + $current = $paginator->currentPage(); + $last = $paginator->lastPage(); + $query = request()->except('page'); + $pages = []; + if($last <= 20){ + $pages = range(1,$last); + }else{ + $pages[] = 1; + if($current > 4) $pages[] = '...L'; + $windowStart = max(2, $current - 2); + $windowEnd = min($last-1, $current + 2); + for($i=$windowStart; $i<=$windowEnd; $i++){ + $pages[] = $i; + } + if($current < $last - 3) $pages[] = '...R'; + $pages[] = $last; + } + function pageUrl($page,$query){ + return url()->current() . '?' . http_build_query(array_merge($query,['page'=>$page])); + } + @endphp + @if($last > 1) +