Pagination and Searching

This commit is contained in:
Zakiaass 2024-03-14 14:54:28 +07:00
parent 82d6c798e2
commit 13287d3bc4
13 changed files with 119 additions and 50 deletions

View File

@ -39,9 +39,14 @@ class CriteriaController extends Controller
// return redirect()->route('kriteria.index')->with('success', 'Bobot kriteria berhasil dihitung dan disimpan.'); // return redirect()->route('kriteria.index')->with('success', 'Bobot kriteria berhasil dihitung dan disimpan.');
// } // }
public function index() public function index(Request $request)
{ {
$criterias = Criteria::all(); if ($request->has('search')) {
$criterias = Criteria::where('nama', 'LIKE', '%'.$request->search.'%')->paginate(5);
} else {
$criterias = Criteria::paginate(5);
}
return view('kriteria.kriteria', compact('criterias')); return view('kriteria.kriteria', compact('criterias'));
} }

View File

@ -18,8 +18,8 @@ public function index()
$jumlahKriteria = Criteria::count(); $jumlahKriteria = Criteria::count();
$jumlahSubKriteria = SubCriteria::count(); $jumlahSubKriteria = SubCriteria::count();
$criterias = Criteria::all(); $criterias = Criteria::all();
$extracuricullars = Extracuricullar ::all(); $extracuricullars = Extracuricullar ::paginate(5);
$subcriterias = Subcriteria::all(); $subcriterias = Subcriteria::paginate(5);
return view('dashboard.index', compact('jumlahEkstra','jumlahKriteria','jumlahSubKriteria', 'criterias', 'subcriterias', 'extracuricullars')); return view('dashboard.index', compact('jumlahEkstra','jumlahKriteria','jumlahSubKriteria', 'criterias', 'subcriterias', 'extracuricullars'));
} }

View File

@ -34,9 +34,13 @@ public function downloadUserTemplate()
return Excel::download(new UserTemplateExport, 'data-user-template.xlsx'); return Excel::download(new UserTemplateExport, 'data-user-template.xlsx');
} }
public function index() public function index(Request $request)
{ {
$users = User::all(); if ($request->has('search')) {
$users = User::where('name', 'LIKE', '%'.$request->search.'%')->paginate(10);
} else {
$users = User::paginate(10);
}
return view('user.user', compact('users')); return view('user.user', compact('users'));
} }

View File

@ -11,9 +11,17 @@ class ExtracurricularController extends Controller
/** /**
* Display a listing of the resource. * Display a listing of the resource.
*/ */
public function index() public function index(Request $request)
{ {
$extracuricullars = Extracuricullar ::all(); if ($request->has('search')) {
$extracuricullars = Extracuricullar::where('nama', 'LIKE', '%'.$request->search.'%')
->orWhere('deskripsi', 'LIKE', '%'.$request->search.'%')
->orWhere('kategori', 'LIKE', '%'.$request->search.'%')
->paginate(5);
} else {
$extracuricullars = Extracuricullar::paginate(5);
}
return view('ekstrakurikuler.ekstrakurikuler', compact('extracuricullars')); return view('ekstrakurikuler.ekstrakurikuler', compact('extracuricullars'));
} }

View File

@ -47,9 +47,16 @@ class SubCriteriaController extends Controller
// } // }
public function index() public function index(Request $request)
{ {
$subcriterias = Subcriteria::all(); if ($request->has('search')) {
$subcriterias = SubCriteria::where('nama', 'LIKE', '%'.$request->search.'%')
->orWhere('criteria_id', 'LIKE', '%'.$request->search.'%')
->paginate(10);
} else {
$subcriterias = SubCriteria::paginate(10);
}
$criterias = Criteria::all(); $criterias = Criteria::all();
return view('subkriteria.subkriteria', compact('subcriterias', 'criterias')); return view('subkriteria.subkriteria', compact('subcriterias', 'criterias'));
} }

View File

@ -2,6 +2,7 @@
namespace App\Providers; namespace App\Providers;
use Illuminate\Pagination\Paginator;
use Illuminate\Support\ServiceProvider; use Illuminate\Support\ServiceProvider;
class AppServiceProvider extends ServiceProvider class AppServiceProvider extends ServiceProvider
@ -19,6 +20,6 @@ public function register(): void
*/ */
public function boot(): void public function boot(): void
{ {
// Paginator::useBootstrap();
} }
} }

Binary file not shown.

View File

@ -10,7 +10,7 @@
<div class="main-container"> <div class="main-container">
<div class="pd-ltr-20 xs-pd-20-10"> <div class="pd-ltr-20 xs-pd-20-10">
<div class="min-height-200px"> <div class="min-height-200px" style="margin-bottom: 20px;">
<div class="card-box pd-20 height-50-p mb-30"> <div class="card-box pd-20 height-50-p mb-30">
<div class="row align-items-center"> <div class="row align-items-center">
<div class="col-md-8"> <div class="col-md-8">
@ -76,7 +76,7 @@
</div> </div>
<div class="pb-10"> <div class="pb-10">
<div class="card-box height-100-p overflow-hidden"> <div class="card-box height-100-p overflow-hidden">
<div class="profile-tab height-100-p"> <div class="profile-tab height-100-p" >
<div class="tab height-100-p"> <div class="tab height-100-p">
<ul class="nav nav-tabs customtab" role="tablist"> <ul class="nav nav-tabs customtab" role="tablist">
<li class="nav-item"> <li class="nav-item">
@ -89,10 +89,11 @@
</li> </li>
</ul> </ul>
<div class="tab-content"> <div class="tab-content">
<!-- Data Ekstrakurikuler --> <!-- Data Ekstrakurikuler -->
<div class="tab-pane fade show active" id="ekstrakurikuler" role="tabpanel"> <div class="tab-pane fade show active" id="ekstrakurikuler" role="tabpanel">
<div class="profile-setting"> <div class="profile-setting">
<div class="table-responsive"> <div class="table-responsive" style="margin-bottom: 20px;">
<table class="data-table table stripe hover nowrap"> <table class="data-table table stripe hover nowrap">
<thead> <thead>
<tr> <tr>
@ -102,9 +103,9 @@
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
@forelse ($extracuricullars as $extracuricullar) @forelse ($extracuricullars as $index => $extracuricullar)
<tr> <tr>
<td>{{ $loop->iteration }}</td> <td>{{ $index + $extracuricullars->firstItem() }}</td>
<td>{{ $extracuricullar->nama }}</td> <td>{{ $extracuricullar->nama }}</td>
<td>{{ $extracuricullar->kategori }}</td> <td>{{ $extracuricullar->kategori }}</td>
</tr> </tr>
@ -115,6 +116,14 @@
@endforelse @endforelse
</tbody> </tbody>
</table> </table>
<div>
<div style="display: flex; justify-content: space-between; align-items: center; margin: 0 20px;">
<div style="font-size: 14px;">
Showing data {{ $extracuricullars->firstItem() }} to {{ $extracuricullars->lastItem() }} of {{ $extracuricullars->total() }} entries
</div>
<div style="font-size: 14px;">{{ $extracuricullars->links() }}</div>
</div>
</div>
</div> </div>
</div> </div>
</div> </div>
@ -122,7 +131,7 @@
<!-- Data Sub Kriteria --> <!-- Data Sub Kriteria -->
<div class="tab-pane fade" id="subkriteria" role="tabpanel"> <div class="tab-pane fade" id="subkriteria" role="tabpanel">
<div class="profile-setting"> <div class="profile-setting">
<div class="table-responsive"> <div class="table-responsive" style="margin-bottom: 20px;">
<table class="data-table table stripe hover nowrap"> <table class="data-table table stripe hover nowrap">
<thead> <thead>
<tr> <tr>
@ -133,9 +142,9 @@
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
@forelse ($subcriterias as $subcriteria) @forelse ($subcriterias as $index => $subcriteria)
<tr> <tr>
<td>{{ $loop->iteration }}</td> <td>{{ $index + $subcriterias->firstItem() }}</td>
<td>{{ $subcriteria->criteria->nama }}</td> <td>{{ $subcriteria->criteria->nama }}</td>
<td>{{ $subcriteria->nama }}</td> <td>{{ $subcriteria->nama }}</td>
<td>{{ $subcriteria->deskripsi }}</td> <td>{{ $subcriteria->deskripsi }}</td>
@ -147,6 +156,14 @@
@endforelse @endforelse
</tbody> </tbody>
</table> </table>
<div>
<div style="display: flex; justify-content: space-between; align-items: center; margin: 0 20px;">
<div style="font-size: 14px;">
Showing data {{ $subcriterias->firstItem() }} to {{ $subcriterias->lastItem() }} of {{ $subcriterias->total() }} entries
</div>
<div style="font-size: 14px;">{{ $subcriterias->links() }}</div>
</div>
</div>
</div> </div>
</div> </div>
</div> </div>

View File

@ -39,9 +39,9 @@
<!-- Button trigger modal --> <!-- Button trigger modal -->
<button type="button" class="btn btn-primary mx-2" data-toggle="modal" data-target="#add-extracuricullar"> <button type="button" class="btn btn-primary mx-2" data-toggle="modal" data-target="#add-extracuricullar">
<i class="icon dw dw-add"></i> Tambah Ekstrakurikuler</button> <i class="icon dw dw-add"></i> Tambah Ekstrakurikuler</button>
<form class="form-inline ml-auto" action="{{ route('ekstrakurikuler.index') }}" method="GET"> <form class="form-inline ml-auto" action="/ekstrakurikuler" method="GET">
<div class="input-group"> <div class="input-group">
<input type="text" class="form-control" name="search" placeholder="Search"> <input type="search" class="form-control" name="search" placeholder="Search">
<div class="input-group-append"> <div class="input-group-append">
<button class="btn btn-primary" type="submit"> <button class="btn btn-primary" type="submit">
<i class="icon dw dw-search"></i> <i class="icon dw dw-search"></i>
@ -63,9 +63,9 @@
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
@forelse ($extracuricullars as $extracuricullar) @forelse ($extracuricullars as $index => $extracuricullar)
<tr> <tr>
<td>{{ $loop->iteration }}</td> <td>{{ $index + $extracuricullars->firstItem() }}</td>
<td>{{ $extracuricullar->nama }}</td> <td>{{ $extracuricullar->nama }}</td>
<td>{{ $extracuricullar->kategori }}</td> <td>{{ $extracuricullar->kategori }}</td>
<td>{{ $extracuricullar->deskripsi }}</td> <td>{{ $extracuricullar->deskripsi }}</td>
@ -89,6 +89,14 @@ class="badge btn-danger" data-toggle="modal"
@endforelse @endforelse
</tbody> </tbody>
</table> </table>
<div>
<div style="display: flex; justify-content: space-between; align-items: center; margin: 0 20px;">
<div style="font-size: 14px;">
Showing data {{ $extracuricullars->firstItem() }} to {{ $extracuricullars->lastItem() }} of {{ $extracuricullars->total() }} entries
</div>
<div style="font-size: 14px;">{{ $extracuricullars->links() }}</div>
</div>
</div>
</div> </div>
</div> </div>
</div> </div>

View File

@ -45,7 +45,7 @@
<div id="bobot-kriteria"></div> <div id="bobot-kriteria"></div>
<form class="form-inline ml-auto" action="{{ route('kriteria.index') }}" method="GET"> <form class="form-inline ml-auto" action="{{ route('kriteria.index') }}" method="GET">
<div class="input-group"> <div class="input-group">
<input type="text" class="form-control" name="search" placeholder="Search"> <input type="search" class="form-control" name="search" placeholder="Search">
<div class="input-group-append"> <div class="input-group-append">
<button class="btn btn-primary" type="submit"> <button class="btn btn-primary" type="submit">
<i class="icon dw dw-search"></i> <i class="icon dw dw-search"></i>
@ -67,9 +67,9 @@
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
@forelse ($criterias as $criteria) @forelse ($criterias as $index => $criteria)
<tr> <tr>
<td>{{ $loop->iteration }}</td> <td>{{ $index + $criterias->firstItem() }}</td>
<td>{{ $criteria->nama }}</td> <td>{{ $criteria->nama }}</td>
<td>{{ $criteria->prioritas }}</td> <td>{{ $criteria->prioritas }}</td>
<td> <td>
@ -79,13 +79,6 @@
<em>Belum dihitung</em> <em>Belum dihitung</em>
@endif @endif
</td> </td>
{{-- <td>
@if (isset($bobotKriteria[$criteria->nama]))
{{ $bobotKriteria[$criteria->nama] }}
@else
<em>Belum dihitung</em>
@endif
</td> --}}
<td> <td>
<a href="{{ route('kriteria.edit', $criteria->id) }}" <a href="{{ route('kriteria.edit', $criteria->id) }}"
class="badge btn-primary" data-toggle="modal" class="badge btn-primary" data-toggle="modal"
@ -113,6 +106,14 @@ class="badge btn-danger" data-toggle="modal"
@endforelse @endforelse
</tbody> </tbody>
</table> </table>
<div>
<div style="display: flex; justify-content: space-between; align-items: center; margin: 0 20px;">
<div style="font-size: 14px;">
Showing data {{ $criterias->firstItem() }} to {{ $criterias->lastItem() }} of {{ $criterias->total() }} entries
</div>
<div style="font-size: 14px;">{{ $criterias->links() }}</div>
</div>
</div>
</div> </div>
</div> </div>
</div> </div>

View File

@ -27,8 +27,8 @@
href="{{ asset('src/plugins/datatables/css/responsive.bootstrap4.min.css') }}" /> href="{{ asset('src/plugins/datatables/css/responsive.bootstrap4.min.css') }}" />
<link rel="stylesheet" type="text/css" href="{{ asset('vendors/styles/style.css') }}" /> <link rel="stylesheet" type="text/css" href="{{ asset('vendors/styles/style.css') }}" />
{{-- <!-- Bootstrap CSS --> <!-- Bootstrap CSS -->
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta2/dist/css/bootstrap.min.css" rel="stylesheet"> --}} {{-- <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta2/dist/css/bootstrap.min.css" rel="stylesheet"> --}}
<!-- Global site tag (gtag.js) - Google Analytics --> <!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-GBZ3SGGX85"></script> <script async src="https://www.googletagmanager.com/gtag/js?id=G-GBZ3SGGX85"></script>
@ -88,8 +88,8 @@ function gtag() {
<script src="{{ asset('src/plugins/sweetalert2/sweetalert2.all.js') }}"></script> <script src="{{ asset('src/plugins/sweetalert2/sweetalert2.all.js') }}"></script>
<script src="{{ asset('src/plugins/sweetalert2/sweet-alert.init.js') }}"></script> <script src="{{ asset('src/plugins/sweetalert2/sweet-alert.init.js') }}"></script>
{{-- <!-- Bootstrap JS and Popper.js --> <!-- Bootstrap JS and Popper.js -->
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script> {{-- <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta2/dist/js/bootstrap.bundle.min.js"></script> --}} <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta2/dist/js/bootstrap.bundle.min.js"></script> --}}
<!-- Google Tag Manager (noscript) --> <!-- Google Tag Manager (noscript) -->

View File

@ -44,7 +44,7 @@
</button> </button>
<form class="form-inline ml-auto" action="{{ route('subkriteria.index') }}" method="GET"> <form class="form-inline ml-auto" action="{{ route('subkriteria.index') }}" method="GET">
<div class="input-group"> <div class="input-group">
<input type="text" class="form-control" name="search" placeholder="Search"> <input type="search" class="form-control" name="search" placeholder="Search">
<div class="input-group-append"> <div class="input-group-append">
<button class="btn btn-primary" type="submit"> <button class="btn btn-primary" type="submit">
<i class="icon dw dw-search"></i> <i class="icon dw dw-search"></i>
@ -68,9 +68,9 @@
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
@forelse ($subcriterias as $subcriteria) @forelse ($subcriterias as $index => $subcriteria)
<tr> <tr>
<td>{{ $loop->iteration }}</td> <td>{{ $index + $subcriterias->firstItem() }}</td>
<td>{{ $subcriteria->criteria->nama }}</td> <td>{{ $subcriteria->criteria->nama }}</td>
<td>{{ $subcriteria->nama }}</td> <td>{{ $subcriteria->nama }}</td>
<td>{{ $subcriteria->deskripsi }}</td> <td>{{ $subcriteria->deskripsi }}</td>
@ -109,6 +109,14 @@ class="badge btn-danger" data-toggle="modal"
@endforelse @endforelse
</tbody> </tbody>
</table> </table>
<div>
<div style="display: flex; justify-content: space-between; align-items: center; margin: 0 20px;">
<div style="font-size: 14px;">
Showing data {{ $subcriterias->firstItem() }} to {{ $subcriterias->lastItem() }} of {{ $subcriterias->total() }} entries
</div>
<div style="font-size: 14px;">{{ $subcriterias->links() }}</div>
</div>
</div>
</div> </div>
</div> </div>
</div> </div>

View File

@ -45,7 +45,7 @@
<i class="icon dw dw-upload"></i> Export User</button></a> <i class="icon dw dw-upload"></i> Export User</button></a>
<form class="form-inline ml-auto" action="{{ route('user.index') }}" method="GET"> <form class="form-inline ml-auto" action="{{ route('user.index') }}" method="GET">
<div class="input-group"> <div class="input-group">
<input type="text" class="form-control" name="search" placeholder="Search"> <input type="search" class="form-control" name="search" placeholder="Search">
<div class="input-group-append"> <div class="input-group-append">
<button class="btn btn-primary" type="submit"> <button class="btn btn-primary" type="submit">
<i class="icon dw dw-search"></i> <i class="icon dw dw-search"></i>
@ -68,9 +68,9 @@
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
@forelse ($users as $user) @forelse ($users as $index => $user)
<tr> <tr>
<td>{{ $loop->iteration }}</td> <td>{{ $index + $users->firstItem() }}</td>
<td>{{ $user->name }}</td> <td>{{ $user->name }}</td>
<td>{{ $user->username }}</td> <td>{{ $user->username }}</td>
<td>{{ $user->email }}</td> <td>{{ $user->email }}</td>
@ -95,6 +95,15 @@ class="badge btn-primary" data-toggle="modal"
@endforelse @endforelse
</tbody> </tbody>
</table> </table>
<div>
<div style="display: flex; justify-content: space-between; align-items: center; margin: 0 20px;">
<div style="font-size: 14px;">
Showing data {{ $users->firstItem() }} to {{ $users->lastItem() }} of {{ $users->total() }} entries
</div>
<div style="font-size: 14px;">{{ $users->links() }}</div>
</div>
</div>
</div>
</div> </div>
</div> </div>
</div> </div>
@ -103,7 +112,6 @@ class="badge btn-primary" data-toggle="modal"
<strong>Sistem Pendukung Keputusan Pemilihan Ekstrakurikuler Metode SMARTER</strong> <strong>Sistem Pendukung Keputusan Pemilihan Ekstrakurikuler Metode SMARTER</strong>
</div> </div>
</div> </div>
</div>
{{-- Modal Add --}} {{-- Modal Add --}}
<div class="modal fade" id="add-user" tabindex="-1" role="dialog" aria-labelledby="myLargeModalLabel" <div class="modal fade" id="add-user" tabindex="-1" role="dialog" aria-labelledby="myLargeModalLabel"
@ -288,11 +296,11 @@ class="badge btn-primary" data-toggle="modal"
<!-- Modal Import--> <!-- Modal Import-->
<div class="modal fade center-modal" id="import-user" tabindex="-1" aria-labelledby="exampleModalLabel" <div class="modal fade center-modal" id="import-user" tabindex="-1" aria-labelledby="exampleModalLabel"
aria-hidden="true"> aria-hidden="true">
<div class="modal-dialog"> <div class="modal-dialog modal-dialog-centered">
<div class="modal-content"> <div class="modal-content">
<div class="modal-header"> <div class="modal-header">
<h5 class="modal-title" id="exampleModalLabel">Import User</h5> <h4 class="modal-title" id="myLargeModalLabel">Import User</h4>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button> <button type="button" class="close" data-dismiss="modal" aria-hidden="true"></button>
</div> </div>
<div class="modal-body"> <div class="modal-body">
<form action="{{ route('import-user') }}" class="needs-validation" novalidate="" <form action="{{ route('import-user') }}" class="needs-validation" novalidate=""
@ -306,7 +314,9 @@ class="badge btn-primary" data-toggle="modal"
<div class="invalid-feedback"> <div class="invalid-feedback">
Tolong upload sebuah file! Tolong upload sebuah file!
</div> </div>
<label class="col-sm-12 col-form-label">- Upload file dengan bentuk format (.xlxs) </label> <label class="col-sm-12 col-form-label"> - Silakan mengunduh template terlebih dahulu
<br> - Upload file dengan bentuk format (.xlxs)
</label>
</div> </div>
</div> </div>
</div> </div>