MIF_E31212322/resources/views/pages/dashboard.blade.php

382 lines
16 KiB
PHP

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<link rel="apple-touch-icon" sizes="76x76" href="../assets/img/apple-icon.png">
<link rel="icon" type="image/png" href="../img/favicon.png">
<title>
Sistem Pendukung Keputusan Penerima Bantuan
</title>
<!-- Fonts and icons -->
<link href="https://fonts.googleapis.com/css?family=Open+Sans:300,400,600,700" rel="stylesheet" />
<!-- Nucleo Icons -->
<link href="../css/nucleo-icons.css" rel="stylesheet" />
<link href="../css/nucleo-svg.css" rel="stylesheet" />
<!-- Font Awesome Icons -->
<script src="https://kit.fontawesome.com/42d5adcbca.js" crossorigin="anonymous"></script>
<link href="../css/nucleo-svg.css" rel="stylesheet" />
<!-- CSS Files -->
<link id="pagestyle" href="../css/argon-dashboard.css?v=2.0.4" rel="stylesheet" />
</head>
<body class="g-sidenav-show bg-gray-100">
<div class="min-height-300 bg-primary position-absolute w-100"></div>
<aside class="sidenav bg-white navbar navbar-vertical navbar-expand-xs border-0 border-radius-xl my-3 fixed-start ms-4 " id="sidenav-main">
<div class="sidenav-header">
<i class="fas fa-times p-3 cursor-pointer text-secondary opacity-5 position-absolute end-0 top-0 d-none d-xl-none" aria-hidden="true" id="iconSidenav"></i>
<a class="navbar-brand m-0" href=" https://demos.creative-tim.com/argon-dashboard/pages/dashboard.html " target="_blank">
<img src="../img/logo-ct-dark.png" class="navbar-brand-img h-100" alt="main_logo">
<span class="ms-1 font-weight-bold">Dashboard</span>
</a>
</div>
<hr class="horizontal dark mt-0">
<ul class="navbar-nav">
<li class="nav-item">
<a class="nav-link active" href="/dashboard">
<div class="icon icon-shape icon-sm border-radius-md text-center me-2 d-flex align-items-center justify-content-center">
<i class="ni ni-tv-2 text-primary text-sm opacity-10"></i>
</div>
<span class="nav-link-text ms-1">Dashboard</span>
</a>
</li>
<li class="nav-item">
<a class="nav-link " href="/daftarnama">
<div class="icon icon-shape icon-sm border-radius-md text-center me-2 d-flex align-items-center justify-content-center">
<i class="ni ni-calendar-grid-58 text-warning text-sm opacity-10"></i>
</div>
<span class="nav-link-text ms-1">Data Penduduk</span>
</a>
</li>
<li class="nav-item">
<a class="nav-link " href="/datakriteria">
<div class="icon icon-shape icon-sm border-radius-md text-center me-2 d-flex align-items-center justify-content-center">
<i class="ni ni-building text-primary text-sm opacity-10"></i>
</div>
<span class="nav-link-text ms-1">Data Kriteria</span>
</a>
</li>
<li class="nav-item">
<a class="nav-link " href="/datasubkriteria">
<div class="icon icon-shape icon-sm border-radius-md text-center me-2 d-flex align-items-center justify-content-center">
<i class="ni ni-credit-card text-success text-sm opacity-10"></i>
</div>
<span class="nav-link-text ms-1">Data Sub Kriteria</span>
</a>
</li>
<li class="nav-item">
<a class="nav-link " href="/dataalternatif">
<div class="icon icon-shape icon-sm border-radius-md text-center me-2 d-flex align-items-center justify-content-center">
<i class="ni ni-bullet-list-67 text-warning text-sm opacity-10"></i>
</div>
<span class="nav-link-text ms-1">Data Alterinatif</span>
</a>
</li>
<li class="nav-item">
<a class="nav-link" href="/rangking">
<div class="icon icon-shape icon-sm border-radius-md text-center me-2 d-flex align-items-center justify-content-center">
<i class="ni ni-sound-wave text-success text-sm opacity-10"></i>
</div>
<span class="nav-link-text ms-1">Perangkingan</span>
</a>
</li>
<script>
function toggleSubMenu(event) {
event.preventDefault();
var submenu = document.getElementById("perhitunganSubMenu");
submenu.classList.toggle("show");
}
</script>
</ul>
</aside>
<main class="main-content position-relative border-radius-lg ">
<!-- Navbar -->
<nav class="navbar navbar-main navbar-expand-lg px-0 mx-4 shadow-none border-radius-xl " id="navbarBlur" data-scroll="false">
<div class="container-fluid py-1 px-3">
<nav aria-label="breadcrumb">
<ol class="breadcrumb bg-transparent mb-0 pb-0 pt-1 px-0 me-sm-6 me-5">
</ol>
<h6 class="font-weight-bolder text-white mb-0">Dashboard</h6>
</nav>
<div class="collapse navbar-collapse mt-sm-0 mt-2 me-md-0 me-sm-4" id="navbar">
<div class="ms-md-auto pe-md-3 d-flex align-items-center">
<ul class="navbar-nav justify-content-end">
<li class="nav-item d-flex align-items-center">
<div class="dropdown">
<a class="nav-link text-white font-weight-bold px-0 dropdown-toggle" href="#" role="button" id="userDropdown" data-bs-toggle="dropdown" aria-expanded="false">
<i class="fa fa-user me-sm-1"></i>
<span class="d-sm-inline d-none">{{ Auth::user()->username }}</span>
</a>
<ul class="dropdown-menu dropdown-menu-end" aria-labelledby="userDropdown">
<li>
<a class="dropdown-item" href="#" data-bs-toggle="modal" data-bs-target="#logoutModal">
<i class="fa fa-sign-out me-2"></i> Logout
</a>
</li>
</ul>
</div>
</li>
</ul>
</div>
</div>
<!-- Modal -->
<div class="modal fade" id="logoutModal" tabindex="-1" aria-labelledby="logoutModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="logoutModalLabel">Konfirmasi Logout</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
Apakah Anda yakin ingin logout?
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Batal</button>
<form id="logout-form" action='logout' method="POST" class="d-inline">
@csrf
<button type="submit" class="btn btn-primary">Logout</button>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
</nav>
@php
use App\Models\Rangking;
use Carbon\Carbon;
// Dapatkan tahun unik dari data rangking
$years = Rangking::selectRaw('YEAR(created_at) as year')
->distinct()
->orderBy('year', 'desc')
->get();
// Buat array untuk menyimpan jumlah rangking per tahun
$rankingsByYear = [];
foreach ($years as $year) {
$count = Rangking::whereYear('created_at', $year->year)
->where('keterangan', 'Layak')
->count();
$rankingsByYear[$year->year] = $count;
}
@endphp
<!-- End Navbar -->
<div class="container-fluid py-4">
<div class="row">
<!-- Kartu Data Kriteria -->
<div class="col-xl-3 col-sm-6 mb-xl-0 mb-4">
<div class="card">
<div class="card-body p-3">
<div class="row">
<div class="col-8">
<div class="numbers">
<p class="text-sm mb-0 text-uppercase font-weight-bold">Data Kriteria</p>
@php
use App\Models\datakriteria;
$cek = datakriteria::count();
@endphp
<h5 class="font-weight-bolder">
{{ $cek }}
</h5>
</div>
</div>
<div class="col-4 text-end">
<div class="icon icon-shape bg-gradient-primary shadow-primary text-center rounded-circle">
<i class="ni ni-building text-lg opacity-10" aria-hidden="true"></i>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Kartu Data Penduduk -->
<div class="col-xl-3 col-sm-6 mb-xl-0 mb-4">
<div class="card">
<div class="card-body p-3">
<div class="row">
<div class="col-8">
<div class="numbers">
<p class="text-sm mb-0 text-uppercase font-weight-bold">Data Penduduk</p>
@php
use App\Models\penduduk;
$cek = penduduk::count();
@endphp
<h5 class="font-weight-bolder">
{{ $cek }}
</h5>
</div>
</div>
<div class="col-4 text-end">
<div class="icon icon-shape bg-gradient-danger shadow-danger text-center rounded-circle">
<i class="ni ni-circle-08 text-lg opacity-10" aria-hidden="true"></i>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Card for displaying data with dropdown filter icon -->
<div class="col-xl-3 col-sm-6 mb-xl-0 mb-4">
<div class="card">
<div class="card-body p-3">
<div class="row">
<div class="col-8">
<div class="numbers">
<div class="d-flex align-items-center">
<p class="text-sm mb-0 text-uppercase font-weight-bold">
Data Penerima Tahun
<span id="selectedYear">{{ array_key_first($rankingsByYear) }}</span>
</p>
</div>
<h5 class="font-weight-bolder" id="yearCount">
{{ reset($rankingsByYear) }}
</h5>
</div>
</div>
<div class="col-4 text-end">
<div class="dropdown">
<button class="icon icon-shape bg-gradient-success shadow-success text-center rounded-circle btn text-light position-relative" type="button" id="dropdownMenuButtonChart" data-bs-toggle="dropdown" aria-expanded="false">
<i class="ni ni-chart-bar-32 text-lg opacity-10" aria-hidden="true"></i>
</button>
<ul class="dropdown-menu dropdown-menu-end" aria-labelledby="dropdownMenuButtonChart">
@foreach ($rankingsByYear as $year => $count)
<li><a class="dropdown-item year-option" href="#" data-year="{{ $year }}">{{ $year }}</a></li>
@endforeach
</ul>
</div>
</div>
</div>
</div>
</div>
</div>
<script>
document.querySelectorAll('.year-option').forEach(function(element) {
element.addEventListener('click', function(event) {
event.preventDefault();
const selectedYear = this.getAttribute('data-year');
const data = @json($rankingsByYear);
document.getElementById('selectedYear').textContent = selectedYear;
document.getElementById('yearCount').textContent = data[selectedYear];
});
});
</script>
<div class="row mt-4">
<div class="col-lg-7 mb-lg-0 mb-4">
<div class="card z-index-2 h-100">
<div class="card-header pb-0 pt-3 bg-transparent">
<h6 class="text-capitalize">Tabel Tingkat Kepentingan Kriteria</h6>
</div>
<div class="card-body p-3">
<div class="table-responsive">
<table class="table table-bordered table-hover table-striped">
<thead>
<tr>
<th>Nilai Bobot</th>
<th>Tingkat Kepentingan Kriteria</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>Sama penting</td>
</tr>
<tr>
<td>3</td>
<td>Sedikit lebih penting</td>
</tr>
<tr>
<td>5</td>
<td>Jelas lebih penting</td>
</tr>
<tr>
<td>7</td>
<td>Sangat jelas lebih penting</td>
</tr>
<tr>
<td>9</td>
<td>Mutlak lebih penting</td>
</tr>
<tr>
<td>2,4,6,8</td>
<td style="white-space: normal; overflow: hidden;
text-overflow: ellipsis; max-width: 10px;">Jika ragu-ragu antara dua nilai bobot yang berdekatan</td>
</tr>
<tr>
<td>Kebalikan</td>
<td style="white-space: normal; overflow: hidden;
text-overflow: ellipsis;max-width: 10px;">jika elemen i mendapat satu angka bila dibandingkan dengan elemen j, maka nilai j mempunyai nilai kebalikan dari elemen i </td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
<div class="col-lg-5">
<div class="card card-carousel overflow-hidden h-100 p-0">
<div class="card-body p-3">
<h6 class="card-title">Langkah-langkah Penggunaan</h6>
<ol>
<li>Tambahkan data penduduk.</li>
<li>Masukkan data kriteria.</li>
<li>Masukkan parameter di tabel kriteria untuk mengisi data subkriteria.</li>
<li>Data subkriteria akan otomatis tampil di halaman data subkriteria.</li>
<li>Lakukan normalisasi dan simpan prioritas pada data kriteria.</li>
<li>Lakukan normalisasi dan simpan prioritas pada data subkriteria.</li>
<li>Masukkan kode penduduk kemudian isi data yang ada di form.</li>
<li>Data rangking dapat dilihat setelah dilakukan perhitungan di tabel dibawahnya.</li>
</ol>
</div>
</div>
</div>
<!-- Core JS Files -->
<script src="../js/core/popper.min.js"></script>
<script src="../js/core/bootstrap.min.js"></script>
<script src="../js/plugins/perfect-scrollbar.min.js"></script>
<script src="../js/plugins/smooth-scrollbar.min.js"></script>
<script src="../js/plugins/chartjs.min.js"></script>
<script>
var win = navigator.platform.indexOf('Win') > -1;
if (win && document.querySelector('#sidenav-scrollbar')) {
var options = {
damping: '0.5'
}
Scrollbar.init(document.querySelector('#sidenav-scrollbar'), options);
}
</script>
<!-- Github buttons -->
<script async defer src="https://buttons.github.io/buttons.js"></script>
<!-- Control Center for Soft Dashboard: parallax effects, scripts for the example pages etc -->
<script src="../assets/js/argon-dashboard.min.js?v=2.0.4"></script>
</body>
</html>