the browser-facing portion of osu!
at master 91 lines 3.9 kB view raw
1{{-- 2 Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the GNU Affero General Public License v3.0. 3 See the LICENCE file in the repository root for full licence text. 4--}} 5@if ($object->lastPage() > 1) 6 @php 7 if ($object->currentPage() > $object->lastPage()) { 8 $currentPage = $object->lastPage() + 1; 9 } else { 10 $currentPage = $object->currentPage(); 11 } 12 @endphp 13 14 <nav class="{{ class_with_modifiers('pagination-v2', $modifiers ?? []) }}"> 15 <div class="pagination-v2__col"> 16 @if ($currentPage === 1) 17 <span class="pagination-v2__link pagination-v2__link--quick pagination-v2__link--disabled"> 18 <i class="fas fa-angle-left"></i> 19 <span class="hidden-xs"> 20 {{ osu_trans('common.pagination.previous') }} 21 </span> 22 </span> 23 @else 24 <a class="pagination-v2__link pagination-v2__link--quick" href="{{ $object->url($currentPage - 1) }}"> 25 <i class="fas fa-angle-left"></i> 26 <span class="hidden-xs"> 27 {{ osu_trans('common.pagination.previous') }} 28 </span> 29 </a> 30 @endif 31 </div> 32 33 <ul class="pagination-v2__col pagination-v2__col--pages"> 34 {{-- decide if we're showing first page link separately --}} 35 @if ($currentPage > 3) 36 <li class="pagination-v2__item"> 37 <a class="pagination-v2__link" href="{{ $object->url(1) }}">1</a> 38 </li> 39 @endif 40 41 @if ($currentPage > 4) 42 <li class="pagination-v2__item"> 43 <span class="pagination-v2__link">...</span> 44 </li> 45 @endif 46 47 @foreach(range(max($currentPage - 2, 1), min($currentPage + 2, $object->lastPage())) as $page) 48 <li class="pagination-v2__item"> 49 @if ($page === $currentPage) 50 <span class="pagination-v2__link pagination-v2__link--active">{{ $page }}</span> 51 @else 52 <a class="pagination-v2__link" href="{{ $object->url($page) }}">{{ $page }}</a> 53 @endif 54 </li> 55 @endforeach 56 57 {{-- decide if we're showing last page link separately --}} 58 {{-- first, see if `...` is needed --}} 59 @if (($currentPage + 2) < ($object->lastPage() - 1)) 60 <li class="pagination-v2__item"> 61 <span class="pagination-v2__link">...</span> 62 </li> 63 @endif 64 65 {{-- see if the link is needed --}} 66 @if (($currentPage + 2) < $object->lastPage()) 67 <li class="pagination-v2__item"> 68 <a class="pagination-v2__link" href="{{ $object->url($object->lastPage()) }}">{{ $object->lastPage() }}</a> 69 </li> 70 @endif 71 </ul> 72 73 <div class="pagination-v2__col"> 74 @if ($currentPage >= $object->lastPage()) 75 <span class="pagination-v2__link pagination-v2__link--quick pagination-v2__link--disabled"> 76 <span class="hidden-xs"> 77 {{ osu_trans('common.pagination.next') }} 78 </span> 79 <i class="fas fa-angle-right"></i> 80 </span> 81 @else 82 <a class="pagination-v2__link pagination-v2__link--quick" href="{{ $object->url($currentPage + 1) }}"> 83 <span class="hidden-xs"> 84 {{ osu_trans('common.pagination.next') }} 85 </span> 86 <i class="fas fa-angle-right"></i> 87 </a> 88 @endif 89 </div> 90 </nav> 91@endif