You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
256 lines
11 KiB
256 lines
11 KiB
@extends('layouts.main') |
|
@section('content') |
|
<div class="d-sm-flex align-items-center justify-content-between mb-4"> |
|
<h1 class="h3 mb-0 text-gray-800">Dashboard</h1> |
|
<a href="#" class="d-none d-sm-inline-block btn btn-sm btn-primary shadow-sm"><i |
|
class="fas fa-download fa-sm text-white-50"></i> Generate Report</a> |
|
</div> |
|
<div class="row"> |
|
<div class="col-xl-3 col-md-6 mb-4"> |
|
<div class="card border-left-primary shadow h-100 py-2"> |
|
<div class="card-body"> |
|
<div class="row no-gutters align-items-center"> |
|
<div class="col mr-2"> |
|
<div class="text-xs font-weight-bold text-primary text-uppercase mb-1" style="font-size: 14px;"> |
|
<strong>Pengadaan</strong> |
|
</div> |
|
<div class="h5 mb-0 font-weight-bold text-gray-800" style="font-size: 25px;"> |
|
{{ $jumlahPeti }} |
|
</div> |
|
</div> |
|
<div class="col-auto"> |
|
<i class="fas fa-clipboard-list fa-2x text-gray-300"></i> |
|
</div> |
|
</div> |
|
</div> |
|
</div> |
|
</div> |
|
|
|
<!-- Earnings (Monthly) Card Example --> |
|
<div class="col-xl-3 col-md-6 mb-4"> |
|
<div class="card border-left-success shadow h-100 py-2"> |
|
<div class="card-body"> |
|
<div class="row no-gutters align-items-center"> |
|
<div class="col mr-2"> |
|
<div class="text-xs font-weight-bold text-success text-uppercase mb-1" style="font-size: 14px;"> |
|
<strong>Peminjaman</strong> |
|
</div> |
|
<div class="h5 mb-0 font-weight-bold text-gray-800" style="font-size: 25px;"> |
|
{{ $jumlahPeminjaman }}</div> |
|
</div> |
|
<div class="col-auto"> |
|
<i class="fas fa-dollar-sign fa-2x text-gray-300"></i> |
|
</div> |
|
</div> |
|
</div> |
|
</div> |
|
</div> |
|
|
|
<!-- Earnings (Monthly) Card Example --> |
|
<div class="col-xl-3 col-md-6 mb-4"> |
|
<div class="card border-left-info shadow h-100 py-2"> |
|
<div class="card-body"> |
|
<div class="row no-gutters align-items-center"> |
|
<div class="col mr-2"> |
|
<div class="text-xs font-weight-bold text-info text-uppercase mb-1" style="font-size: 14px;"> |
|
<strong>Pengembalian</strong> |
|
</div> |
|
<div class="h5 mb-0 font-weight-bold text-gray-800" style="font-size: 25px;"> |
|
{{ $jumlahPengembalian }}</div> |
|
</div> |
|
<div class="col-auto"> |
|
<i class="fas fa-calendar fa-2x text-gray-300"></i> |
|
</div> |
|
</div> |
|
</div> |
|
</div> |
|
</div> |
|
|
|
<!-- Pending Requests Card Example --> |
|
<div class="col-xl-3 col-md-6 mb-4"> |
|
<div class="card border-left-warning shadow h-100 py-2"> |
|
<div class="card-body"> |
|
<div class="row no-gutters align-items-center"> |
|
<div class="col mr-2"> |
|
<div class="text-xs font-weight-bold text-warning text-uppercase mb-1" style="font-size: 13px;"> |
|
<strong>Reminder Pengembalian</strong> |
|
</div> |
|
<div class="h5 mb-0 font-weight-bold text-gray-800" style="font-size: 25px;"> |
|
{{ $reminder }}</div> |
|
</div> |
|
<div class="col-auto"> |
|
<i class="fas fa-calendar fa-2x text-gray-300"></i> |
|
</div> |
|
</div> |
|
</div> |
|
</div> |
|
</div> |
|
|
|
<!-- Area Bar Chart --> |
|
<div class="col-xl-7 col-lg-7"> |
|
<div class="card shadow mb-4"> |
|
<div class="card-header py-3 d-flex flex-row align-items-center justify-content-between"> |
|
<h6 class="m-0 font-weight-bold text-primary">Grafik Peminjaman VS Pengembalian</h6> |
|
</div> |
|
@php |
|
$chartData = app('App\Http\Controllers\HomeController')->generateChartData(); |
|
@endphp |
|
<div class="card-body"> |
|
<label for="yearFilter">Pilih Tahun:</label> |
|
<select id="yearFilter" class="form-control"> |
|
@foreach ($chartData['years'] as $year) |
|
@if ($chartData['exitData'][$loop->index] || $chartData['enterData'][$loop->index]) |
|
<option value="{{ $year }}">{{ $year }}</option> |
|
@endif |
|
@endforeach |
|
</select> |
|
|
|
<canvas id="ChartAssetStatus" style="max-height: 500px;"></canvas> |
|
</div> |
|
|
|
</div> |
|
</div> |
|
|
|
<!-- Area Pie Chart --> |
|
<div class="col-xl-5 col-lg-5"> |
|
<div class="card shadow mb-4"> |
|
<!-- Card Header - Dropdown --> |
|
<div class="card-header py-3 d-flex flex-row align-items-center justify-content-between"> |
|
<h6 class="m-0 font-weight-bold text-primary">Grafik Pengadaan Peti</h6> |
|
</div> |
|
<!-- Card Body --> |
|
<div class="card-body"> |
|
<div class="card-body"> |
|
<canvas id="myPieChartsiopas"></canvas> |
|
</div> |
|
</div> |
|
</div> |
|
</div> |
|
</div> |
|
|
|
@push('script') |
|
<!-- script pie chart --> |
|
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script> |
|
<script> |
|
// Sample data for the pie chart |
|
var data = { |
|
labels: ["Januari", "Februari", "Maret", "April", "Mei", "Juni", "Juli", "Agustus", "September", "Oktober", |
|
"November", "Desember" |
|
], |
|
datasets: [{ |
|
data: [30, 40, 30, 25, 35, 45, 20, 30, 40, 50, 30, 20], |
|
backgroundColor: ["#4e73df", "#1cc88a", "#36b9cc", "#ff6384", "#ff9f40", "#9966ff", "#cc65fe", |
|
"#ffcc29", "#a4e56d", "#ff3d00", "#9c9c9c", "#0d47a1" |
|
], |
|
}] |
|
}; |
|
|
|
// Get the canvas element for the pie chart |
|
var ctx = document.getElementById("myPieChartsiopas").getContext('2d'); |
|
|
|
// Create the pie chart instance |
|
var myPieChart = new Chart(ctx, { |
|
type: 'pie', |
|
data: data, |
|
options: { |
|
responsive: true, |
|
plugins: { |
|
legend: { |
|
position: 'right', // Set the legend position to the right |
|
maxHeight: 200, // Set a maximum height for the legend |
|
}, |
|
tooltip: { |
|
callbacks: { |
|
label: function(context) { |
|
var label = context.label || ''; |
|
if (label) { |
|
label += ': '; |
|
} |
|
label += Math.round(context.parsed * 1) + '%'; |
|
return label; |
|
} |
|
} |
|
} |
|
} |
|
}, |
|
}); |
|
|
|
// Custom legend using legendCallback |
|
document.getElementById('chart-legend').innerHTML = myPieChart.generateLegend(); |
|
</script> |
|
|
|
<!-- script bar chart --> |
|
<script> |
|
document.addEventListener('DOMContentLoaded', function() { |
|
var ctx = document.getElementById('ChartAssetStatus').getContext('2d'); |
|
var myChart; |
|
var chartData = @json($chartData); |
|
|
|
function updateChart(selectedYear) { |
|
var selectedYearIndex = chartData.years.indexOf(selectedYear); |
|
|
|
// Mengambil data berdasarkan tahun yang dipilih |
|
var updatedExitData = chartData.exitData[selectedYearIndex]; |
|
var updatedEnterData = chartData.enterData[selectedYearIndex]; |
|
|
|
// Memperbarui chart hanya dengan data tahun yang dipilih |
|
myChart.data.labels = chartData.monthNames; |
|
myChart.data.datasets[0].data = updatedExitData; |
|
myChart.data.datasets[1].data = updatedEnterData; |
|
|
|
myChart.update(); |
|
} |
|
|
|
myChart = new Chart(ctx, { |
|
type: 'bar', |
|
data: { |
|
labels: chartData.monthNames, // Menggunakan nama bulan sebagai label |
|
datasets: [{ |
|
label: 'Peminjaman', |
|
data: chartData.exitData[ |
|
0], // Menggunakan data tahun saat ini sebagai awalan |
|
backgroundColor: 'rgba(75, 192, 192, 0.2)', |
|
borderColor: 'rgba(75, 192, 192, 1)', |
|
borderWidth: 1 |
|
}, { |
|
label: 'Pengembalian', |
|
data: chartData.enterData[ |
|
0], // Menggunakan data tahun saat ini sebagai awalan |
|
backgroundColor: 'rgba(255, 159, 64, 0.2)', |
|
borderColor: 'rgba(255, 159, 64, 1)', |
|
borderWidth: 1 |
|
}] |
|
}, |
|
options: { |
|
scales: { |
|
y: { |
|
beginAtZero: true |
|
} |
|
} |
|
} |
|
}); |
|
|
|
var yearFilter = document.getElementById('yearFilter'); |
|
yearFilter.addEventListener('change', function() { |
|
var selectedYear = yearFilter.value; |
|
updateChart(selectedYear); |
|
// Simpan tahun yang dipilih ke local storage |
|
localStorage.setItem('selectedYear', selectedYear); |
|
}); |
|
|
|
// Kondisi Pertama: Setelah halaman dimuat |
|
// Coba baca tahun yang disimpan di local storage |
|
var selectedYear = localStorage.getItem('selectedYear'); |
|
if (selectedYear) { |
|
yearFilter.value = selectedYear; |
|
updateChart(selectedYear); |
|
} else { |
|
// Jika tidak ada tahun yang disimpan, pilih tahun saat ini |
|
selectedYear = new Date().getFullYear(); |
|
yearFilter.value = selectedYear; |
|
updateChart(selectedYear); |
|
} |
|
}); |
|
</script> |
|
@endpush |
|
@endsection
|
|
|