style: add area dinas & page dashboard

main
Yuri Dimas 2025-10-23 22:04:02 +07:00
parent d94fd6e508
commit f5bfe96ac8
No known key found for this signature in database
GPG Key ID: 4A421F9108FB5D2C
6 changed files with 442 additions and 171 deletions

View File

@ -0,0 +1,13 @@
using Microsoft.AspNetCore.Mvc;
namespace BankSampahApp.Areas.Dinas.Controllers
{
[Area("Dinas")]
public class DashboardController : Controller
{
public IActionResult Index()
{
return View();
}
}
}

View File

@ -0,0 +1,171 @@
@{
ViewData["Title"] = "Dashboard";
}
<div class="flex">
<div class="prose">
<span class="text-xl font-semibold text-black">Dashboard Dinas</span>
</div>
</div>
<div class="h-6"></div>
<div class="card bg-white md:bg-[url(/images/image-welcome-dashboard.png)] md:bg-local md:bg-right md:bg-no-repeat">
<div class="card-body gap-0">
<span class="text-gray-500">Selamat Datang</span>
<span class="bg-gradient-to-r from-[#089A7B] to-[#46C881] bg-clip-text text-2xl font-semibold text-transparent">Admin Dimas</span>
</div>
</div>
<div class="h-6"></div>
<div class="grid grid-cols-1 gap-4 md:grid-cols-4">
<div class="card bg-gradient-to-tl from-[#88C293] to-[#247332] text-white">
<div class="card-body">
<div class="card-title">
<i class="ph ph-building-office text-2xl"></i>
</div>
<div class="flex">
<div class="flex w-3/5 flex-col gap-0 self-end">
<span>Total BSI</span>
<span class="text-3xl">1203 Unit</span>
</div>
<div class="divider divider-horizontal before:bg-white after:bg-white"></div>
<div class="grid w-2/5 grid-rows-3 gap-2 text-[12px]">
<div class="flex flex-col">
<span class="font-semibold">Sudah Verifikasi</span>
<span>145 Unit</span>
</div>
<div class="flex flex-col">
<span class="font-semibold">Belum Verifikasi</span>
<span>5432 Unit</span>
</div>
</div>
</div>
</div>
</div>
<div class="card bg-gradient-to-tl from-indigo-200 to-blue-700 text-white">
<div class="card-body">
<div class="card-title">
<i class="ph ph-building-office text-2xl"></i>
</div>
<div class="flex">
<div class="flex w-3/5 flex-col gap-0 self-end">
<span>Total BSU</span>
<span class="text-3xl">1203 Unit</span>
</div>
<div class="divider divider-horizontal before:bg-white after:bg-white"></div>
<div class="grid w-2/5 grid-rows-3 gap-2 text-[12px]">
<div class="flex flex-col">
<span class="font-semibold">Sudah Aktif</span>
<span>145 Unit</span>
</div>
<div class="flex flex-col">
<span class="font-semibold">Belum Aktif</span>
<span>5432 Unit</span>
</div>
<div class="flex flex-col">
<span class="font-semibold">Ditolak</span>
<span>5432 Unit</span>
</div>
</div>
</div>
</div>
</div>
<div class="card bg-gradient-to-tl from-amber-200 to-amber-700 text-white">
<div class="card-body">
<div class="card-title">
<i class="ph ph-factory text-2xl"></i>
</div>
<div class="flex">
<div class="flex w-3/5 flex-col gap-0 self-end">
<span>Total Offtaker</span>
<span class="text-3xl">39 Unit</span>
</div>
<div class="divider divider-horizontal before:bg-white after:bg-white"></div>
<div class="grid w-2/5 grid-rows-3 gap-2 text-[12px]">
<div class="flex flex-col">
<span class="font-semibold">Sudah Aktif</span>
<span>145 Unit</span>
</div>
<div class="flex flex-col">
<span class="font-semibold">Belum Aktif</span>
<span>5432 Unit</span>
</div>
<div class="flex flex-col">
<span class="font-semibold">Ditolak</span>
<span>5432 Unit</span>
</div>
</div>
</div>
</div>
</div>
<div class="card bg-gradient-to-tl from-violet-200 to-violet-700 text-white">
<div class="card-body">
<div class="card-title">
<i class="ph ph-users-three text-2xl"></i>
</div>
<div class="flex">
<div class="flex w-3/5 flex-col gap-0 self-end">
<span>Total Nasabah</span>
<span class="text-3xl">2780 Unit</span>
</div>
<div class="divider divider-horizontal before:bg-white after:bg-white"></div>
<div class="grid w-2/5 grid-rows-3 gap-2 text-[12px]">
<div class="flex flex-col">
<span class="font-semibold">Sudah Aktif</span>
<span>145 Unit</span>
</div>
<div class="flex flex-col">
<span class="font-semibold">Belum Aktif</span>
<span>5432 Unit</span>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="h-6"></div>
<div class="grid grid-cols-1 gap-4 md:grid-cols-3">
<div class="stats bg-white">
<div class="stat">
<div class="stat-title">Total Sampah BSI</div>
<div class="stat-value">5,812 Kg</div>
<div class="stat-desc">
<span class="text-green-600">
<i class="ph ph-arrow-up"></i>
40%
</span>
vs bulan kemarin
</div>
</div>
</div>
<div class="stats bg-white">
<div class="stat">
<div class="stat-title">Total Sampah BSU</div>
<div class="stat-value">5,812 Kg</div>
<div class="stat-desc">
<span class="text-green-600">
<i class="ph ph-arrow-up"></i>
40%
</span>
vs bulan kemarin
</div>
</div>
</div>
<div class="stats bg-white">
<div class="stat">
<div class="stat-title">Total Sampah Offtaker</div>
<div class="stat-value">89.4 Kg</div>
<div class="stat-desc">
<span class="text-green-600">
<i class="ph ph-arrow-up"></i>
40%
</span>
vs bulan kemarin
</div>
</div>
</div>
</div>

View File

@ -0,0 +1,2 @@
@using BankSampahApp
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers

View File

@ -0,0 +1,3 @@
@{
Layout = "/Areas/Shared/Layouts/App/_Layout.cshtml";
}

View File

@ -1,9 +1,8 @@
<label class="drawer-overlay" for="my-drawer-2" aria-label="close sidebar"></label>
<aside class="bg-base-100 min-h-screen">
<aside class="bg-base-100 flex min-h-screen w-64 flex-col">
<!-- Navbar -->
<div
class="navbar sticky top-0 hidden items-center justify-center gap-2 bg-gray-50 px-4 py-2 font-bold lg:z-50 lg:flex">
<div class="navbar sticky top-0 hidden items-center justify-center gap-2 bg-gray-50 px-4 py-2 font-bold lg:z-50 lg:flex">
<div class="avatar bg-white">
<div class="w-10 rounded-md p-1 shadow">
<img src="/images/logo.png" alt="Logo" width="48" />
@ -11,175 +10,256 @@
</div>
<span class="font-jakarta-plus text-xl">e-Bank Sampah</span>
</div>
<ul class="menu menu-sidebar bg-base-100 text-base-content min-h-full w-64 p-4 text-gray-500">
<!-- Sidebar content here -->
@{
var currentArea = ViewContext.RouteData.Values["area"] as string;
var controller = ViewContext.RouteData.Values["controller"] as string;
}
@if (currentArea == "Sudin")
{
<li>
<a asp-area="Sudin" asp-action="Index" asp-controller="Dashboard" class="w-full rounded-full @(controller == "Dashboard" ? "menu-active" : "")">
<i class="ph ph-gauge me-2 text-lg"></i>
Dashboard
</a>
</li>
<li>
<a asp-area="Sudin" asp-action="Index" asp-controller="DataBankSampah" class="rounded-full @(controller == "DataBankSampah" ? "menu-active" : "")">
<i class="ph ph-house-line me-2 text-lg"></i>
Data Bank Sampah
</a>
</li>
<li>
<a asp-area="Sudin" asp-action="Index" asp-controller="DataNasabah" class="rounded-full @(controller == "DataNasabah" ? "menu-active" : "")">
<i class="ph ph-users-four me-2 text-lg"></i>
Data Nasabah
</a>
</li>
<li>
<a asp-area="Sudin" asp-action="Index" asp-controller="DataOfftaker" class="rounded-full @(controller == "DataOfftaker" ? "menu-active" : "")">
<i class="ph ph-read-cv-logo me-2 text-lg"></i>
Data Offtaker
</a>
</li>
<li>
<a asp-area="Sudin" asp-action="Index" asp-controller="TransaksiLaporan" class="rounded-full @(controller == "TransaksiLaporan" ? "menu-active" : "")">
<i class="ph ph-database me-2 text-lg"></i>
Transaksi Laporan
</a>
</li>
}
else if (currentArea == "Bsi")
{
<li>
<a asp-area="Bsi" asp-controller="Dashboard" asp-action="Index" class="w-full rounded-full">
<i class="ph ph-gauge me-2 text-lg"></i>
Dashboard
</a>
</li>
<li>
<a asp-area="Bsi" asp-controller="Profil" asp-action="Index" class="w-full rounded-full @(controller == "Profil" ? "menu-active" : "")">
<i class="ph ph-user-square me-2 text-lg"></i>
Profil Bank Sampah
</a>
</li>
<li>
<details @(new[] { "Aktifitas", "DataOfftaker" }.Contains(controller) ? "open" : "")>
<summary>
<!-- Sidebar content here -->
<div class="flex-1 overflow-y-auto">
<ul class="menu menu-sidebar bg-base-100 text-base-content min-h-full w-full overscroll-y-none p-4 text-gray-500">
@{
var currentArea = ViewContext.RouteData.Values["area"] as string;
var controller = ViewContext.RouteData.Values["controller"] as string;
}
@if (currentArea == "Sudin")
{
<li>
<a asp-area="Sudin" asp-action="Index" asp-controller="Dashboard" class="w-full rounded-full @(controller == "Dashboard" ? "menu-active" : "")">
<i class="ph ph-gauge me-2 text-lg"></i>
Dashboard
</a>
</li>
<li>
<a asp-area="Sudin" asp-action="Index" asp-controller="DataBankSampah" class="rounded-full @(controller == "DataBankSampah" ? "menu-active" : "")">
<i class="ph ph-house-line me-2 text-lg"></i>
Data Bank Sampah
</a>
</li>
<li>
<a asp-area="Sudin" asp-action="Index" asp-controller="DataNasabah" class="rounded-full @(controller == "DataNasabah" ? "menu-active" : "")">
<i class="ph ph-users-four me-2 text-lg"></i>
Data Nasabah
</a>
</li>
<li>
<a asp-area="Sudin" asp-action="Index" asp-controller="DataOfftaker" class="rounded-full @(controller == "DataOfftaker" ? "menu-active" : "")">
<i class="ph ph-read-cv-logo me-2 text-lg"></i>
Data Offtaker
</a>
</li>
<li>
<a asp-area="Sudin" asp-action="Index" asp-controller="TransaksiLaporan" class="rounded-full @(controller == "TransaksiLaporan" ? "menu-active" : "")">
<i class="ph ph-database me-2 text-lg"></i>
Data
</summary>
<ul>
<li><a>Nasabah</a></li>
<li><a>Bank Sampah Induk</a></li>
<li><a asp-area="Bsi" asp-controller="Aktifitas" asp-action="Index" class="@(controller == "Aktifitas" ? "menu-active" : "")">Aktifitas</a></li>
<li><a>Harga Sampah</a></li>
<li><a asp-area="Bsi" asp-controller="DataOfftaker" asp-action="Index" class="@(controller == "DataOfftaker" ? "menu-active" : "")">Offtaker</a></li>
</ul>
</details>
</li>
<li>
<details>
<summary>
<i class="ph ph-cash-register me-2 text-lg"></i>
Transaksi
</summary>
<ul>
<li><a>Nasabah</a></li>
<li><a>Penarikan Tabungan</a></li>
<li><a>BSI</a></li>
<li><a>Offtaker</a></li>
<li><a>Laporan</a></li>
</ul>
</details>
</li>
}
else if (currentArea == "Nasabah")
{
<li>
<a asp-area="Nasabah" asp-controller="Dashboard" asp-action="Index" class="w-full rounded-full @(controller == "Dashboard" ? "menu-active" : "")">
<i class="ph ph-gauge me-2 text-lg"></i>
Dashboard
</a>
</li>
<li>
<a asp-area="Nasabah" asp-controller="Profil" asp-action="Index" class="w-full rounded-full @(controller == "Profil" ? "menu-active" : "")">
<i class="ph ph-user-square me-2 text-lg"></i>
Profil Nasabah
</a>
</li>
<li>
<a class="w-full rounded-full">
<i class="ph ph-house-line me-2 text-lg"></i>
Bank Sampah Saya
</a>
</li>
<li>
<a class="w-full rounded-full">
<i class="ph ph-database me-2 text-lg"></i>
Transaksi Saya
</a>
</li>
}
else if (currentArea == "Satpel")
{
<li>
<a asp-area="Satpel" asp-action="Index" asp-controller="Dashboard" class="w-full rounded-full @(controller == "Dashboard" ? "menu-active" : "")">
<i class="ph ph-gauge me-2 text-lg"></i>
Dashboard
</a>
</li>
<li>
<a asp-area="Satpel" asp-action="Index" asp-controller="DataBankSampah" class="rounded-full @(controller == "menu-active" ? "menu-active" : "")">
<i class="ph ph-house-line me-2 text-lg"></i>
Data Bank Sampah
</a>
</li>
<li>
<a asp-area="Satpel" asp-action="Index" asp-controller="DataNasabah" class="rounded-full @(controller == "DataNasabah" ? "menu-active" : "")">
<i class="ph ph-users-four me-2 text-lg"></i>
Data Nasabah
</a>
</li>
<li>
<a asp-area="Satpel" asp-action="Index" asp-controller="DataOfftaker" class="rounded-full @(controller == "DataOfftaker" ? "menu-active" : "")">
<i class="ph ph-read-cv-logo me-2 text-lg"></i>
Data Offtaker
</a>
</li>
<li>
<a asp-area="Satpel" asp-action="Index" asp-controller="TransaksiLaporan" class="rounded-full @(controller == "TransaksiLaporan" ? "menu-active" : "")">
<i class="ph ph-database me-2 text-lg"></i>
Transaksi Laporan
</a>
</li>
}
else
{
}
Transaksi Laporan
</a>
</li>
}
else if (currentArea == "Bsi")
{
<li>
<a asp-area="Bsi" asp-controller="Dashboard" asp-action="Index" class="w-full rounded-full">
<i class="ph ph-gauge me-2 text-lg"></i>
Dashboard
</a>
</li>
<li>
<a asp-area="Bsi" asp-controller="Profil" asp-action="Index" class="w-full rounded-full @(controller == "Profil" ? "menu-active" : "")">
<i class="ph ph-user-square me-2 text-lg"></i>
Profil Bank Sampah
</a>
</li>
<li>
<details @(new[] { "Aktifitas", "DataOfftaker" }.Contains(controller) ? "open" : "")>
<summary>
<i class="ph ph-database me-2 text-lg"></i>
Data
</summary>
<ul>
<li><a>Nasabah</a></li>
<li><a>Bank Sampah Induk</a></li>
<li><a asp-area="Bsi" asp-controller="Aktifitas" asp-action="Index" class="@(controller == "Aktifitas" ? "menu-active" : "")">Aktifitas</a></li>
<li><a>Harga Sampah</a></li>
<li><a asp-area="Bsi" asp-controller="DataOfftaker" asp-action="Index" class="@(controller == "DataOfftaker" ? "menu-active" : "")">Offtaker</a></li>
</ul>
</details>
</li>
<li>
<details>
<summary>
<i class="ph ph-cash-register me-2 text-lg"></i>
Transaksi
</summary>
<ul>
<li><a>Nasabah</a></li>
<li><a>Penarikan Tabungan</a></li>
<li><a>BSI</a></li>
<li><a>Offtaker</a></li>
<li><a>Laporan</a></li>
</ul>
</details>
</li>
}
else if (currentArea == "Nasabah")
{
<li>
<a asp-area="Nasabah" asp-controller="Dashboard" asp-action="Index" class="w-full rounded-full @(controller == "Dashboard" ? "menu-active" : "")">
<i class="ph ph-gauge me-2 text-lg"></i>
Dashboard
</a>
</li>
<li>
<a asp-area="Nasabah" asp-controller="Profil" asp-action="Index" class="w-full rounded-full @(controller == "Profil" ? "menu-active" : "")">
<i class="ph ph-user-square me-2 text-lg"></i>
Profil Nasabah
</a>
</li>
<li>
<a class="w-full rounded-full">
<i class="ph ph-house-line me-2 text-lg"></i>
Bank Sampah Saya
</a>
</li>
<li>
<a class="w-full rounded-full">
<i class="ph ph-database me-2 text-lg"></i>
Transaksi Saya
</a>
</li>
}
else if (currentArea == "Satpel")
{
<li>
<a asp-area="Satpel" asp-action="Index" asp-controller="Dashboard" class="w-full rounded-full @(controller == "Dashboard" ? "menu-active" : "")">
<i class="ph ph-gauge me-2 text-lg"></i>
Dashboard
</a>
</li>
<li>
<a asp-area="Satpel" asp-action="Index" asp-controller="DataBankSampah" class="rounded-full @(controller == "menu-active" ? "menu-active" : "")">
<i class="ph ph-house-line me-2 text-lg"></i>
Data Bank Sampah
</a>
</li>
<li>
<a asp-area="Satpel" asp-action="Index" asp-controller="DataNasabah" class="rounded-full @(controller == "DataNasabah" ? "menu-active" : "")">
<i class="ph ph-users-four me-2 text-lg"></i>
Data Nasabah
</a>
</li>
<li>
<a asp-area="Satpel" asp-action="Index" asp-controller="DataOfftaker" class="rounded-full @(controller == "DataOfftaker" ? "menu-active" : "")">
<i class="ph ph-read-cv-logo me-2 text-lg"></i>
Data Offtaker
</a>
</li>
<li>
<a asp-area="Satpel" asp-action="Index" asp-controller="TransaksiLaporan" class="rounded-full @(controller == "TransaksiLaporan" ? "menu-active" : "")">
<i class="ph ph-database me-2 text-lg"></i>
Transaksi Laporan
</a>
</li>
}
else if (currentArea == "Dinas")
{
<li>
<a asp-area="Dinas" asp-action="Index" asp-controller="Dashboard" class="w-full rounded-full @(controller == "Dashboard" ? "menu-active" : "")">
<i class="ph ph-gauge me-2 text-lg"></i>
Dashboard
</a>
</li>
<li>
<a asp-area="Dinas" asp-action="Index" asp-controller="DataBankSampah" class="rounded-full @(controller == "menu-active" ? "menu-active" : "")">
<i class="ph ph-house-line me-2 text-lg"></i>
Data Bank Sampah
</a>
</li>
<li>
<a asp-area="Dinas" asp-action="Index" asp-controller="DataNasabah" class="rounded-full @(controller == "DataNasabah" ? "menu-active" : "")">
<i class="ph ph-users-four me-2 text-lg"></i>
Data Nasabah
</a>
</li>
<li>
<a asp-area="Dinas" asp-action="Index" asp-controller="DataOfftaker" class="rounded-full @(controller == "DataOfftaker" ? "menu-active" : "")">
<i class="ph ph-read-cv-logo me-2 text-lg"></i>
Data Offtaker
</a>
</li>
<li>
<a asp-area="Dinas" asp-action="Index" asp-controller="TransaksiLaporan" class="rounded-full @(controller == "TransaksiLaporan" ? "menu-active" : "")">
<i class="ph ph-database me-2 text-lg"></i>
Transaksi Laporan
</a>
</li>
<li>
<details>
<summary>
<i class="ph ph-map-trifold me-2 text-lg"></i>
Wilayah
</summary>
<ul>
<li><a>Kota</a></li>
<li><a>Kecamatan</a></li>
<li><a>Kelurahan</a></li>
</ul>
</details>
</li>
<li>
<details>
<summary>
<i class="ph ph-database me-2 text-lg"></i>
Master Data
</summary>
<ul>
<li><a>Aktifitas</a></li>
<li><a>Artikel</a></li>
<li><a>Bentuk Badan Hukum</a></li>
<li><a>Fasilitas</a></li>
<li><a>Jenis Bank Sampah</a></li>
<li><a>Jenis Nasabah</a></li>
<li><a>Jenis Pengolahan</a></li>
<li><a>Kategori</a></li>
<li><a>Kategori Fasilitas</a></li>
<li><a>Mitra</a></li>
<li><a>Status Lahan</a></li>
<li><a>Jenis Sampah</a></li>
<li><a>Kategori Sampah</a></li>
<li><a>Sub Kategori Sampah</a></li>
</ul>
</details>
</li>
<li>
<a class="rounded-full">
<i class="ph ph-gear me-2 text-lg"></i>
Manajemen User
</a>
</li>
}
else
{
}
</ul>
</div>
</ul>
<div class="card absolute inset-x-0 bottom-0 m-3 bg-gradient-to-tl from-[#FFDBAC] to-[#F79009] text-white">
<div class="card-body px-2 py-4">
<div class="card-title">
<i class="ph ph-whatsapp-logo text-lg"></i>
Help Desk
</div>
<hr class="text-white/30" />
<div class="flex flex-col gap-0">
<span>Senin s.d Jumat</span>
<span>08.00 - 15.00 WIB</span>
</div>
<hr class="text-white/30" />
<div class="flex flex-col gap-0">
<span class="font-semibold text-[10px]">
Bidang Pengurangan dan Penanganan Sampah Dinas Lingkungan Hidup Provinsi DKI Jakarta
</span>
<span class="text-[10px]">
Jl.Mandala V Cililitan Kramatjati Jakarta Timur
</span>
<!-- Card Help Desk -->
<div class="bg-base-100 sticky bottom-0 px-4 pb-4">
<div class="card w-fit bg-gradient-to-tl from-[#FFDBAC] to-[#F79009] text-white">
<div class="card-body px-2 py-4">
<div class="card-title">
<i class="ph ph-whatsapp-logo text-lg"></i>
Help Desk
</div>
<hr class="text-white/30" />
<div class="flex flex-col gap-0">
<span>Senin s.d Jumat</span>
<span>08.00 - 15.00 WIB</span>
</div>
<hr class="text-white/30" />
<div class="flex flex-col gap-0">
<span class="font-semibold text-[10px]">
Bidang Pengurangan dan Penanganan Sampah Dinas Lingkungan Hidup Provinsi DKI Jakarta
</span>
<span class="text-[10px]">
Jl.Mandala V Cililitan Kramatjati Jakarta Timur
</span>
</div>
</div>
</div>
</div>

View File

@ -37,6 +37,8 @@
<ItemGroup>
<Folder Include="Areas\Bsi\Data\" />
<Folder Include="Areas\Bsi\Models\" />
<Folder Include="Areas\Dinas\Data\" />
<Folder Include="Areas\Dinas\Models\" />
<Folder Include="Areas\Nasabah\Data\" />
<Folder Include="Areas\Nasabah\Models\" />
<Folder Include="Areas\Satpel\Data\" />