ldc-crm/resources/views/bo/modules/pagination/default.blade.php
2025-09-08 15:06:00 +02:00

76 lines
4.9 KiB
PHP

{{-- GET ACTUAL PAGINATION --}}
@php $pagination = intval(Cache::get('pagination.' . str(request()->route()->getName())->slug())); @endphp
@if ($paginator->items())
<nav class="pagination-custom d-flex justify-content-between align-items-center">
@include('bo.modules.pagination.items-per-page')
@if ($paginator->hasPages())
{{-- PAGINATION --}}
<div class="d-flex justify-content-end align-items-center">
<ul class="pagination m-0">
{{-- PREVIOUS PAGE --}}
<li class="page-item @if ($paginator->onFirstPage()) disabled @endif">
<a class="page-link d-flex align-items-center h-100" data-bs-tooltip="tooltip"
title="{{ __('pagination.previous_page') }}" aria-label="{{ __('pagination.previous_page') }}"
@if (!$paginator->onFirstPage()) href="{{ request()->fullUrlWithQuery(['page' => $paginator->currentPage() - 1]) }}" @endif
rel="prev" @if ($paginator->onFirstPage()) aria-hidden="true" disabled @endif>
<i class="fa-solid fa-chevron-left fa-2xs mt-1"></i>
</a>
</li>
{{-- FIRST PAGE --}}
@if ($paginator->currentPage() > 3)
<li class="page-item d-none d-sm-block" data-bs-tooltip="tooltip"
title="{{ __('pagination.specific_page', ['id' => 1]) }}">
<a class="page-link" href="{{ request()->fullUrlWithQuery(['page' => 1]) }}">1</a>
</li>
@endif
{{-- HIDE PAGES TOO FAR --}}
@if ($paginator->currentPage() > 4)
<li class="page-item d-none d-sm-block disabled"><span class="page-link">...</span></li>
@endif
{{-- SHOW ACTUAL PAGES + N-2/N+2 --}}
@foreach (range(1, $paginator->lastPage()) as $i)
@if ($i >= $paginator->currentPage() - 2 && $i <= $paginator->currentPage() + 2)
@if ($i == $paginator->currentPage())
<li class="page-item">
<form
action="{{ route(request()->route()->getName(), request()->route()->parameters()) }}">
<input class="form-control border-start-0 rounded-0" type="number"
name="page" value="{{ $i }}" min="1"
max="{{ $paginator->lastPage() }}">
</form>
</li>
@else
<li class="page-item d-none d-md-block" data-bs-tooltip="tooltip"
title="{{ __('pagination.specific_page', ['id' => $i]) }}">
<a class="page-link"
href="{{ request()->fullUrlWithQuery(['page' => $i]) }}">{{ $i }}</a>
</li>
@endif
@endif
@endforeach
{{-- HIDE PAGES TOO FAR --}}
@if ($paginator->currentPage() < $paginator->lastPage() - 3)
<li class="page-item d-none d-sm-block disabled"><span class="page-link">...</span></li>
@endif
{{-- LAST PAGE --}}
@if ($paginator->currentPage() < $paginator->lastPage() - 2)
<li class="page-item d-none d-sm-block" data-bs-tooltip="tooltip"
title="{{ __('pagination.specific_page', ['id' => $paginator->lastPage()]) }}">
<a class="page-link"
href="{{ request()->fullUrlWithQuery(['page' => $paginator->lastPage()]) }}">{{ $paginator->lastPage() }}</a>
</li>
@endif
{{-- NEXT PAGE --}}
<li class="page-item @if (!$paginator->hasMorePages()) disabled @endif">
<a class="page-link d-flex align-items-center h-100" data-bs-tooltip="tooltip"
title="{{ __('pagination.next_page') }}" aria-label="{{ __('pagination.next_page') }}"
@if ($paginator->hasMorePages()) href="{{ request()->fullUrlWithQuery(['page' => $paginator->currentPage() + 1]) }}" @endif
rel="next" @if (!$paginator->hasMorePages()) aria-hidden="true" disabled @endif>
<i class="fa-solid fa-chevron-right fa-2xs mt-1"></i>
</a>
</li>
</ul>
</div>
@endif
</nav>
@endif