column-header.blade.php 1.4 KB

123456789101112131415161718192021222324252627282930313233
  1. @php
  2. $isCurrentSortColumn = $sortBy === $name;
  3. $isFiltered = request()->filled("filters.{$name}")
  4. || request()->filled("filters.{$name}_from")
  5. || request()->filled("filters.{$name}_to");
  6. $filter = $columnFilters[$name] ?? [];
  7. @endphp
  8. <th @class([$class ?? null])>
  9. <div class="d-flex align-items-center justify-content-between gap-1">
  10. <span>{{ $title }}</span>
  11. <div class="d-flex align-items-center gap-1 text-nowrap">
  12. @if($isCurrentSortColumn)
  13. <i class="bi {{ $orderBy === 'desc' ? 'bi-arrow-up-square-fill' : 'bi-arrow-down-square-fill' }} text-primary"></i>
  14. @endif
  15. <div class="dropdown d-inline-block" data-bs-auto-close="outside">
  16. <i id="{{ $name }}"
  17. class="dropdown-toggle bi {{ $isFiltered ? 'bi-funnel-fill text-danger' : 'bi-funnel' }} cursor-pointer"
  18. data-bs-toggle="dropdown"
  19. data-bs-auto-close="outside"
  20. aria-expanded="false"></i>
  21. @include('partials.newFilterElement', [
  22. 'id' => $name,
  23. 'data' => $filter['data'] ?? null,
  24. 'type' => $filter['type'] ?? null,
  25. 'table' => $tableId,
  26. 'isSort' => true,
  27. 'orderBy' => $orderBy,
  28. ])
  29. </div>
  30. </div>
  31. </div>
  32. </th>