MIF_E31221264/resources/views/admin/pages/penilaian/index.blade.php

191 lines
6.1 KiB
PHP

@extends('admin.layouts.base')
@section('title', 'Penilaian Alternatif')
@section('content')
<div class="d-flex justify-content-between align-items-center mb-4">
<h1 class="h3 text-grey-800">
<i class="bi bi-box"></i> Penilaian Alternatif
</h1>
</div>
<style>
.pagination {
display: flex;
justify-content: flex-end;
align-items: center;
padding: 10px;
}
.pagination .page-item .page-link {
font-size: 14px;
padding: 6px 12px;
border-radius: 5px;
border: none;
color: white;
background-color: #064E3B;
margin: 0 2px;
transition: 0.3s ease-in-out;
}
.pagination .page-item.active .page-link {
background-color: #053B2D;
font-weight: bold;
}
.pagination .page-item .page-link:hover {
background-color: #046C4E;
}
.pagination .page-item.disabled .page-link {
background-color: #e9ecef;
color: #6c757d;
cursor: not-allowed;
}
.form-select-sm,
.form-control-sm {
width: auto;
}
.search-input {
width: 200px;
}
.btn-biru {
background-color: #007bff; /* biru Bootstrap */
color: white;
border: none;
padding: 6px 16px;
border-radius: 4px;
cursor: pointer;
}
.btn-biru:hover {
background-color: #0069d9;
}
.search-box {
display: flex;
gap: 8px;
align-items: center;
margin-bottom: 12px;
}
.search-box input[type="text"] {
padding: 6px;
border: 1px solid #ccc;
border-radius: 4px;
}
</style>
<div class="card shadow mb-4">
<div class="card-header py-3 d-flex justify-content-between align-items-center">
<h6 class="m-0 font-weight-bold" style="color: #064E3B;">
<i class="bi bi-table"></i> Daftar Penilaian Alternatif
</h6>
</div>
<div class="card-body">
<div class="d-flex justify-content-between align-items-center mb-3">
<form method="GET" class="d-flex align-items-center gap-2">
<label for="entriesPerPage" class="mb-0">Show</label>
<select name="perPage" id="entriesPerPage" class="form-select form-select-sm w-auto" onchange="this.form.submit()">
<option value="10" {{ request('perPage') == 10 ? 'selected' : '' }}>10</option>
<option value="30" {{ request('perPage') == 30 ? 'selected' : '' }}>30</option>
<option value="50" {{ request('perPage') == 50 ? 'selected' : '' }}>50</option>
</select>
<span class="mb-0">entries</span>
</form>
<form action="{{ route('admin.penilaian.index') }}" method="GET" class="search-box">
<input type="text" name="search" value="{{ request('search') }}" placeholder="Cari nama alternatif...">
<button type="submit" class="btn-biru">Cari</button>
</form>
</div>
<div class="table-responsive">
<table class="table table-bordered" width="100%" cellspacing="0">
<thead>
<tr>
<th class="text-center">No</th>
<th class="text-center">Nama Alternatif</th>
<th class="text-center">C1</th>
<th class="text-center">C2</th>
<th class="text-center">C3</th>
<th class="text-center">C4</th>
<th class="text-center">C5</th>
<th class="text-center">C6</th>
<th class="text-center">Aksi</th>
</tr>
</thead>
<tbody>
@forelse ($data as $key => $item)
<tr>
<td class="text-center">{{ $data->firstItem() + $key }}</td>
<td class="text-center">{{ $item->nama_alternatif ?? '-' }}</td>
@for ($i = 1; $i <= 6; $i++)
@php
$penilaian = $item->penilaian->firstWhere('kriteria_id', $i);
$nilai = $penilaian && $penilaian->subkriteria ? $penilaian->subkriteria->nilai : '-';
@endphp
<td class="text-center">{{ $nilai }}</td>
@endfor
<td class="text-center">
<a href="{{ route('admin.penilaian.edit', $item->id) }}" class="btn btn-warning btn-sm">
<i class="bi bi-pencil"></i>
</a>
</td>
</tr>
@empty
<tr>
<td colspan="10" class="text-center">Belum ada data penilaian.</td>
</tr>
@endforelse
</tbody>
</table>
</div>
<div class="mt-3">
{{ $data->appends(['perPage' => request('perPage')])->links('pagination::bootstrap-4') }}
</div>
</div>
</div>
<!-- SweetAlert CDN -->
<script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script>
@if (session('success'))
<script>
Swal.fire({
title: 'Berhasil!',
text: '{{ session('success') }}',
icon: 'success',
timer: 3000,
showConfirmButton: false
});
</script>
@endif
<script>
function searchFunction() {
var input, filter, table, tr, td, i, txtValue;
input = document.getElementById('search');
filter = input.value.toUpperCase();
table = document.querySelector("table");
tr = table.getElementsByTagName("tr");
for (i = 1; i < tr.length; i++) { // Start from 1 to skip the header
td = tr[i].getElementsByTagName("td")[1]; // Column 2 = Nama Alternatif
if (td) {
txtValue = td.textContent || td.innerText;
tr[i].style.display = txtValue.toUpperCase().indexOf(filter) > -1 ? "" : "none";
}
}
}
</script>
@endsection