@extends('layouts.app') @section('title', 'All Projects') @section('content') @php $qParams = request()->query(); $sortLink = function (string $col) use ($filters) { $dir = ($filters['sort'] === $col && $filters['direction'] === 'asc') ? 'desc' : 'asc'; return route('projects.index', array_merge(request()->query(), ['sort' => $col, 'direction' => $dir])); }; @endphp

All Projects

Filter, export, and manage construction projects

Excel PDF
Clear
@if($importSummary)

Last import

{{ ($importSummary['created'] ?? 0) }} created, {{ ($importSummary['updated'] ?? 0) }} updated, {{ ($importSummary['skipped'] ?? 0) }} skipped.

@if(!empty($importSummary['errors'])) @endif
@endif

Active projects

{{ $activeProjects }}

Excludes Completed

At risk

{{ $atRiskCount }}

Total contract value

{{ \App\Support\Format::mwk($totalContract) }}

Avg completion

{{ $avgCompletion }}%

Sort: Name | Due | Contract | Budget | Progress | Status | Created
@if($projects->isEmpty())

No projects match your filters

Try clearing search or add a new project.

@else
@foreach($projects as $p) @include('projects.partials.project-card', ['p' => $p]) @endforeach
@endif @if($projects->hasPages())

Showing {{ $projects->firstItem() }}–{{ $projects->lastItem() }} of {{ $projects->total() }}

@if ($projects->onFirstPage()) Previous @else Previous @endif @if ($projects->hasMorePages()) Next @else Next @endif
@endif
@include('projects.partials.import-clients-modal', ['overlayId' => 'modal-import-clients']) @endsection @push('scripts') @endpush