feat: create dashboard for admin
parent
45b7d3fc25
commit
9aea3ac75d
|
|
@ -1,4 +1,4 @@
|
||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
|
||||||
namespace BpsRwApp.Controllers
|
namespace BpsRwApp.Controllers
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,13 @@
|
||||||
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
|
||||||
|
namespace BpsRwApp.Controllers
|
||||||
|
{
|
||||||
|
[Route("[controller]/[action]")]
|
||||||
|
public class DashboardRwController : AppControllerBase
|
||||||
|
{
|
||||||
|
public IActionResult Index()
|
||||||
|
{
|
||||||
|
return View();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
@{
|
@{
|
||||||
ViewData["Title"] = "Dashboard";
|
ViewData["Title"] = "Dashboard";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -16,9 +16,9 @@
|
||||||
<div class="stat">
|
<div class="stat">
|
||||||
<div class="stat-title items-center text-lg text-white">
|
<div class="stat-title items-center text-lg text-white">
|
||||||
<i class="ph ph-house-simple"></i>
|
<i class="ph ph-house-simple"></i>
|
||||||
<span class="font-semibold">Jumlah RT</span>
|
<span class="font-semibold">Jumlah RW</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="stat-value">46</div>
|
<div class="stat-value">23</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- Stat Jumlah Rumah -->
|
<!-- Stat Jumlah Rumah -->
|
||||||
|
|
@ -53,10 +53,6 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="h-4"></div>
|
|
||||||
<div class="text-base text-gray-700">
|
|
||||||
<span class="font-semibold">Nama PJLP Pendamping :</span> Ahmad Muzaki
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,269 @@
|
||||||
|
@{
|
||||||
|
ViewData["Title"] = "DashboardRw";
|
||||||
|
}
|
||||||
|
|
||||||
|
<div class="grid grid-cols-1 items-stretch gap-4 lg:grid-cols-12">
|
||||||
|
<!-- Profil RW -->
|
||||||
|
<div class="card card-border h-full bg-white lg:col-span-9">
|
||||||
|
<div class="card-body">
|
||||||
|
<div class="flex flex-col items-center justify-between lg:flex-row">
|
||||||
|
<h2 class="w-full text-lg font-bold md:w-1/2">Profile RW 7</h2>
|
||||||
|
</div>
|
||||||
|
<div class="h-2"></div>
|
||||||
|
<div class="grid grid-cols-1 gap-2 lg:grid-cols-2 xl:grid-cols-4">
|
||||||
|
<!-- Stat Jumlah RT -->
|
||||||
|
<div class="stats bg-primary border border-gray-300 text-white">
|
||||||
|
<div class="stat">
|
||||||
|
<div class="stat-title items-center text-lg text-white">
|
||||||
|
<i class="ph ph-house-simple"></i>
|
||||||
|
<span class="font-semibold">Jumlah RT</span>
|
||||||
|
</div>
|
||||||
|
<div class="stat-value">46</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- Stat Jumlah Rumah -->
|
||||||
|
<div class="stats border border-gray-300">
|
||||||
|
<div class="stat">
|
||||||
|
<div class="stat-title items-center text-lg">
|
||||||
|
<i class="ph ph-house-line"></i>
|
||||||
|
<span class="font-semibold">Jumlah Rumah</span>
|
||||||
|
</div>
|
||||||
|
<div class="stat-value">23,004</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- Stat Jumlah Jiwa -->
|
||||||
|
<div class="stats border border-gray-300">
|
||||||
|
<div class="stat">
|
||||||
|
<div class="stat-title items-center text-lg">
|
||||||
|
<i class="ph ph-users-four"></i>
|
||||||
|
<span class="font-semibold">Jumlah Jiwa (Orang)</span>
|
||||||
|
</div>
|
||||||
|
<div class="stat-value">179,797</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- Stat Estimasi Timbulan -->
|
||||||
|
<div class="stats border border-gray-300">
|
||||||
|
<div class="stat">
|
||||||
|
<div class="stat-title items-center text-lg">
|
||||||
|
<i class="ph ph-trash"></i>
|
||||||
|
<span class="font-semibold">Estimasi Timbulan</span>
|
||||||
|
</div>
|
||||||
|
<div class="stat-value">3,341</div>
|
||||||
|
<div class="stat-desc">Kg/Hari</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="h-4"></div>
|
||||||
|
<div class="text-base text-gray-700">
|
||||||
|
<span class="font-semibold">Nama PJLP Pendamping :</span> Ahmad Muzaki
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="card h-full lg:col-span-3">
|
||||||
|
<div class="card-body flex h-full flex-col gap-4 p-0">
|
||||||
|
<!-- Stat Jumlah Rumah Memilah -->
|
||||||
|
<div class="stats flex-1 bg-white">
|
||||||
|
<div class="stat">
|
||||||
|
<div class="stat-desc text-base font-semibold text-gray-700">0.23 %</div>
|
||||||
|
<div class="stat-title items-center text-lg">
|
||||||
|
<i class="ph ph-trash"></i>
|
||||||
|
<span class="font-semibold">Jumlah Rumah Memilah</span>
|
||||||
|
</div>
|
||||||
|
<div class="stat-value">46</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- Stat Jumlah Rumah Nasabah -->
|
||||||
|
<div class="stats flex-1 bg-white">
|
||||||
|
<div class="stat">
|
||||||
|
<div class="stat-desc text-base font-semibold text-gray-700">0.1 %</div>
|
||||||
|
<div class="stat-title items-center text-lg">
|
||||||
|
<i class="ph ph-trash"></i>
|
||||||
|
<span class="font-semibold">Jumlah Rumah Nasabah</span>
|
||||||
|
</div>
|
||||||
|
<div class="stat-value">46</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="h-4"></div>
|
||||||
|
|
||||||
|
<div class="grid grid-cols-1 gap-4 lg:grid-cols-12">
|
||||||
|
<!-- Card Bank Sampah -->
|
||||||
|
<div class="card bg-white lg:col-span-4 xl:col-span-2">
|
||||||
|
<div class="card-body">
|
||||||
|
<h2 class="card-title">
|
||||||
|
Bank Sampah
|
||||||
|
</h2>
|
||||||
|
<div class="flex flex-row items-center justify-between gap-2 rounded border border-gray-300 p-4">
|
||||||
|
<div class="flex items-center">
|
||||||
|
<div class="badge badge-success badge-xs me-2"></div>
|
||||||
|
Aktif
|
||||||
|
</div>
|
||||||
|
<span class="text-primary font-bold">35</span>
|
||||||
|
</div>
|
||||||
|
<div class="flex flex-row items-center justify-between gap-2 rounded border border-gray-300 p-4">
|
||||||
|
<div class="flex items-center">
|
||||||
|
<div class="badge badge-error badge-xs me-2"></div>
|
||||||
|
Tidak Aktif
|
||||||
|
</div>
|
||||||
|
<span class="text-primary font-bold">35</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="card-actions justify-center">
|
||||||
|
<a href="@Url.Action("Index", "DataBankSampah")" class="btn btn-link text-primary no-underline"> Selengkapnya</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- Card Profil Satuan Pelaksana Pancoran -->
|
||||||
|
<div class="card bg-white lg:col-span-4 xl:col-span-7">
|
||||||
|
<div class="card-body">
|
||||||
|
<div class="flex flex-col items-center xl:flex-row">
|
||||||
|
<h2 class="w-full text-lg font-bold xl:w-1/2">Volume Jenis Sampah</h2>
|
||||||
|
<div class="flex w-full flex-col justify-end gap-4 xl:w-1/2 xl:flex-row">
|
||||||
|
<a href="@Url.Action("Index", "DataBeratSampah")" class="btn btn-link text-primary no-underline"> Selengkapnya</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="h-2"></div>
|
||||||
|
<div class="grid grid-cols-1 gap-2 xl:grid-cols-4">
|
||||||
|
<!-- Stat Organik -->
|
||||||
|
<div class="stats bg-primary border border-gray-300 text-white">
|
||||||
|
<div class="stat">
|
||||||
|
<div class="stat-title items-center text-lg text-white">
|
||||||
|
<i class="ph ph-leaf"></i>
|
||||||
|
<span class="font-semibold">Organik</span>
|
||||||
|
</div>
|
||||||
|
<div class="stat-value">46</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- Stat Anorganik -->
|
||||||
|
<div class="stats border border-gray-300">
|
||||||
|
<div class="stat">
|
||||||
|
<div class="stat-title items-center text-lg">
|
||||||
|
<i class="ph ph-cylinder"></i>
|
||||||
|
<span class="font-semibold">Anorganik</span>
|
||||||
|
</div>
|
||||||
|
<div class="stat-value">179,797</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- Stat B3 -->
|
||||||
|
<div class="stats border border-gray-300">
|
||||||
|
<div class="stat">
|
||||||
|
<div class="stat-title items-center text-lg">
|
||||||
|
<i class="ph ph-car-battery"></i>
|
||||||
|
<span class="font-semibold">B3</span>
|
||||||
|
</div>
|
||||||
|
<div class="stat-value">3,341</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- Stat Total -->
|
||||||
|
<div class="stats border border-gray-300">
|
||||||
|
<div class="stat">
|
||||||
|
<div class="stat-title items-center text-lg">
|
||||||
|
<i class="ph ph-arrows-counter-clockwise"></i>
|
||||||
|
<span class="font-semibold">Total</span>
|
||||||
|
</div>
|
||||||
|
<div class="stat-value">23,004</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- Card Neraca Sampah -->
|
||||||
|
<div class="card bg-white lg:col-span-4 xl:col-span-3">
|
||||||
|
<div class="card-body">
|
||||||
|
<h2 class="card-title">
|
||||||
|
Neraca Sampah
|
||||||
|
</h2>
|
||||||
|
<span class="text-gray-500">Estimasi Timbulan - Pengurangan Sampah</span>
|
||||||
|
<span class="text-primary font-semibold">73.112 - 0</span>
|
||||||
|
<div class="bg-primary flex flex-row items-center justify-between gap-2 rounded p-4 text-white">
|
||||||
|
<span>Neraca Sampah</span>
|
||||||
|
<span class="font-bold">73.112</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="h-4"></div>
|
||||||
|
|
||||||
|
<div class="card bg-white">
|
||||||
|
<div class="card-body h-80 w-full">
|
||||||
|
<div class="flex flex-col items-center justify-between lg:flex-row">
|
||||||
|
<h2 class="w-full text-lg font-bold md:w-1/2">Grafik Rumah Aktif Memilah</h2>
|
||||||
|
</div>
|
||||||
|
<canvas id="acquisitions" class="h-full w-full"></canvas>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/4.5.0/chart.umd.js"></script>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
const labels = ["Januari", "Februari", "Maret", "April", "Mei", "Juni", "Juli", "Agustus", "September", "Oktober", "November", "Desember"];
|
||||||
|
|
||||||
|
// contoh data variasi
|
||||||
|
const greenData = [10, 15, 12, 20, 18, 25, 23, 28, 26, 30, 32, 35];
|
||||||
|
const redData = [8, 12, 10, 15, 14, 18, 17, 22, 20, 25, 24, 28];
|
||||||
|
|
||||||
|
new Chart(document.getElementById("acquisitions"), {
|
||||||
|
type: "line",
|
||||||
|
data: {
|
||||||
|
labels: labels,
|
||||||
|
datasets: [
|
||||||
|
{
|
||||||
|
label: "Data Hijau",
|
||||||
|
data: greenData,
|
||||||
|
borderColor: "oklch(72.3% 0.219 149.579)",
|
||||||
|
backgroundColor: "oklch(92.5% 0.084 155.995 / 0.25)",
|
||||||
|
tension: 0.4,
|
||||||
|
fill: true,
|
||||||
|
borderWidth: 2,
|
||||||
|
pointRadius: 3,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "Data Merah",
|
||||||
|
data: redData,
|
||||||
|
borderColor: "oklch(63.7% 0.237 25.331)",
|
||||||
|
backgroundColor: "oklch(63.7% 0.237 25.331 / 0.25)",
|
||||||
|
tension: 0.4,
|
||||||
|
fill: true,
|
||||||
|
borderWidth: 2,
|
||||||
|
pointRadius: 3,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
options: {
|
||||||
|
responsive: true,
|
||||||
|
maintainAspectRatio: false,
|
||||||
|
layout: {
|
||||||
|
padding: {
|
||||||
|
bottom: 32 // kecilkan padding
|
||||||
|
}
|
||||||
|
},
|
||||||
|
plugins: {
|
||||||
|
legend: {
|
||||||
|
position: "bottom",
|
||||||
|
display: true,
|
||||||
|
labels: {
|
||||||
|
usePointStyle: true,
|
||||||
|
pointStyle: "circle",
|
||||||
|
}
|
||||||
|
},
|
||||||
|
tooltip: {
|
||||||
|
enabled: true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
scales: {
|
||||||
|
x: {
|
||||||
|
grid: { display: false }
|
||||||
|
},
|
||||||
|
y: {
|
||||||
|
beginAtZero: true,
|
||||||
|
grid: { color: "rgba(0,0,0,0.05)" }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
@ -12,6 +12,12 @@
|
||||||
|
|
||||||
<li>
|
<li>
|
||||||
<a asp-controller="Dashboard" asp-action="Index" class="@(controller == "Dashboard" ? "menu-active" : "")">
|
<a asp-controller="Dashboard" asp-action="Index" class="@(controller == "Dashboard" ? "menu-active" : "")">
|
||||||
|
<span class="icon icon-fill">analytics</span>
|
||||||
|
Dashboard
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a asp-controller="DashboardRw" asp-action="Index" class="@(controller == "DashboardRw" ? "menu-active" : "")">
|
||||||
<span class="icon icon-fill">analytics</span>
|
<span class="icon icon-fill">analytics</span>
|
||||||
Dashboard (RW)
|
Dashboard (RW)
|
||||||
</a>
|
</a>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue