diff --git a/app/Http/Controllers/PitStopController.php b/app/Http/Controllers/PitStopController.php
index 9f84674..920d4ae 100644
--- a/app/Http/Controllers/PitStopController.php
+++ b/app/Http/Controllers/PitStopController.php
@@ -19,10 +19,10 @@ class PitStopController extends Controller
return view('pitstop.index', $data);
}
- public function progress()
+ public function progress(Request $request)
{
- $q = trim((string) request()->query('q', ''));
- $perPage = (int) request()->query('per_page', 20);
+ $q = trim((string) $request->query('q', ''));
+ $perPage = (int) $request->query('per_page', 20);
if ($perPage < 1) $perPage = 20;
if ($perPage > 100) $perPage = 100;
@@ -63,9 +63,26 @@ class PitStopController extends Controller
->select(DB::raw('count(distinct (p.pegawai_id, m.id)) as c'))
->value('c');
+ if ($request->boolean('ajax')) {
+ return response()->json([
+ 'error' => 0,
+ 'data' => [
+ 'totalUsers' => $totalUsers,
+ 'table_html' => view('pitstop.partials.progress_rows', [
+ 'users' => $users,
+ 'totalSteps' => $totalSteps,
+ ])->render(),
+ 'pager_html' => view('pitstop.partials.progress_pager', [
+ 'users' => $users,
+ ])->render(),
+ ],
+ ]);
+ }
+
return view('pitstop.progress', [
'title' => 'Dashboard Progress',
'q' => $q,
+ 'perPage' => $perPage,
'totalSteps' => $totalSteps,
'totalUsers' => $totalUsers,
'totalSelesai' => $totalSelesai,
diff --git a/resources/views/pitstop/partials/progress_pager.blade.php b/resources/views/pitstop/partials/progress_pager.blade.php
new file mode 100644
index 0000000..2b2bd14
--- /dev/null
+++ b/resources/views/pitstop/partials/progress_pager.blade.php
@@ -0,0 +1,51 @@
+
+
+ Halaman {{ $users->currentPage() }} dari {{ $users->lastPage() }} ({{ $users->total() }} data)
+
+
+ @php
+ $current = $users->currentPage();
+ $last = $users->lastPage();
+ $start = max(1, $current - 2);
+ $end = min($last, $current + 2);
+ @endphp
+
+
+
+
diff --git a/resources/views/pitstop/partials/progress_rows.blade.php b/resources/views/pitstop/partials/progress_rows.blade.php
new file mode 100644
index 0000000..b0552a7
--- /dev/null
+++ b/resources/views/pitstop/partials/progress_rows.blade.php
@@ -0,0 +1,31 @@
+@forelse ($users as $row)
+ @php
+ $done = (int) $row->lulus_count;
+ $pct = $totalSteps > 0 ? round(($done / $totalSteps) * 100) : 0;
+ @endphp
+
+ |
+
+ {{ $row->nama }}
+
+ |
+
+
+
+ {{ $done }} / {{ $totalSteps }}
+
+
+ |
+
+@empty
+
+ | Belum ada data |
+
+@endforelse
diff --git a/resources/views/pitstop/progress.blade.php b/resources/views/pitstop/progress.blade.php
index 111fb7f..8ec038a 100644
--- a/resources/views/pitstop/progress.blade.php
+++ b/resources/views/pitstop/progress.blade.php
@@ -25,7 +25,7 @@
Total Karyawan
-
{{ $totalUsers }}
+
{{ $totalUsers }}
@@ -49,13 +49,18 @@
Progress per Karyawan
@@ -67,57 +72,16 @@
| Nama |
Progress |
- Step Lulus |
- @forelse ($users as $row)
- @php
- $done = (int) $row->lulus_count;
- $pct = $totalSteps > 0 ? round(($done / $totalSteps) * 100) : 0;
- @endphp
-
- |
-
- {{ $row->nama }}
-
- |
-
-
- |
- {{ $done }} / {{ $totalSteps }} |
-
- @empty
-
- | Belum ada data |
-
- @endforelse
+ @include('pitstop.partials.progress_rows', ['users' => $users, 'totalSteps' => $totalSteps])
-
-
- Halaman {{ $users->currentPage() }} dari {{ $users->lastPage() }} ({{ $users->total() }} data)
-
-
- @if ($users->onFirstPage())
-
- @else
-
Sebelumnya
- @endif
-
- @if ($users->hasMorePages())
-
Berikutnya
- @else
-
- @endif
-
+
@@ -157,6 +121,11 @@
@section('custom_js')