refactor: lokasi & reduksi sampah
parent
f3b29fb925
commit
f4e9664dfe
|
|
@ -1,254 +0,0 @@
|
|||
using Microsoft.AspNetCore.Mvc;
|
||||
|
||||
namespace BankSampahApp.Controllers.Main
|
||||
{
|
||||
[Route("Main/[controller]/[action]")]
|
||||
public class ReduksiSampahDinasController : Controller
|
||||
{
|
||||
public IActionResult Index()
|
||||
{
|
||||
return View("~/Views/Main/ReduksiSampahDinas/Index.cshtml");
|
||||
}
|
||||
|
||||
[HttpGet]
|
||||
public IActionResult Table()
|
||||
{
|
||||
var data = new[] {
|
||||
new {
|
||||
id = 1,
|
||||
periode_bulan = "Jan 2025",
|
||||
nama_lokasi = "Jakarta Pusat",
|
||||
alamat = @"
|
||||
<div class=""flex flex-col gap-1"">
|
||||
<span class=""text-sm font-semibold text-gray-900"">Tanah Abang</span>
|
||||
<div class=""flex items-center gap-1 text-xs text-gray-500"">
|
||||
<span>Cideng</span>
|
||||
<span>RT 002</span>
|
||||
<span>RW 001</span>
|
||||
</div>
|
||||
</div>",
|
||||
jenis_lokasi = "Maggot",
|
||||
berat_maggot = 1,
|
||||
berat_komposting = 5,
|
||||
berat_bank_sampah = 6,
|
||||
aksi = @"<div class=""flex gap-2"">
|
||||
<a href=""#"" class=""btn btn-circle btn-warning text-white btn-sm btn-edit""><i class=""ph ph-note-pencil""></i></a>
|
||||
<a href=""#"" class=""btn btn-circle btn-success text-white btn-sm btn-preview""><i class=""ph ph-eye""></i></a>
|
||||
<a href=""#"" class=""btn btn-circle bg-blue-500 text-white btn-sm btn-history""><i class=""ph ph-clock-counter-clockwise""></i></a>
|
||||
</div>",
|
||||
},
|
||||
new {
|
||||
id = 2,
|
||||
periode_bulan = "Feb 2025",
|
||||
nama_lokasi = "Jakarta Barat",
|
||||
alamat = @"
|
||||
<div class=""flex flex-col gap-1"">
|
||||
<span class=""text-sm font-semibold text-gray-900"">Palmerah</span>
|
||||
<div class=""flex items-center gap-1 text-xs text-gray-500"">
|
||||
<span>Kemanggisan</span>
|
||||
<span>RT 003</span>
|
||||
<span>RW 004</span>
|
||||
</div>
|
||||
</div>",
|
||||
jenis_lokasi = "Organik",
|
||||
berat_maggot = 2,
|
||||
berat_komposting = 4,
|
||||
berat_bank_sampah = 3,
|
||||
aksi = @"<div class=""flex gap-2"">
|
||||
<a href=""#"" class=""btn btn-circle btn-warning text-white btn-sm btn-edit""><i class=""ph ph-note-pencil""></i></a>
|
||||
<a href=""#"" class=""btn btn-circle btn-success text-white btn-sm btn-preview""><i class=""ph ph-eye""></i></a>
|
||||
<a href=""#"" class=""btn btn-circle bg-blue-500 text-white btn-sm btn-history""><i class=""ph ph-clock-counter-clockwise""></i></a>
|
||||
</div>",
|
||||
},
|
||||
new {
|
||||
id = 3,
|
||||
periode_bulan = "Mar 2025",
|
||||
nama_lokasi = "Jakarta Selatan",
|
||||
alamat = @"
|
||||
<div class=""flex flex-col gap-1"">
|
||||
<span class=""text-sm font-semibold text-gray-900"">Tebet</span>
|
||||
<div class=""flex items-center gap-1 text-xs text-gray-500"">
|
||||
<span>Manggarai</span>
|
||||
<span>RT 001</span>
|
||||
<span>RW 002</span>
|
||||
</div>
|
||||
</div>",
|
||||
jenis_lokasi = "Maggot",
|
||||
berat_maggot = 3,
|
||||
berat_komposting = 6,
|
||||
berat_bank_sampah = 2,
|
||||
aksi = @"<div class=""flex gap-2"">
|
||||
<a href=""#"" class=""btn btn-circle btn-warning text-white btn-sm btn-edit""><i class=""ph ph-note-pencil""></i></a>
|
||||
<a href=""#"" class=""btn btn-circle btn-success text-white btn-sm btn-preview""><i class=""ph ph-eye""></i></a>
|
||||
<a href=""#"" class=""btn btn-circle bg-blue-500 text-white btn-sm btn-history""><i class=""ph ph-clock-counter-clockwise""></i></a>
|
||||
</div>",
|
||||
},
|
||||
new {
|
||||
id = 4,
|
||||
periode_bulan = "Apr 2025",
|
||||
nama_lokasi = "Jakarta Timur",
|
||||
alamat = @"
|
||||
<div class=""flex flex-col gap-1"">
|
||||
<span class=""text-sm font-semibold text-gray-900"">Cakung</span>
|
||||
<div class=""flex items-center gap-1 text-xs text-gray-500"">
|
||||
<span>Jatinegara</span>
|
||||
<span>RT 004</span>
|
||||
<span>RW 006</span>
|
||||
</div>
|
||||
</div>",
|
||||
jenis_lokasi = "Anorganik",
|
||||
berat_maggot = 1,
|
||||
berat_komposting = 3,
|
||||
berat_bank_sampah = 7,
|
||||
aksi = @"<div class=""flex gap-2"">
|
||||
<a href=""#"" class=""btn btn-circle btn-warning text-white btn-sm btn-edit""><i class=""ph ph-note-pencil""></i></a>
|
||||
<a href=""#"" class=""btn btn-circle btn-success text-white btn-sm btn-preview""><i class=""ph ph-eye""></i></a>
|
||||
<a href=""#"" class=""btn btn-circle bg-blue-500 text-white btn-sm btn-history""><i class=""ph ph-clock-counter-clockwise""></i></a>
|
||||
</div>",
|
||||
},
|
||||
new {
|
||||
id = 5,
|
||||
periode_bulan = "Mei 2025",
|
||||
nama_lokasi = "Jakarta Utara",
|
||||
alamat = @"
|
||||
<div class=""flex flex-col gap-1"">
|
||||
<span class=""text-sm font-semibold text-gray-900"">Koja</span>
|
||||
<div class=""flex items-center gap-1 text-xs text-gray-500"">
|
||||
<span>Lagoa</span>
|
||||
<span>RT 005</span>
|
||||
<span>RW 003</span>
|
||||
</div>
|
||||
</div>",
|
||||
jenis_lokasi = "Maggot",
|
||||
berat_maggot = 4,
|
||||
berat_komposting = 5,
|
||||
berat_bank_sampah = 1,
|
||||
aksi = @"<div class=""flex gap-2"">
|
||||
<a href=""#"" class=""btn btn-circle btn-warning text-white btn-sm btn-edit""><i class=""ph ph-note-pencil""></i></a>
|
||||
<a href=""#"" class=""btn btn-circle btn-success text-white btn-sm btn-preview""><i class=""ph ph-eye""></i></a>
|
||||
<a href=""#"" class=""btn btn-circle bg-blue-500 text-white btn-sm btn-history""><i class=""ph ph-clock-counter-clockwise""></i></a>
|
||||
</div>",
|
||||
},
|
||||
new {
|
||||
id = 6,
|
||||
periode_bulan = "Jun 2025",
|
||||
nama_lokasi = "Depok",
|
||||
alamat = @"
|
||||
<div class=""flex flex-col gap-1"">
|
||||
<span class=""text-sm font-semibold text-gray-900"">Beji</span>
|
||||
<div class=""flex items-center gap-1 text-xs text-gray-500"">
|
||||
<span>Kukusan</span>
|
||||
<span>RT 002</span>
|
||||
<span>RW 007</span>
|
||||
</div>
|
||||
</div>",
|
||||
jenis_lokasi = "Organik",
|
||||
berat_maggot = 2,
|
||||
berat_komposting = 6,
|
||||
berat_bank_sampah = 4,
|
||||
aksi = @"<div class=""flex gap-2"">
|
||||
<a href=""#"" class=""btn btn-circle btn-warning text-white btn-sm btn-edit""><i class=""ph ph-note-pencil""></i></a>
|
||||
<a href=""#"" class=""btn btn-circle btn-success text-white btn-sm btn-preview""><i class=""ph ph-eye""></i></a>
|
||||
<a href=""#"" class=""btn btn-circle bg-blue-500 text-white btn-sm btn-history""><i class=""ph ph-clock-counter-clockwise""></i></a>
|
||||
</div>",
|
||||
},
|
||||
new {
|
||||
id = 7,
|
||||
periode_bulan = "Jul 2025",
|
||||
nama_lokasi = "Bekasi",
|
||||
alamat = @"
|
||||
<div class=""flex flex-col gap-1"">
|
||||
<span class=""text-sm font-semibold text-gray-900"">Pondok Gede</span>
|
||||
<div class=""flex items-center gap-1 text-xs text-gray-500"">
|
||||
<span>Jatibening</span>
|
||||
<span>RT 006</span>
|
||||
<span>RW 002</span>
|
||||
</div>
|
||||
</div>",
|
||||
jenis_lokasi = "Maggot",
|
||||
berat_maggot = 5,
|
||||
berat_komposting = 3,
|
||||
berat_bank_sampah = 2,
|
||||
aksi = @"<div class=""flex gap-2"">
|
||||
<a href=""#"" class=""btn btn-circle btn-warning text-white btn-sm btn-edit""><i class=""ph ph-note-pencil""></i></a>
|
||||
<a href=""#"" class=""btn btn-circle btn-success text-white btn-sm btn-preview""><i class=""ph ph-eye""></i></a>
|
||||
<a href=""#"" class=""btn btn-circle bg-blue-500 text-white btn-sm btn-history""><i class=""ph ph-clock-counter-clockwise""></i></a>
|
||||
</div>",
|
||||
},
|
||||
new {
|
||||
id = 8,
|
||||
periode_bulan = "Agu 2025",
|
||||
nama_lokasi = "Tangerang",
|
||||
alamat = @"
|
||||
<div class=""flex flex-col gap-1"">
|
||||
<span class=""text-sm font-semibold text-gray-900"">Ciledug</span>
|
||||
<div class=""flex items-center gap-1 text-xs text-gray-500"">
|
||||
<span>Paninggilan</span>
|
||||
<span>RT 001</span>
|
||||
<span>RW 005</span>
|
||||
</div>
|
||||
</div>",
|
||||
jenis_lokasi = "Anorganik",
|
||||
berat_maggot = 1,
|
||||
berat_komposting = 2,
|
||||
berat_bank_sampah = 6,
|
||||
aksi = @"<div class=""flex gap-2"">
|
||||
<a href=""#"" class=""btn btn-circle btn-warning text-white btn-sm btn-edit""><i class=""ph ph-note-pencil""></i></a>
|
||||
<a href=""#"" class=""btn btn-circle btn-success text-white btn-sm btn-preview""><i class=""ph ph-eye""></i></a>
|
||||
<a href=""#"" class=""btn btn-circle bg-blue-500 text-white btn-sm btn-history""><i class=""ph ph-clock-counter-clockwise""></i></a>
|
||||
</div>",
|
||||
},
|
||||
new {
|
||||
id = 9,
|
||||
periode_bulan = "Sep 2025",
|
||||
nama_lokasi = "Bogor",
|
||||
alamat = @"
|
||||
<div class=""flex flex-col gap-1"">
|
||||
<span class=""text-sm font-semibold text-gray-900"">Cibinong</span>
|
||||
<div class=""flex items-center gap-1 text-xs text-gray-500"">
|
||||
<span>Pabuaran</span>
|
||||
<span>RT 003</span>
|
||||
<span>RW 004</span>
|
||||
</div>
|
||||
</div>",
|
||||
jenis_lokasi = "Organik",
|
||||
berat_maggot = 2,
|
||||
berat_komposting = 5,
|
||||
berat_bank_sampah = 3,
|
||||
aksi = @"<div class=""flex gap-2"">
|
||||
<a href=""#"" class=""btn btn-circle btn-warning text-white btn-sm btn-edit""><i class=""ph ph-note-pencil""></i></a>
|
||||
<a href=""#"" class=""btn btn-circle btn-success text-white btn-sm btn-preview""><i class=""ph ph-eye""></i></a>
|
||||
<a href=""#"" class=""btn btn-circle bg-blue-500 text-white btn-sm btn-history""><i class=""ph ph-clock-counter-clockwise""></i></a>
|
||||
</div>",
|
||||
},
|
||||
new {
|
||||
id = 10,
|
||||
periode_bulan = "Okt 2025",
|
||||
nama_lokasi = "Jakarta Selatan",
|
||||
alamat = @"
|
||||
<div class=""flex flex-col gap-1"">
|
||||
<span class=""text-sm font-semibold text-gray-900"">Pasar Minggu</span>
|
||||
<div class=""flex items-center gap-1 text-xs text-gray-500"">
|
||||
<span>Pejaten</span>
|
||||
<span>RT 007</span>
|
||||
<span>RW 008</span>
|
||||
</div>
|
||||
</div>",
|
||||
jenis_lokasi = "Maggot",
|
||||
berat_maggot = 6,
|
||||
berat_komposting = 4,
|
||||
berat_bank_sampah = 2,
|
||||
aksi = @"<div class=""flex gap-2"">
|
||||
<a href=""#"" class=""btn btn-circle btn-warning text-white btn-sm btn-edit""><i class=""ph ph-note-pencil""></i></a>
|
||||
<a href=""#"" class=""btn btn-circle btn-success text-white btn-sm btn-preview""><i class=""ph ph-eye""></i></a>
|
||||
<a href=""#"" class=""btn btn-circle bg-blue-500 text-white btn-sm btn-history""><i class=""ph ph-clock-counter-clockwise""></i></a>
|
||||
</div>",
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
return Json(new { data = data });
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -1,234 +0,0 @@
|
|||
using Microsoft.AspNetCore.Mvc;
|
||||
|
||||
namespace BankSampahApp.Controllers.Main
|
||||
{
|
||||
[Route("Main/[controller]/[action]")]
|
||||
public class ReduksiSampahSatpelController : Controller
|
||||
{
|
||||
public IActionResult Index()
|
||||
{
|
||||
return View("~/Views/Main/ReduksiSampahSatpel/Index.cshtml");
|
||||
}
|
||||
|
||||
[HttpGet]
|
||||
public IActionResult Table()
|
||||
{
|
||||
var data = new[]
|
||||
{
|
||||
new {
|
||||
id=1,
|
||||
nama_lokasi = "Jakarta Pusat",
|
||||
alamat = @"
|
||||
<div class=""flex flex-col gap-1"">
|
||||
<span class=""text-sm font-semibold text-gray-900"">Tanah Abang</span>
|
||||
<div class=""flex items-center gap-1 text-xs text-gray-500"">
|
||||
<span class=""flex items-center gap-0"">Cideng</span>
|
||||
<span>RT 002</span>
|
||||
<span>RW 001</span>
|
||||
</div>
|
||||
</div>",
|
||||
jenis_lokasi = "Maggot",
|
||||
berat = 1,
|
||||
gambar = @"<a href=""#"" class=""btn bg-gray-500 text-white rounded-lg""><i class=""ph ph-file-text""></i></a>",
|
||||
aksi = "<div class=\"flex gap-2\">" +
|
||||
"<a href=\"#\" class=\"btn btn-circle btn-warning text-white btn-sm btn-edit\"><i class=\"ph ph-note-pencil\"></i></a>" +
|
||||
"<a href=\"#\" class=\"btn btn-circle btn-error delete text-white btn-sm btn-delete\"><i class=\"ph ph-trash\"></i></a>" +
|
||||
"<a href=\"#\" class=\"btn btn-circle btn-success text-white btn-sm btn-preview\"><i class=\"ph ph-eye\"></i></a>" +
|
||||
"</div>",
|
||||
},
|
||||
new {
|
||||
id=2,
|
||||
nama_lokasi = "Jakarta Selatan",
|
||||
alamat = @"
|
||||
<div class=""flex flex-col gap-1"">
|
||||
<span class=""text-sm font-semibold text-gray-900"">Kebayoran Baru</span>
|
||||
<div class=""flex items-center gap-1 text-xs text-gray-500"">
|
||||
<span>Gandaria Utara</span>
|
||||
<span>RT 005</span>
|
||||
<span>RW 003</span>
|
||||
</div>
|
||||
</div>",
|
||||
jenis_lokasi = "Komposting",
|
||||
berat = 2,
|
||||
gambar = @"<a href=""#"" class=""btn bg-gray-500 text-white rounded-lg""><i class=""ph ph-file-text""></i></a>",
|
||||
aksi = "<div class=\"flex gap-2\">" +
|
||||
"<a href=\"#\" class=\"btn btn-circle btn-warning text-white btn-sm btn-edit\"><i class=\"ph ph-note-pencil\"></i></a>" +
|
||||
"<a href=\"#\" class=\"btn btn-circle btn-error delete text-white btn-sm btn-delete\"><i class=\"ph ph-trash\"></i></a>" +
|
||||
"<a href=\"#\" class=\"btn btn-circle btn-success text-white btn-sm btn-preview\"><i class=\"ph ph-eye\"></i></a>" +
|
||||
"</div>",
|
||||
},
|
||||
new {
|
||||
id=3,
|
||||
nama_lokasi = "Jakarta Barat",
|
||||
alamat = @"
|
||||
<div class=""flex flex-col gap-1"">
|
||||
<span class=""text-sm font-semibold text-gray-900"">Palmerah</span>
|
||||
<div class=""flex items-center gap-1 text-xs text-gray-500"">
|
||||
<span>Kemanggisan</span>
|
||||
<span>RT 004</span>
|
||||
<span>RW 002</span>
|
||||
</div>
|
||||
</div>",
|
||||
jenis_lokasi = "Maggot",
|
||||
berat = 3,
|
||||
gambar = @"<a href=""#"" class=""btn bg-gray-500 text-white rounded-lg""><i class=""ph ph-file-text""></i></a>",
|
||||
aksi = "<div class=\"flex gap-2\">" +
|
||||
"<a href=\"#\" class=\"btn btn-circle btn-warning text-white btn-sm btn-edit\"><i class=\"ph ph-note-pencil\"></i></a>" +
|
||||
"<a href=\"#\" class=\"btn btn-circle btn-error delete text-white btn-sm btn-delete\"><i class=\"ph ph-trash\"></i></a>" +
|
||||
"<a href=\"#\" class=\"btn btn-circle btn-success text-white btn-sm btn-preview\"><i class=\"ph ph-eye\"></i></a>" +
|
||||
"</div>",
|
||||
},
|
||||
new {
|
||||
id=4,
|
||||
nama_lokasi = "Jakarta Timur",
|
||||
alamat = @"
|
||||
<div class=""flex flex-col gap-1"">
|
||||
<span class=""text-sm font-semibold text-gray-900"">Cakung</span>
|
||||
<div class=""flex items-center gap-1 text-xs text-gray-500"">
|
||||
<span>Pulo Gebang</span>
|
||||
<span>RT 007</span>
|
||||
<span>RW 005</span>
|
||||
</div>
|
||||
</div>",
|
||||
jenis_lokasi = "Komposting",
|
||||
berat = 4,
|
||||
gambar = @"<a href=""#"" class=""btn bg-gray-500 text-white rounded-lg""><i class=""ph ph-file-text""></i></a>",
|
||||
aksi = "<div class=\"flex gap-2\">" +
|
||||
"<a href=\"#\" class=\"btn btn-circle btn-warning text-white btn-sm btn-edit\"><i class=\"ph ph-note-pencil\"></i></a>" +
|
||||
"<a href=\"#\" class=\"btn btn-circle btn-error delete text-white btn-sm btn-delete\"><i class=\"ph ph-trash\"></i></a>" +
|
||||
"<a href=\"#\" class=\"btn btn-circle btn-success text-white btn-sm btn-preview\"><i class=\"ph ph-eye\"></i></a>" +
|
||||
"</div>",
|
||||
},
|
||||
new {
|
||||
id=5,
|
||||
nama_lokasi = "Jakarta Utara",
|
||||
alamat = @"
|
||||
<div class=""flex flex-col gap-1"">
|
||||
<span class=""text-sm font-semibold text-gray-900"">Tanjung Priok</span>
|
||||
<div class=""flex items-center gap-1 text-xs text-gray-500"">
|
||||
<span>Sunter Jaya</span>
|
||||
<span>RT 003</span>
|
||||
<span>RW 001</span>
|
||||
</div>
|
||||
</div>",
|
||||
jenis_lokasi = "Maggot",
|
||||
berat = 2,
|
||||
gambar = @"<a href=""#"" class=""btn bg-gray-500 text-white rounded-lg""><i class=""ph ph-file-text""></i></a>",
|
||||
aksi = "<div class=\"flex gap-2\">" +
|
||||
"<a href=\"#\" class=\"btn btn-circle btn-warning text-white btn-sm btn-edit\"><i class=\"ph ph-note-pencil\"></i></a>" +
|
||||
"<a href=\"#\" class=\"btn btn-circle btn-error delete text-white btn-sm btn-delete\"><i class=\"ph ph-trash\"></i></a>" +
|
||||
"<a href=\"#\" class=\"btn btn-circle btn-success text-white btn-sm btn-preview\"><i class=\"ph ph-eye\"></i></a>" +
|
||||
"</div>",
|
||||
},
|
||||
new {
|
||||
id=6,
|
||||
nama_lokasi = "Depok",
|
||||
alamat = @"
|
||||
<div class=""flex flex-col gap-1"">
|
||||
<span class=""text-sm font-semibold text-gray-900"">Beji</span>
|
||||
<div class=""flex items-center gap-1 text-xs text-gray-500"">
|
||||
<span>Beji Timur</span>
|
||||
<span>RT 006</span>
|
||||
<span>RW 002</span>
|
||||
</div>
|
||||
</div>",
|
||||
jenis_lokasi = "Komposting",
|
||||
berat = 3,
|
||||
gambar = @"<a href=""#"" class=""btn bg-gray-500 text-white rounded-lg""><i class=""ph ph-file-text""></i></a>",
|
||||
aksi = "<div class=\"flex gap-2\">" +
|
||||
"<a href=\"#\" class=\"btn btn-circle btn-warning text-white btn-sm btn-edit\"><i class=\"ph ph-note-pencil\"></i></a>" +
|
||||
"<a href=\"#\" class=\"btn btn-circle btn-error delete text-white btn-sm btn-delete\"><i class=\"ph ph-trash\"></i></a>" +
|
||||
"<a href=\"#\" class=\"btn btn-circle btn-success text-white btn-sm btn-preview\"><i class=\"ph ph-eye\"></i></a>" +
|
||||
"</div>",
|
||||
},
|
||||
new {
|
||||
id=7,
|
||||
nama_lokasi = "Bogor",
|
||||
alamat = @"
|
||||
<div class=""flex flex-col gap-1"">
|
||||
<span class=""text-sm font-semibold text-gray-900"">Bogor Utara</span>
|
||||
<div class=""flex items-center gap-1 text-xs text-gray-500"">
|
||||
<span>Kedunghalang</span>
|
||||
<span>RT 001</span>
|
||||
<span>RW 004</span>
|
||||
</div>
|
||||
</div>",
|
||||
jenis_lokasi = "Maggot",
|
||||
berat = 5,
|
||||
gambar = @"<a href=""#"" class=""btn bg-gray-500 text-white rounded-lg""><i class=""ph ph-file-text""></i></a>",
|
||||
aksi = "<div class=\"flex gap-2\">" +
|
||||
"<a href=\"#\" class=\"btn btn-circle btn-warning text-white btn-sm btn-edit\"><i class=\"ph ph-note-pencil\"></i></a>" +
|
||||
"<a href=\"#\" class=\"btn btn-circle btn-error delete text-white btn-sm btn-delete\"><i class=\"ph ph-trash\"></i></a>" +
|
||||
"<a href=\"#\" class=\"btn btn-circle btn-success text-white btn-sm btn-preview\"><i class=\"ph ph-eye\"></i></a>" +
|
||||
"</div>",
|
||||
},
|
||||
new {
|
||||
id=8,
|
||||
nama_lokasi = "Tangerang",
|
||||
alamat = @"
|
||||
<div class=""flex flex-col gap-1"">
|
||||
<span class=""text-sm font-semibold text-gray-900"">Karawaci</span>
|
||||
<div class=""flex items-center gap-1 text-xs text-gray-500"">
|
||||
<span>Nusa Jaya</span>
|
||||
<span>RT 008</span>
|
||||
<span>RW 003</span>
|
||||
</div>
|
||||
</div>",
|
||||
jenis_lokasi = "Komposting",
|
||||
berat = 2,
|
||||
gambar = @"<a href=""#"" class=""btn bg-gray-500 text-white rounded-lg""><i class=""ph ph-file-text""></i></a>",
|
||||
aksi = "<div class=\"flex gap-2\">" +
|
||||
"<a href=\"#\" class=\"btn btn-circle btn-warning text-white btn-sm btn-edit\"><i class=\"ph ph-note-pencil\"></i></a>" +
|
||||
"<a href=\"#\" class=\"btn btn-circle btn-error delete text-white btn-sm btn-delete\"><i class=\"ph ph-trash\"></i></a>" +
|
||||
"<a href=\"#\" class=\"btn btn-circle btn-success text-white btn-sm btn-preview\"><i class=\"ph ph-eye\"></i></a>" +
|
||||
"</div>",
|
||||
},
|
||||
new {
|
||||
id=9,
|
||||
nama_lokasi = "Bekasi",
|
||||
alamat = @"
|
||||
<div class=""flex flex-col gap-1"">
|
||||
<span class=""text-sm font-semibold text-gray-900"">Bekasi Timur</span>
|
||||
<div class=""flex items-center gap-1 text-xs text-gray-500"">
|
||||
<span>Margahayu</span>
|
||||
<span>RT 009</span>
|
||||
<span>RW 005</span>
|
||||
</div>
|
||||
</div>",
|
||||
jenis_lokasi = "Maggot",
|
||||
berat = 3,
|
||||
gambar = @"<a href=""#"" class=""btn bg-gray-500 text-white rounded-lg""><i class=""ph ph-file-text""></i></a>",
|
||||
aksi = "<div class=\"flex gap-2\">" +
|
||||
"<a href=\"#\" class=\"btn btn-circle btn-warning text-white btn-sm btn-edit\"><i class=\"ph ph-note-pencil\"></i></a>" +
|
||||
"<a href=\"#\" class=\"btn btn-circle btn-error delete text-white btn-sm btn-delete\"><i class=\"ph ph-trash\"></i></a>" +
|
||||
"<a href=\"#\" class=\"btn btn-circle btn-success text-white btn-sm btn-preview\"><i class=\"ph ph-eye\"></i></a>" +
|
||||
"</div>",
|
||||
},
|
||||
new {
|
||||
id=10,
|
||||
nama_lokasi = "Bandung",
|
||||
alamat = @"
|
||||
<div class=""flex flex-col gap-1"">
|
||||
<span class=""text-sm font-semibold text-gray-900"">Coblong</span>
|
||||
<div class=""flex items-center gap-1 text-xs text-gray-500"">
|
||||
<span>Dago</span>
|
||||
<span>RT 002</span>
|
||||
<span>RW 001</span>
|
||||
</div>
|
||||
</div>",
|
||||
jenis_lokasi = "Komposting",
|
||||
berat = 1,
|
||||
gambar = @"<a href=""#"" class=""btn bg-gray-500 text-white rounded-lg""><i class=""ph ph-file-text""></i></a>",
|
||||
aksi = "<div class=\"flex gap-2\">" +
|
||||
"<a href=\"#\" class=\"btn btn-circle btn-warning text-white btn-sm btn-edit\"><i class=\"ph ph-note-pencil\"></i></a>" +
|
||||
"<a href=\"#\" class=\"btn btn-circle btn-error delete text-white btn-sm btn-delete\"><i class=\"ph ph-trash\"></i></a>" +
|
||||
"<a href=\"#\" class=\"btn btn-circle btn-success text-white btn-sm btn-preview\"><i class=\"ph ph-eye\"></i></a>" +
|
||||
"</div>",
|
||||
},
|
||||
};
|
||||
|
||||
return Json(new { data = data });
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -1,194 +0,0 @@
|
|||
using Microsoft.AspNetCore.Mvc;
|
||||
|
||||
namespace BankSampahApp.Controllers.Main
|
||||
{
|
||||
[Route("Main/[controller]/[action]")]
|
||||
public class ReduksiSampahSudinController : Controller
|
||||
{
|
||||
public IActionResult Index()
|
||||
{
|
||||
return View("~/Views/Main/ReduksiSampahSudin/Index.cshtml");
|
||||
}
|
||||
|
||||
[HttpGet]
|
||||
public IActionResult Table()
|
||||
{
|
||||
var data = new[] {
|
||||
new {
|
||||
nama_lokasi = "Jakarta Pusat",
|
||||
alamat = @"
|
||||
<div class=""flex flex-col gap-1"">
|
||||
<span class=""text-sm font-semibold text-gray-900"">Tanah Abang</span>
|
||||
<div class=""flex items-center gap-1 text-xs text-gray-500"">
|
||||
<span>Cideng</span>
|
||||
<span>RT 002</span>
|
||||
<span>RW 001</span>
|
||||
</div>
|
||||
</div>",
|
||||
jenis_lokasi = "Maggot",
|
||||
berat = 1,
|
||||
gambar = @"<a href=""#"" class=""btn bg-gray-500 text-white rounded-lg""><i class=""ph ph-file-text""></i></a>",
|
||||
aksi = @"<div class=""flex gap-2"">
|
||||
<a href=""#"" class=""btn btn-circle btn-warning text-white btn-sm btn-validation""><i class=""ph ph-check""></i></a>
|
||||
<a href=""#"" class=""btn btn-circle btn-success text-white btn-sm btn-preview""><i class=""ph ph-eye""></i></a>
|
||||
</div>",
|
||||
},
|
||||
new {
|
||||
nama_lokasi = "Jakarta Barat",
|
||||
alamat = @"
|
||||
<div class=""flex flex-col gap-1"">
|
||||
<span class=""text-sm font-semibold text-gray-900"">Palmerah</span>
|
||||
<div class=""flex items-center gap-1 text-xs text-gray-500"">
|
||||
<span>Kemanggisan</span>
|
||||
<span>RT 003</span>
|
||||
<span>RW 004</span>
|
||||
</div>
|
||||
</div>",
|
||||
jenis_lokasi = "Organik",
|
||||
berat = 2,
|
||||
gambar = @"<a href=""#"" class=""btn bg-gray-500 text-white rounded-lg""><i class=""ph ph-file-text""></i></a>",
|
||||
aksi = @"<div class=""flex gap-2"">
|
||||
<a href=""#"" class=""btn btn-circle btn-warning text-white btn-sm""><i class=""ph ph-check""></i></a>
|
||||
<a href=""#"" class=""btn btn-circle btn-success text-white btn-sm""><i class=""ph ph-eye""></i></a>
|
||||
</div>",
|
||||
},
|
||||
new {
|
||||
nama_lokasi = "Jakarta Selatan",
|
||||
alamat = @"
|
||||
<div class=""flex flex-col gap-1"">
|
||||
<span class=""text-sm font-semibold text-gray-900"">Tebet</span>
|
||||
<div class=""flex items-center gap-1 text-xs text-gray-500"">
|
||||
<span>Manggarai</span>
|
||||
<span>RT 001</span>
|
||||
<span>RW 002</span>
|
||||
</div>
|
||||
</div>",
|
||||
jenis_lokasi = "Maggot",
|
||||
berat = 3,
|
||||
gambar = @"<a href=""#"" class=""btn bg-gray-500 text-white rounded-lg""><i class=""ph ph-file-text""></i></a>",
|
||||
aksi = @"<div class=""flex gap-2"">
|
||||
<a href=""#"" class=""btn btn-circle btn-warning text-white btn-sm""><i class=""ph ph-check""></i></a>
|
||||
<a href=""#"" class=""btn btn-circle btn-success text-white btn-sm""><i class=""ph ph-eye""></i></a>
|
||||
</div>",
|
||||
},
|
||||
new {
|
||||
nama_lokasi = "Jakarta Timur",
|
||||
alamat = @"
|
||||
<div class=""flex flex-col gap-1"">
|
||||
<span class=""text-sm font-semibold text-gray-900"">Cakung</span>
|
||||
<div class=""flex items-center gap-1 text-xs text-gray-500"">
|
||||
<span>Jatinegara</span>
|
||||
<span>RT 004</span>
|
||||
<span>RW 006</span>
|
||||
</div>
|
||||
</div>",
|
||||
jenis_lokasi = "Anorganik",
|
||||
berat = 5,
|
||||
gambar = @"<a href=""#"" class=""btn bg-gray-500 text-white rounded-lg""><i class=""ph ph-file-text""></i></a>",
|
||||
aksi = @"<div class=""flex gap-2"">
|
||||
<a href=""#"" class=""btn btn-circle btn-warning text-white btn-sm""><i class=""ph ph-check""></i></a>
|
||||
<a href=""#"" class=""btn btn-circle btn-success text-white btn-sm""><i class=""ph ph-eye""></i></a>
|
||||
</div>",
|
||||
},
|
||||
new {
|
||||
nama_lokasi = "Jakarta Utara",
|
||||
alamat = @"
|
||||
<div class=""flex flex-col gap-1"">
|
||||
<span class=""text-sm font-semibold text-gray-900"">Koja</span>
|
||||
<div class=""flex items-center gap-1 text-xs text-gray-500"">
|
||||
<span>Lagoa</span>
|
||||
<span>RT 005</span>
|
||||
<span>RW 003</span>
|
||||
</div>
|
||||
</div>",
|
||||
jenis_lokasi = "Maggot",
|
||||
berat = 4,
|
||||
gambar = @"<a href=""#"" class=""btn bg-gray-500 text-white rounded-lg""><i class=""ph ph-file-text""></i></a>",
|
||||
aksi = @"<div class=""flex gap-2"">
|
||||
<a href=""#"" class=""btn btn-circle btn-warning text-white btn-sm""><i class=""ph ph-check""></i></a>
|
||||
<a href=""#"" class=""btn btn-circle btn-success text-white btn-sm""><i class=""ph ph-eye""></i></a>
|
||||
</div>",
|
||||
},
|
||||
new {
|
||||
nama_lokasi = "Depok",
|
||||
alamat = @"
|
||||
<div class=""flex flex-col gap-1"">
|
||||
<span class=""text-sm font-semibold text-gray-900"">Beji</span>
|
||||
<div class=""flex items-center gap-1 text-xs text-gray-500"">
|
||||
<span>Kukusan</span>
|
||||
<span>RT 002</span>
|
||||
<span>RW 007</span>
|
||||
</div>
|
||||
</div>",
|
||||
jenis_lokasi = "Organik",
|
||||
berat = 2,
|
||||
gambar = @"<a href=""#"" class=""btn bg-gray-500 text-white rounded-lg""><i class=""ph ph-file-text""></i></a>",
|
||||
aksi = @"<div class=""flex gap-2"">
|
||||
<a href=""#"" class=""btn btn-circle btn-warning text-white btn-sm""><i class=""ph ph-check""></i></a>
|
||||
<a href=""#"" class=""btn btn-circle btn-success text-white btn-sm""><i class=""ph ph-eye""></i></a>
|
||||
</div>",
|
||||
},
|
||||
new {
|
||||
nama_lokasi = "Bekasi",
|
||||
alamat = @"
|
||||
<div class=""flex flex-col gap-1"">
|
||||
<span class=""text-sm font-semibold text-gray-900"">Pondok Gede</span>
|
||||
<div class=""flex items-center gap-1 text-xs text-gray-500"">
|
||||
<span>Jatibening</span>
|
||||
<span>RT 006</span>
|
||||
<span>RW 002</span>
|
||||
</div>
|
||||
</div>",
|
||||
jenis_lokasi = "Maggot",
|
||||
berat = 6,
|
||||
gambar = @"<a href=""#"" class=""btn bg-gray-500 text-white rounded-lg""><i class=""ph ph-file-text""></i></a>",
|
||||
aksi = @"<div class=""flex gap-2"">
|
||||
<a href=""#"" class=""btn btn-circle btn-warning text-white btn-sm""><i class=""ph ph-check""></i></a>
|
||||
<a href=""#"" class=""btn btn-circle btn-success text-white btn-sm""><i class=""ph ph-eye""></i></a>
|
||||
</div>",
|
||||
},
|
||||
new {
|
||||
nama_lokasi = "Tangerang",
|
||||
alamat = @"
|
||||
<div class=""flex flex-col gap-1"">
|
||||
<span class=""text-sm font-semibold text-gray-900"">Ciledug</span>
|
||||
<div class=""flex items-center gap-1 text-xs text-gray-500"">
|
||||
<span>Paninggilan</span>
|
||||
<span>RT 001</span>
|
||||
<span>RW 005</span>
|
||||
</div>
|
||||
</div>",
|
||||
jenis_lokasi = "Anorganik",
|
||||
berat = 3,
|
||||
gambar = @"<a href=""#"" class=""btn bg-gray-500 text-white rounded-lg""><i class=""ph ph-file-text""></i></a>",
|
||||
aksi = @"<div class=""flex gap-2"">
|
||||
<a href=""#"" class=""btn btn-circle btn-warning text-white btn-sm""><i class=""ph ph-check""></i></a>
|
||||
<a href=""#"" class=""btn btn-circle btn-success text-white btn-sm""><i class=""ph ph-eye""></i></a>
|
||||
</div>",
|
||||
},
|
||||
new {
|
||||
nama_lokasi = "Bogor",
|
||||
alamat = @"
|
||||
<div class=""flex flex-col gap-1"">
|
||||
<span class=""text-sm font-semibold text-gray-900"">Cibinong</span>
|
||||
<div class=""flex items-center gap-1 text-xs text-gray-500"">
|
||||
<span>Pabuaran</span>
|
||||
<span>RT 003</span>
|
||||
<span>RW 004</span>
|
||||
</div>
|
||||
</div>",
|
||||
jenis_lokasi = "Organik",
|
||||
berat = 4,
|
||||
gambar = @"<a href=""#"" class=""btn bg-gray-500 text-white rounded-lg""><i class=""ph ph-file-text""></i></a>",
|
||||
aksi = @"<div class=""flex gap-2"">
|
||||
<a href=""#"" class=""btn btn-circle btn-warning text-white btn-sm""><i class=""ph ph-check""></i></a>
|
||||
<a href=""#"" class=""btn btn-circle btn-success text-white btn-sm""><i class=""ph ph-eye""></i></a>
|
||||
</div>",
|
||||
}
|
||||
};
|
||||
|
||||
return Json(new { data = data });
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
using System.Linq;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
|
||||
namespace BankSampahApp.Controllers.ReduksiSampah
|
||||
{
|
||||
[Route("ReduksiSampah/[controller]/[action]")]
|
||||
public class KompostingController : Controller
|
||||
{
|
||||
private const string Jenis = "Komposting";
|
||||
|
||||
public IActionResult Index()
|
||||
{
|
||||
return View("~/Views/ReduksiSampah/Komposting/Index.cshtml");
|
||||
}
|
||||
|
||||
[HttpGet]
|
||||
public IActionResult Table([FromQuery] string? bulan)
|
||||
{
|
||||
var data = ReduksiSampahDataStore
|
||||
.GetItems(Jenis)
|
||||
.Where(item => ReduksiSampahDataStore.MatchesBulan(item, bulan))
|
||||
.Select(ReduksiSampahDataStore.ToResponse);
|
||||
|
||||
return Json(new { data });
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,13 +1,13 @@
|
|||
using Microsoft.AspNetCore.Mvc;
|
||||
|
||||
namespace BankSampahApp.Controllers.Master
|
||||
namespace BankSampahApp.Controllers.ReduksiSampah
|
||||
{
|
||||
[Route("Master/[controller]/[action]")]
|
||||
[Route("ReduksiSampah/[controller]/[action]")]
|
||||
public class LokasiController : Controller
|
||||
{
|
||||
public IActionResult Index()
|
||||
{
|
||||
return View("~/Views/Master/Lokasi/Index.cshtml");
|
||||
return View("~/Views/ReduksiSampah/Lokasi/Index.cshtml");
|
||||
}
|
||||
|
||||
[HttpGet]
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
using System.Linq;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
|
||||
namespace BankSampahApp.Controllers.ReduksiSampah
|
||||
{
|
||||
[Route("ReduksiSampah/[controller]/[action]")]
|
||||
public class MaggotController : Controller
|
||||
{
|
||||
private const string Jenis = "Maggot";
|
||||
|
||||
public IActionResult Index()
|
||||
{
|
||||
return View("~/Views/ReduksiSampah/Maggot/Index.cshtml");
|
||||
}
|
||||
|
||||
[HttpGet]
|
||||
public IActionResult Table([FromQuery] string? bulan)
|
||||
{
|
||||
var data = ReduksiSampahDataStore
|
||||
.GetItems(Jenis)
|
||||
.Where(item => ReduksiSampahDataStore.MatchesBulan(item, bulan))
|
||||
.Select(ReduksiSampahDataStore.ToResponse);
|
||||
|
||||
return Json(new { data });
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,173 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
|
||||
namespace BankSampahApp.Controllers.ReduksiSampah
|
||||
{
|
||||
internal static class ReduksiSampahDataStore
|
||||
{
|
||||
private static readonly IReadOnlyList<ReduksiSampahItem> Items = new List<ReduksiSampahItem>
|
||||
{
|
||||
new()
|
||||
{
|
||||
Id = 1,
|
||||
PeriodeBulan = "Jan 2025",
|
||||
NamaLokasi = "Jakarta Pusat",
|
||||
JenisLokasi = "Maggot",
|
||||
BeratReduksi = 8,
|
||||
BeratSampah = 15,
|
||||
Alamat = AddressBlock("Tanah Abang", "Cideng", "002", "001")
|
||||
},
|
||||
new()
|
||||
{
|
||||
Id = 2,
|
||||
PeriodeBulan = "Feb 2025",
|
||||
NamaLokasi = "Jakarta Barat",
|
||||
JenisLokasi = "Maggot",
|
||||
BeratReduksi = 10,
|
||||
BeratSampah = 20,
|
||||
Alamat = AddressBlock("Palmerah", "Kemanggisan", "003", "004")
|
||||
},
|
||||
new()
|
||||
{
|
||||
Id = 3,
|
||||
PeriodeBulan = "Mar 2025",
|
||||
NamaLokasi = "Jakarta Selatan",
|
||||
JenisLokasi = "Maggot",
|
||||
BeratReduksi = 7,
|
||||
BeratSampah = 14,
|
||||
Alamat = AddressBlock("Tebet", "Manggarai", "001", "002")
|
||||
},
|
||||
new()
|
||||
{
|
||||
Id = 4,
|
||||
PeriodeBulan = "Apr 2025",
|
||||
NamaLokasi = "Jakarta Timur",
|
||||
JenisLokasi = "Maggot",
|
||||
BeratReduksi = 6,
|
||||
BeratSampah = 12,
|
||||
Alamat = AddressBlock("Cakung", "Jatinegara", "004", "006")
|
||||
},
|
||||
new()
|
||||
{
|
||||
Id = 5,
|
||||
PeriodeBulan = "Mei 2025",
|
||||
NamaLokasi = "Jakarta Utara",
|
||||
JenisLokasi = "Maggot",
|
||||
BeratReduksi = 9,
|
||||
BeratSampah = 16,
|
||||
Alamat = AddressBlock("Koja", "Lagoa", "005", "003")
|
||||
},
|
||||
new()
|
||||
{
|
||||
Id = 6,
|
||||
PeriodeBulan = "Jun 2025",
|
||||
NamaLokasi = "Depok",
|
||||
JenisLokasi = "Komposting",
|
||||
BeratReduksi = 11,
|
||||
BeratSampah = 18,
|
||||
Alamat = AddressBlock("Beji", "Beji Timur", "006", "002")
|
||||
},
|
||||
new()
|
||||
{
|
||||
Id = 7,
|
||||
PeriodeBulan = "Jul 2025",
|
||||
NamaLokasi = "Bekasi",
|
||||
JenisLokasi = "Komposting",
|
||||
BeratReduksi = 13,
|
||||
BeratSampah = 21,
|
||||
Alamat = AddressBlock("Bekasi Timur", "Margahayu", "009", "005")
|
||||
},
|
||||
new()
|
||||
{
|
||||
Id = 8,
|
||||
PeriodeBulan = "Agu 2025",
|
||||
NamaLokasi = "Bogor",
|
||||
JenisLokasi = "Komposting",
|
||||
BeratReduksi = 9,
|
||||
BeratSampah = 15,
|
||||
Alamat = AddressBlock("Bogor Utara", "Kedunghalang", "001", "004")
|
||||
},
|
||||
new()
|
||||
{
|
||||
Id = 9,
|
||||
PeriodeBulan = "Sep 2025",
|
||||
NamaLokasi = "Tangerang",
|
||||
JenisLokasi = "Komposting",
|
||||
BeratReduksi = 8,
|
||||
BeratSampah = 13,
|
||||
Alamat = AddressBlock("Karawaci", "Nusa Jaya", "008", "003")
|
||||
},
|
||||
new()
|
||||
{
|
||||
Id = 10,
|
||||
PeriodeBulan = "Okt 2025",
|
||||
NamaLokasi = "Cilegon",
|
||||
JenisLokasi = "Komposting",
|
||||
BeratReduksi = 12,
|
||||
BeratSampah = 19,
|
||||
Alamat = AddressBlock("Ciwandan", "Kebonsari", "010", "002")
|
||||
}
|
||||
};
|
||||
|
||||
private const string ActionButtons = @"<div class=""flex gap-2"">
|
||||
<a href=""#"" class=""btn btn-circle btn-warning text-white btn-sm btn-edit""><i class=""ph ph-note-pencil""></i></a>
|
||||
<a href=""#"" class=""btn btn-circle btn-error text-white btn-sm btn-delete""><i class=""ph ph-trash""></i></a>
|
||||
<a href=""#"" class=""btn btn-circle btn-success text-white btn-sm btn-preview""><i class=""ph ph-eye""></i></a>
|
||||
<a href=""#"" class=""btn btn-circle bg-blue-500 text-white btn-sm btn-history""><i class=""ph ph-clock-counter-clockwise""></i></a>
|
||||
<a href=""#"" class=""btn btn-circle btn-warning text-white btn-sm btn-validation""><i class=""ph ph-check""></i></a>
|
||||
</div>";
|
||||
|
||||
private const string ProofButton = @"<a href=""#"" class=""btn bg-gray-500 text-white rounded-lg""><i class=""ph ph-file-text""></i></a>";
|
||||
|
||||
public static IEnumerable<ReduksiSampahItem> GetItems(string jenisLokasi) =>
|
||||
Items.Where(item => string.Equals(item.JenisLokasi, jenisLokasi, StringComparison.OrdinalIgnoreCase));
|
||||
|
||||
public static bool MatchesBulan(ReduksiSampahItem item, string? bulan)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(bulan))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
return item.PeriodeBulan.Contains(bulan.Trim(), StringComparison.OrdinalIgnoreCase);
|
||||
}
|
||||
|
||||
public static object ToResponse(ReduksiSampahItem item) => new
|
||||
{
|
||||
id = item.Id,
|
||||
periode_bulan = item.PeriodeBulan,
|
||||
nama_lokasi = item.NamaLokasi,
|
||||
alamat = item.Alamat,
|
||||
jenis_lokasi = item.JenisLokasi,
|
||||
berat_reduksi = item.BeratReduksi,
|
||||
berat_sampah = item.BeratSampah,
|
||||
gambar = ProofButton,
|
||||
aksi = ActionButtons
|
||||
};
|
||||
|
||||
private static string AddressBlock(string kecamatan, string kelurahan, string rt, string rw)
|
||||
{
|
||||
return $@"
|
||||
<div class=""flex flex-col gap-1"">
|
||||
<span class=""text-sm font-semibold text-gray-900"">{kecamatan}</span>
|
||||
<div class=""flex items-center gap-1 text-xs text-gray-500"">
|
||||
<span>{kelurahan}</span>
|
||||
<span>RT {rt}</span>
|
||||
<span>RW {rw}</span>
|
||||
</div>
|
||||
</div>";
|
||||
}
|
||||
|
||||
public class ReduksiSampahItem
|
||||
{
|
||||
public int Id { get; set; }
|
||||
public string PeriodeBulan { get; set; } = string.Empty;
|
||||
public string NamaLokasi { get; set; } = string.Empty;
|
||||
public string Alamat { get; set; } = string.Empty;
|
||||
public string JenisLokasi { get; set; } = string.Empty;
|
||||
public double BeratReduksi { get; set; }
|
||||
public double BeratSampah { get; set; }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,338 +0,0 @@
|
|||
@{
|
||||
ViewData["Title"] = "Reduksi Sampah Dinas";
|
||||
}
|
||||
|
||||
<div class="flex flex-col gap-2 md:flex-row md:justify-between md:gap-0 items-center">
|
||||
<div class="prose">
|
||||
<span class="text-xl font-semibold text-black">
|
||||
Reduksi Sampah Dinas
|
||||
</span>
|
||||
</div>
|
||||
<div class="flex gap-2 items-center">
|
||||
<select class="select rounded-full">
|
||||
<option disabled selected>Pilih Tahun</option>
|
||||
<option>2025</option>
|
||||
<option>2024</option>
|
||||
<option>2023</option>
|
||||
<option>2022</option>
|
||||
<option>2021</option>
|
||||
<option>2020</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Modal History -->
|
||||
<dialog id="modal_history" class="modal">
|
||||
<div class="modal-box max-w-md">
|
||||
<form method="dialog">
|
||||
<button class="btn btn-sm btn-circle btn-ghost absolute right-2 top-2">✕</button>
|
||||
</form>
|
||||
<h3 class="text-lg font-bold">History Data</h3>
|
||||
<p class="py-4 text-base font-['Plus_Jakarta_Sans']">Terdapat 30 History perubahan data</p>
|
||||
<div class="px-3 pt-4 pb-8 bg-gray-50">
|
||||
<div class="flex flex-col gap-4 pl-4 border-l-2 border-gray-300">
|
||||
<div class="flex flex-col gap-1">
|
||||
<div class="text-gray-500 text-xs leading-4">Admin Subandri</div>
|
||||
<div class="text-primary-500 text-base">Current Version</div>
|
||||
</div>
|
||||
|
||||
<div class="flex flex-col gap-1">
|
||||
<div class="text-gray-500 text-xs leading-4">Admin Subandri</div>
|
||||
<div class="text-gray-600 text-base">12:26 pm</div>
|
||||
</div>
|
||||
|
||||
<div class="flex flex-col gap-1">
|
||||
<div class="text-gray-500 text-xs leading-4">Admin Subandri</div>
|
||||
<div class="text-gray-600 text-base">24 Nov 2025, 12:26 pm</div>
|
||||
</div>
|
||||
|
||||
<div class="flex flex-col gap-1">
|
||||
<div class="text-gray-500 text-xs leading-4">Admin Subandri</div>
|
||||
<div class="text-gray-600 text-base">23 Nov 2025, 12:26 pm</div>
|
||||
</div>
|
||||
|
||||
<div class="flex flex-col gap-1">
|
||||
<div class="text-gray-500 text-xs leading-4">Admin Subandri</div>
|
||||
<div class="text-gray-600 text-base">22 Nov 2025, 12:26 pm</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</dialog>
|
||||
|
||||
<!-- End Modal History -->
|
||||
|
||||
<!-- Modal Tambah/Edit Data -->
|
||||
<dialog id="modal_tambah" class="modal modal-bottom sm:modal-middle">
|
||||
<div class="modal-box w-full max-w-2xl p-6 bg-white rounded-2xl">
|
||||
<h3 id="modal_title" class="text-gray-900 text-xl font-semibold font-['Plus_Jakarta_Sans'] leading-8 mb-8">Tambah Reduksi Sampah</h3>
|
||||
<form id="formTambah" onsubmit="submitForm(event)">
|
||||
<input type="hidden" id="edit_mode" value="false">
|
||||
<input type="hidden" id="reduksi_sampah_id" value="">
|
||||
<div class="flex flex-col gap-6">
|
||||
<!-- Fiel Jenis Lokasi -->
|
||||
<div class="flex flex-col">
|
||||
<fieldset class="fieldset">
|
||||
<legend class="fieldset-legend">
|
||||
Jenis Lokasi
|
||||
<span class="text-red-500">*</span>
|
||||
</legend>
|
||||
<select id="jenis_lokasi" class="select w-full" required>
|
||||
<option value="" disabled selected>Pilih salah satu</option>
|
||||
<option value="Komposting">Komposting</option>
|
||||
<option value="Maggot">Maggot</option>
|
||||
</select>
|
||||
</fieldset>
|
||||
</div>
|
||||
<div id="formDetail" class="hidden flex flex-col gap-6">
|
||||
<!-- Field Lokasi -->
|
||||
<div class="flex flex-col">
|
||||
<fieldset class="fieldset">
|
||||
<legend class="fieldset-legend">
|
||||
Lokasi<span class="text-red-500">*</span>
|
||||
</legend>
|
||||
<select id="lokasi" class="select w-full" required>
|
||||
<option value="" disabled selected>Pilih salah satu</option>
|
||||
</select>
|
||||
</fieldset>
|
||||
</div>
|
||||
|
||||
<!-- Field alamat -->
|
||||
<div class="flex flex-col">
|
||||
<fieldset class="fieldset">
|
||||
<legend class="fieldset-legend">
|
||||
Alamat
|
||||
</legend>
|
||||
<textarea id="alamat" rows="4" readonly class="textarea textarea-bordered w-full"></textarea>
|
||||
</fieldset>
|
||||
</div>
|
||||
|
||||
<!-- Field Bukti Kegiatan -->
|
||||
<div class="flex flex-col">
|
||||
<fieldset class="fieldset">
|
||||
<legend class="fieldset-legend">
|
||||
Bukti Kegiatan
|
||||
<span class="text-red-500">*</span>
|
||||
</legend>
|
||||
<input type="file" class="file-input w-full" />
|
||||
<label class="label">Ukuran Maksimal 5MB</label>
|
||||
</fieldset>
|
||||
</div>
|
||||
|
||||
<!-- Field Keterangan -->
|
||||
<div class="flex flex-col">
|
||||
<fieldset class="fieldset">
|
||||
<legend class="fieldset-legend">
|
||||
Keterangan Kegiatan<span class="text-red-500">*</span>
|
||||
</legend>
|
||||
<textarea id="keterangan_kegiatan" rows="4" required placeholder="Keterangan Kegiatan" class="textarea textarea-bordered w-full"></textarea>
|
||||
</fieldset>
|
||||
</div>
|
||||
|
||||
<!-- Field Tanggal Pelaksanaan Kegiatan -->
|
||||
<div class="flex flex-col">
|
||||
<fieldset class="fieldset">
|
||||
<legend class="fieldset-legend">
|
||||
Tanggal Pelaksanaan Kegiatan
|
||||
<span class="text-red-500">*</span>
|
||||
</legend>
|
||||
<input type="date" id="tgl_pelaksanaan_kegiatan" class="input w-full" required />
|
||||
</fieldset>
|
||||
</div>
|
||||
|
||||
<!-- Pelaksana kegiatan -->
|
||||
<div class="flex flex-col">
|
||||
<fieldset class="fieldset">
|
||||
<legend class="fieldset-legend">
|
||||
Pelaksana Kegiatan<span class="text-red-500">*</span>
|
||||
</legend>
|
||||
<input type="text" id="preview" class="input w-full" placeholder="Pelaksana Kegiatan" required />
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Buttons -->
|
||||
<div class="flex flex-col sm:flex-row gap-3 justify-end">
|
||||
<button type="button" class="px-8 py-2.5 bg-white rounded-full outline outline-1 -outline-offset-1 outline-gray-300 text-slate-800 text-base font-semibold font-['Plus_Jakarta_Sans'] leading-6 hover:bg-gray-50 w-full sm:w-auto" onclick="closeModal()">
|
||||
Batal
|
||||
</button>
|
||||
<button type="submit" class="px-8 py-2.5 bg-green-800 rounded-full text-white text-base font-semibold font-['Plus_Jakarta_Sans'] leading-6 hover:bg-green-900 w-full sm:w-auto">
|
||||
Simpan
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<form method="dialog" class="modal-backdrop">
|
||||
<button>close</button>
|
||||
</form>
|
||||
</dialog>
|
||||
<!-- /modal tambah/edit -->
|
||||
|
||||
<div class="h-6"></div>
|
||||
|
||||
<div class="card bg-white shadow-sm">
|
||||
<div class="card-body p-2">
|
||||
<div class="w-full overflow-x-auto">
|
||||
<table class="table-zebra table w-full" id="example">
|
||||
<!-- head -->
|
||||
<thead>
|
||||
<tr>
|
||||
<th>No</th>
|
||||
<th>Periode</th>
|
||||
<th>Nama Lokasi</th>
|
||||
<th>Alamat</th>
|
||||
<th>Berat Maggot(Kg)</th>
|
||||
<th>Berat Komposting(Kg)</th>
|
||||
<th>Berat Bank Sampah(Kg)</th>
|
||||
<th>Total Reduksi(Kg)</th>
|
||||
<th>Aksi</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
@section Scripts {
|
||||
<script type="text/javascript">
|
||||
var table;
|
||||
var allLokasi = [];
|
||||
|
||||
$(document).ready(function () {
|
||||
$.ajax({
|
||||
url: '/Master/Lokasi/Table',
|
||||
method: 'GET',
|
||||
success: function (response) {
|
||||
|
||||
// ambil semua data kecuali 'aksi'
|
||||
allLokasi = (response.data || []).map(item => {
|
||||
return {
|
||||
jenis_lokasi: item.jenis_lokasi,
|
||||
nama_lokasi: item.nama_lokasi,
|
||||
kecamatan: item.kecamatan,
|
||||
kelurahan: item.kelurahan,
|
||||
detail_alamat: item.detail_alamat,
|
||||
rt: item.rt,
|
||||
rw: item.rw
|
||||
};
|
||||
});
|
||||
},
|
||||
error: function () {
|
||||
console.error("Gagal mengambil data lokasi dari /Master/Lokasi/Table");
|
||||
}
|
||||
});
|
||||
|
||||
table = new DataTable('#example', {
|
||||
ajax: '/Main/ReduksiSampahDinas/Table',
|
||||
scrollX: true,
|
||||
autoWidth: false,
|
||||
initComplete: function () {
|
||||
$('div.dt-scroll-body thead').css('visibility', 'collapse');
|
||||
},
|
||||
columns: [
|
||||
{ data: null, render: (d, t, r, m) => m.row + 1, orderable: false, searchable: false },
|
||||
{ data: 'periode_bulan' },
|
||||
{ data: 'nama_lokasi' },
|
||||
{ data: 'alamat' },
|
||||
{ data: 'berat_maggot' },
|
||||
{ data: 'berat_komposting' },
|
||||
{ data: 'berat_bank_sampah' },
|
||||
{
|
||||
data: null,
|
||||
render: function (data, type, row) {
|
||||
let maggot = parseFloat(row.berat_maggot) || 0;
|
||||
let komposting = parseFloat(row.berat_komposting) || 0;
|
||||
let bankSampah = parseFloat(row.berat_bank_sampah) || 0;
|
||||
|
||||
let total = maggot + komposting + bankSampah;
|
||||
return total;
|
||||
}
|
||||
},
|
||||
{ data: 'aksi', orderable: false, searchable: false },
|
||||
]
|
||||
});
|
||||
|
||||
$('#example').on('click', '.btn-history', function (e) {
|
||||
e.preventDefault();
|
||||
modal_history.showModal();
|
||||
});
|
||||
|
||||
$('#jenis_lokasi').on('change', function() {
|
||||
const jenisLokasi = $(this).val();
|
||||
|
||||
if (jenisLokasi) {
|
||||
$('#formDetail').removeClass('hidden').hide().fadeIn(300);
|
||||
populateNamaLokasiDropdown(jenisLokasi);
|
||||
// $('#formTambah')[0].reset();
|
||||
} else {
|
||||
$('#formDetail').fadeOut(300);
|
||||
}
|
||||
});
|
||||
|
||||
// 🔹 Event: ketika nama_lokasi dipilih
|
||||
$('#lokasi').on('change', function () {
|
||||
const nama = $(this).val();
|
||||
|
||||
if (!nama) {
|
||||
$('#alamat').val(''); // reset jika tidak ada pilihan
|
||||
return;
|
||||
}
|
||||
|
||||
// cari lokasi yang sesuai
|
||||
const lokasi = allLokasi.find(item => item.nama_lokasi === nama);
|
||||
|
||||
if (lokasi) {
|
||||
// format: Kecamatan, Kelurahan, RT, RW, Detail Alamat
|
||||
const formattedAlamat = `${lokasi.kecamatan}, ${lokasi.kelurahan}, RT ${lokasi.rt}, RW ${lokasi.rw}, ${lokasi.detail_alamat}`;
|
||||
$('#alamat').val(formattedAlamat);
|
||||
}
|
||||
});
|
||||
|
||||
$('#example').on('click', '.btn-edit', function (e) {
|
||||
e.preventDefault();
|
||||
|
||||
// Get row data
|
||||
var row = table.row($(this).parents('tr')).data();
|
||||
|
||||
// Set edit mode
|
||||
$('#edit_mode').val('true');
|
||||
$('#reduksi_sampah_id').val(row.id);
|
||||
$('#jenis_lokasi').val(row.jenis_lokasi).trigger("change");
|
||||
$("#lokasi").val(row.nama_lokasi).trigger("change");
|
||||
$('#modal_title').text('Edit Reduksi Sampah');
|
||||
|
||||
// Open modal
|
||||
modal_tambah.showModal();
|
||||
});
|
||||
});
|
||||
|
||||
function populateNamaLokasiDropdown(jenisLokasi) {
|
||||
let options = '<option value="">Pilih salah satu</option>';
|
||||
|
||||
if (jenisLokasi) {
|
||||
// filter lokasi berdasarkan jenis_lokasi
|
||||
const filtered = allLokasi.filter(item => item.jenis_lokasi === jenisLokasi);
|
||||
|
||||
filtered.forEach(item => {
|
||||
options += `<option value="${item.nama_lokasi}">${item.nama_lokasi}</option>`;
|
||||
});
|
||||
}
|
||||
|
||||
$('#lokasi').html(options);
|
||||
}
|
||||
|
||||
function closeModal() {
|
||||
// Reset form
|
||||
$('#formTambah')[0].reset();
|
||||
$('#edit_mode').val('false');
|
||||
$('#modal_title').text('Tambah Reduksi Sampah');
|
||||
|
||||
// Close modal
|
||||
modal_tambah.close();
|
||||
}
|
||||
</script>
|
||||
}
|
||||
|
|
@ -1,283 +0,0 @@
|
|||
@{
|
||||
ViewData["Title"] = "Reduksi Sampah";
|
||||
}
|
||||
|
||||
<div class="flex flex-col gap-2 md:flex-row md:justify-between md:gap-0 items-center">
|
||||
<div class="prose">
|
||||
<span class="text-xl font-semibold text-black">
|
||||
Reduksi Sampah
|
||||
</span>
|
||||
</div>
|
||||
<div class="flex gap-2 items-center">
|
||||
<select class="select rounded-full">
|
||||
<option disabled selected>Pilih Tahun</option>
|
||||
<option>2025</option>
|
||||
<option>2024</option>
|
||||
<option>2023</option>
|
||||
<option>2022</option>
|
||||
<option>2021</option>
|
||||
<option>2020</option>
|
||||
</select>
|
||||
<button type="button" class="btn btn-sm bg-bank-sampah-primary-500 rounded-full text-white" onclick="modal_tambah.showModal()"><i class="ph ph-plus"></i>Tambah</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Modal Tambah/Edit Data -->
|
||||
<dialog id="modal_tambah" class="modal modal-bottom sm:modal-middle">
|
||||
<div class="modal-box w-full max-w-2xl p-6 bg-white rounded-2xl">
|
||||
<h3 id="modal_title" class="text-gray-900 text-xl font-semibold font-['Plus_Jakarta_Sans'] leading-8 mb-8">Tambah Reduksi Sampah</h3>
|
||||
<form id="formTambah" onsubmit="submitForm(event)">
|
||||
<input type="hidden" id="edit_mode" value="false">
|
||||
<input type="hidden" id="reduksi_sampah_id" value="">
|
||||
<div class="flex flex-col gap-6">
|
||||
<!-- Fiel Jenis Lokasi -->
|
||||
<div class="flex flex-col">
|
||||
<fieldset class="fieldset">
|
||||
<legend class="fieldset-legend">
|
||||
Jenis Lokasi
|
||||
<span class="text-red-500">*</span>
|
||||
</legend>
|
||||
<select id="jenis_lokasi" class="select w-full" required>
|
||||
<option value="" disabled selected>Pilih salah satu</option>
|
||||
<option value="Komposting">Komposting</option>
|
||||
<option value="Maggot">Maggot</option>
|
||||
</select>
|
||||
</fieldset>
|
||||
</div>
|
||||
<div id="formDetail" class="hidden flex flex-col gap-6">
|
||||
<!-- Field Lokasi -->
|
||||
<div class="flex flex-col">
|
||||
<fieldset class="fieldset">
|
||||
<legend class="fieldset-legend">
|
||||
Lokasi<span class="text-red-500">*</span>
|
||||
</legend>
|
||||
<select id="lokasi" class="select w-full" required>
|
||||
<option value="" disabled selected>Pilih salah satu</option>
|
||||
</select>
|
||||
</fieldset>
|
||||
</div>
|
||||
|
||||
<!-- Field alamat -->
|
||||
<div class="flex flex-col">
|
||||
<fieldset class="fieldset">
|
||||
<legend class="fieldset-legend">
|
||||
Alamat
|
||||
</legend>
|
||||
<textarea id="alamat" rows="4" readonly class="textarea textarea-bordered w-full"></textarea>
|
||||
</fieldset>
|
||||
</div>
|
||||
|
||||
<!-- Field Bukti Kegiatan -->
|
||||
<div class="flex flex-col">
|
||||
<fieldset class="fieldset">
|
||||
<legend class="fieldset-legend">
|
||||
Bukti Kegiatan
|
||||
<span class="text-red-500">*</span>
|
||||
</legend>
|
||||
<input type="file" class="file-input w-full" />
|
||||
<label class="label">Ukuran Maksimal 5MB</label>
|
||||
</fieldset>
|
||||
</div>
|
||||
|
||||
<!-- Field Keterangan -->
|
||||
<div class="flex flex-col">
|
||||
<fieldset class="fieldset">
|
||||
<legend class="fieldset-legend">
|
||||
Keterangan Kegiatan<span class="text-red-500">*</span>
|
||||
</legend>
|
||||
<textarea id="keterangan_kegiatan" rows="4" required placeholder="Keterangan Kegiatan" class="textarea textarea-bordered w-full"></textarea>
|
||||
</fieldset>
|
||||
</div>
|
||||
|
||||
<!-- Field Tanggal Pelaksanaan Kegiatan -->
|
||||
<div class="flex flex-col">
|
||||
<fieldset class="fieldset">
|
||||
<legend class="fieldset-legend">
|
||||
Tanggal Pelaksanaan Kegiatan
|
||||
<span class="text-red-500">*</span>
|
||||
</legend>
|
||||
<input type="date" id="tgl_pelaksanaan_kegiatan" class="input w-full" required />
|
||||
</fieldset>
|
||||
</div>
|
||||
|
||||
<!-- Pelaksana kegiatan -->
|
||||
<div class="flex flex-col">
|
||||
<fieldset class="fieldset">
|
||||
<legend class="fieldset-legend">
|
||||
Pelaksana Kegiatan<span class="text-red-500">*</span>
|
||||
</legend>
|
||||
<input type="text" id="preview" class="input w-full" placeholder="Pelaksana Kegiatan" required />
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Buttons -->
|
||||
<div class="flex flex-col sm:flex-row gap-3 justify-end">
|
||||
<button type="button" class="px-8 py-2.5 bg-white rounded-full outline outline-1 -outline-offset-1 outline-gray-300 text-slate-800 text-base font-semibold font-['Plus_Jakarta_Sans'] leading-6 hover:bg-gray-50 w-full sm:w-auto" onclick="closeModal()">
|
||||
Batal
|
||||
</button>
|
||||
<button type="submit" class="px-8 py-2.5 bg-green-800 rounded-full text-white text-base font-semibold font-['Plus_Jakarta_Sans'] leading-6 hover:bg-green-900 w-full sm:w-auto">
|
||||
Simpan
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<form method="dialog" class="modal-backdrop">
|
||||
<button>close</button>
|
||||
</form>
|
||||
</dialog>
|
||||
<!-- /modal tambah/edit -->
|
||||
|
||||
<div class="h-6"></div>
|
||||
|
||||
<div class="card bg-white shadow-sm">
|
||||
<div class="card-body p-2">
|
||||
<div class="w-full overflow-x-auto">
|
||||
<table class="table-zebra table w-full" id="example">
|
||||
<!-- head -->
|
||||
<thead>
|
||||
<tr>
|
||||
<th>No</th>
|
||||
<th>Nama Lokasi</th>
|
||||
<th>Alamat</th>
|
||||
<th>Jenis Lokasi</th>
|
||||
<th>Berat(Kg)</th>
|
||||
<th>Gambar</th>
|
||||
<th>Aksi</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
@section Scripts {
|
||||
<script type="text/javascript">
|
||||
var table;
|
||||
var allLokasi = [];
|
||||
|
||||
$(document).ready(function () {
|
||||
|
||||
// Load data lokasi
|
||||
$.ajax({
|
||||
url: '/Master/Lokasi/Table',
|
||||
method: 'GET',
|
||||
success: function (response) {
|
||||
|
||||
// ambil semua data kecuali 'aksi'
|
||||
allLokasi = (response.data || []).map(item => {
|
||||
return {
|
||||
jenis_lokasi: item.jenis_lokasi,
|
||||
nama_lokasi: item.nama_lokasi,
|
||||
kecamatan: item.kecamatan,
|
||||
kelurahan: item.kelurahan,
|
||||
detail_alamat: item.detail_alamat,
|
||||
rt: item.rt,
|
||||
rw: item.rw
|
||||
};
|
||||
});
|
||||
},
|
||||
error: function () {
|
||||
console.error("Gagal mengambil data lokasi dari /Master/Lokasi/Table");
|
||||
}
|
||||
});
|
||||
|
||||
table = new DataTable('#example', {
|
||||
ajax: '/Main/ReduksiSampahSatpel/Table',
|
||||
scrollX: true,
|
||||
autoWidth: false,
|
||||
initComplete: function () {
|
||||
$('div.dt-scroll-body thead').css('visibility', 'collapse');
|
||||
},
|
||||
columns: [
|
||||
{ data: null, render: (d, t, r, m) => m.row + 1, orderable: false, searchable: false },
|
||||
{ data: 'nama_lokasi' },
|
||||
{ data: 'alamat' },
|
||||
{ data: 'jenis_lokasi' },
|
||||
{ data: 'berat' },
|
||||
{ data: 'gambar', orderable: false, searchable: false },
|
||||
{ data: 'aksi', orderable: false, searchable: false },
|
||||
]
|
||||
});
|
||||
|
||||
|
||||
|
||||
$('#jenis_lokasi').on('change', function() {
|
||||
const jenisLokasi = $(this).val();
|
||||
|
||||
if (jenisLokasi) {
|
||||
$('#formDetail').removeClass('hidden').hide().fadeIn(300);
|
||||
populateNamaLokasiDropdown(jenisLokasi);
|
||||
// $('#formTambah')[0].reset();
|
||||
} else {
|
||||
$('#formDetail').fadeOut(300);
|
||||
}
|
||||
});
|
||||
|
||||
// 🔹 Event: ketika nama_lokasi dipilih
|
||||
$('#lokasi').on('change', function () {
|
||||
const nama = $(this).val();
|
||||
|
||||
if (!nama) {
|
||||
$('#alamat').val(''); // reset jika tidak ada pilihan
|
||||
return;
|
||||
}
|
||||
|
||||
// cari lokasi yang sesuai
|
||||
const lokasi = allLokasi.find(item => item.nama_lokasi === nama);
|
||||
|
||||
if (lokasi) {
|
||||
// format: Kecamatan, Kelurahan, RT, RW, Detail Alamat
|
||||
const formattedAlamat = `${lokasi.kecamatan}, ${lokasi.kelurahan}, RT ${lokasi.rt}, RW ${lokasi.rw}, ${lokasi.detail_alamat}`;
|
||||
$('#alamat').val(formattedAlamat);
|
||||
}
|
||||
});
|
||||
|
||||
$('#example').on('click', '.btn-edit', function (e) {
|
||||
e.preventDefault();
|
||||
|
||||
// Get row data
|
||||
var row = table.row($(this).parents('tr')).data();
|
||||
|
||||
// Set edit mode
|
||||
$('#edit_mode').val('true');
|
||||
$('#reduksi_sampah_id').val(row.id);
|
||||
$('#jenis_lokasi').val(row.jenis_lokasi).trigger("change");
|
||||
$("#lokasi").val(row.nama_lokasi).trigger("change");
|
||||
|
||||
// Open modal
|
||||
modal_tambah.showModal();
|
||||
});
|
||||
});
|
||||
|
||||
// 🔹 Fungsi: filter lokasi berdasarkan jenis_lokasi
|
||||
function populateNamaLokasiDropdown(jenisLokasi) {
|
||||
let options = '<option value="">Pilih salah satu</option>';
|
||||
|
||||
if (jenisLokasi) {
|
||||
// filter lokasi berdasarkan jenis_lokasi
|
||||
const filtered = allLokasi.filter(item => item.jenis_lokasi === jenisLokasi);
|
||||
|
||||
filtered.forEach(item => {
|
||||
options += `<option value="${item.nama_lokasi}">${item.nama_lokasi}</option>`;
|
||||
});
|
||||
}
|
||||
|
||||
$('#lokasi').html(options);
|
||||
}
|
||||
|
||||
function closeModal() {
|
||||
// Reset form
|
||||
$('#formTambah')[0].reset();
|
||||
$('#edit_mode').val('false');
|
||||
$('#modal_title').text('Tambah Reduksi Sampah');
|
||||
|
||||
// Close modal
|
||||
modal_tambah.close();
|
||||
}
|
||||
</script>
|
||||
}
|
||||
|
|
@ -1,151 +0,0 @@
|
|||
@{
|
||||
ViewData["Title"] = "Reduksi Sampah Sudin";
|
||||
}
|
||||
|
||||
<div class="flex flex-col gap-2 md:flex-row md:justify-between md:gap-0 items-center">
|
||||
<div class="prose">
|
||||
<span class="text-xl font-semibold text-black">
|
||||
Reduksi Sampah Sudin
|
||||
</span>
|
||||
</div>
|
||||
<div class="flex gap-2 items-center">
|
||||
<select class="select rounded-full">
|
||||
<option disabled selected>Pilih Tahun</option>
|
||||
<option>2025</option>
|
||||
<option>2024</option>
|
||||
<option>2023</option>
|
||||
<option>2022</option>
|
||||
<option>2021</option>
|
||||
<option>2020</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Modal Validasi Data -->
|
||||
<dialog id="modal_validasi" class="modal modal-bottom sm:modal-middle">
|
||||
<div class="modal-box w-full max-w-[591px] p-6 bg-white rounded-2xl inline-flex flex-col justify-center items-end gap-6">
|
||||
<!-- Header -->
|
||||
<div class="self-stretch inline-flex justify-between items-center">
|
||||
<div class="flex-1 justify-start text-gray-900 text-xl font-semibold font-['Plus_Jakarta_Sans'] leading-8">Validasi Data</div>
|
||||
<button type="button" class="w-5 h-5 relative" onclick="closeValidasiModal()">
|
||||
<i class="ph ph-x text-gray-500 text-xl"></i>
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<!-- Content -->
|
||||
<div class="self-stretch flex flex-col justify-center items-center">
|
||||
<div class="self-stretch px-3 pt-3 pb-8 bg-gray-50 rounded-lg inline-flex justify-start items-start gap-4">
|
||||
<div class="flex-1 inline-flex flex-col justify-start items-start gap-1">
|
||||
<div class="self-stretch justify-start text-gray-500 text-xs font-normal font-['Plus_Jakarta_Sans'] leading-4">Tgl Pemilahan</div>
|
||||
<div id="val_tgl_pemilahan" class="self-stretch justify-start text-slate-600 text-base font-normal font-['Plus_Jakarta_Sans'] leading-6">29 Juli 2024</div>
|
||||
</div>
|
||||
<div class="flex-1 inline-flex flex-col justify-start items-start gap-1">
|
||||
<div class="self-stretch justify-start text-gray-500 text-xs font-normal font-['Plus_Jakarta_Sans'] leading-4">Nama Lokasi</div>
|
||||
<div id="val_nama_bank_sampah" class="self-stretch justify-start text-slate-600 text-base font-normal font-['Plus_Jakarta_Sans'] leading-6">Jakarta Selatan</div>
|
||||
</div>
|
||||
<div class="flex-1 inline-flex flex-col justify-start items-start gap-1">
|
||||
<div class="self-stretch justify-start text-gray-500 text-xs font-normal font-['Plus_Jakarta_Sans'] leading-4">Nama Penanggung Jawab</div>
|
||||
<div id="val_nama_penanggung_jawab" class="self-stretch justify-start text-slate-600 text-base font-normal font-['Plus_Jakarta_Sans'] leading-6">Joko Widodo</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Question -->
|
||||
<div class="self-stretch justify-start text-slate-800 text-base font-semibold font-['Plus_Jakarta_Sans'] leading-6">Anda yakin ingin melakukan validasi data ?</div>
|
||||
|
||||
<!-- Actions -->
|
||||
<div class="self-stretch inline-flex justify-end items-center gap-3">
|
||||
<button type="button"
|
||||
class="px-4 py-2.5 bg-white rounded-[99px] outline outline-1 outline-offset-[-1px] outline-gray-300 flex justify-center items-center gap-2 hover:bg-gray-50"
|
||||
onclick="confirmTolakValidasi()">
|
||||
<div class="justify-start text-slate-800 text-sm font-semibold font-['Plus_Jakarta_Sans'] leading-5">Tolak Validasi</div>
|
||||
</button>
|
||||
<button type="button"
|
||||
class="w-28 px-4 py-2.5 bg-green-800 rounded-[99px] flex justify-center items-center gap-2 hover:bg-green-900"
|
||||
onclick="confirmValidasi()">
|
||||
<div class="justify-start text-white text-sm font-semibold font-['Plus_Jakarta_Sans'] leading-5">Ya</div>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<form method="dialog" class="modal-backdrop">
|
||||
<button>close</button>
|
||||
</form>
|
||||
</dialog>
|
||||
<!-- /modal validasi -->
|
||||
|
||||
<div class="h-6"></div>
|
||||
|
||||
<div class="card bg-white shadow-sm">
|
||||
<div class="card-body p-2">
|
||||
<div class="w-full overflow-x-auto">
|
||||
<table class="table-zebra table w-full" id="example">
|
||||
<!-- head -->
|
||||
<thead>
|
||||
<tr>
|
||||
<th>No</th>
|
||||
<th>Nama Lokasi</th>
|
||||
<th>Alamat</th>
|
||||
<th>Jenis Lokasi</th>
|
||||
<th>Berat(Kg)</th>
|
||||
<th>Gambar</th>
|
||||
<th>Aksi</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
@section Scripts {
|
||||
<script type="text/javascript">
|
||||
var table;
|
||||
$(document).ready(function () {
|
||||
table = new DataTable('#example', {
|
||||
ajax: '/Main/ReduksiSampahSudin/Table',
|
||||
scrollX: true,
|
||||
autoWidth: false,
|
||||
initComplete: function () {
|
||||
$('div.dt-scroll-body thead').css('visibility', 'collapse');
|
||||
},
|
||||
columns: [
|
||||
{ data: null, render: (d, t, r, m) => m.row + 1, orderable: false, searchable: false },
|
||||
{ data: 'nama_lokasi' },
|
||||
{ data: 'alamat' },
|
||||
{ data: 'jenis_lokasi' },
|
||||
{ data: 'berat' },
|
||||
{ data: 'gambar', orderable: false, searchable: false },
|
||||
{ data: 'aksi', orderable: false, searchable: false },
|
||||
]
|
||||
});
|
||||
|
||||
$('#example').on('click', '.btn-validation', function (e) {
|
||||
e.preventDefault();
|
||||
modal_validasi.showModal();
|
||||
});
|
||||
});
|
||||
|
||||
function closeValidasiModal() {
|
||||
window.currentValidationRow = null;
|
||||
modal_validasi.close();
|
||||
}
|
||||
|
||||
function confirmValidasi() {
|
||||
// TODO: Implement actual validation API call
|
||||
closeValidasiModal();
|
||||
|
||||
// Reload table
|
||||
table.ajax.reload();
|
||||
}
|
||||
|
||||
function confirmTolakValidasi() {
|
||||
// TODO: Implement actual rejection API call
|
||||
closeValidasiModal();
|
||||
|
||||
// Reload table
|
||||
table.ajax.reload();
|
||||
}
|
||||
</script>
|
||||
}
|
||||
|
|
@ -0,0 +1,422 @@
|
|||
@{
|
||||
var jenis = "Komposting";
|
||||
var tableUrl = Url.Content("~/ReduksiSampah/Komposting/Table");
|
||||
ViewData["Title"] = $"Reduksi Sampah - {jenis}";
|
||||
}
|
||||
|
||||
<div class="flex flex-col gap-2 md:flex-row md:justify-between md:gap-0 items-center">
|
||||
<div class="prose">
|
||||
<span class="text-xl font-semibold text-black">
|
||||
Reduksi Sampah - @jenis
|
||||
</span>
|
||||
</div>
|
||||
<div class="flex gap-2 items-center">
|
||||
<select class="select rounded-full">
|
||||
<option disabled selected>Pilih Tahun</option>
|
||||
<option>2025</option>
|
||||
<option>2024</option>
|
||||
<option>2023</option>
|
||||
<option>2022</option>
|
||||
<option>2021</option>
|
||||
<option>2020</option>
|
||||
</select>
|
||||
<button type="button" class="btn btn-sm bg-bank-sampah-primary-500 rounded-full text-white"
|
||||
onclick="modal_tambah.showModal()"><i class="ph ph-plus"></i>Tambah</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Modal History -->
|
||||
<dialog id="modal_history" class="modal">
|
||||
<div class="modal-box max-w-md">
|
||||
<form method="dialog">
|
||||
<button class="btn btn-sm btn-circle btn-ghost absolute right-2 top-2">✕</button>
|
||||
</form>
|
||||
<h3 class="text-lg font-bold">History Data</h3>
|
||||
<p class="py-4 text-base font-['Plus Jakarta Sans']">Terdapat 30 History perubahan data</p>
|
||||
<div class="px-3 pt-4 pb-8 bg-gray-50">
|
||||
<div class="flex flex-col gap-4 pl-4 border-l-2 border-gray-300">
|
||||
<div class="flex flex-col gap-1">
|
||||
<div class="text-gray-500 text-xs leading-4">Admin Subandri</div>
|
||||
<div class="text-primary-500 text-base">Current Version</div>
|
||||
</div>
|
||||
|
||||
<div class="flex flex-col gap-1">
|
||||
<div class="text-gray-500 text-xs leading-4">Admin Subandri</div>
|
||||
<div class="text-gray-600 text-base">12:26 pm</div>
|
||||
</div>
|
||||
|
||||
<div class="flex flex-col gap-1">
|
||||
<div class="text-gray-500 text-xs leading-4">Admin Subandri</div>
|
||||
<div class="text-gray-600 text-base">24 Nov 2025, 12:26 pm</div>
|
||||
</div>
|
||||
|
||||
<div class="flex flex-col gap-1">
|
||||
<div class="text-gray-500 text-xs leading-4">Admin Subandri</div>
|
||||
<div class="text-gray-600 text-base">23 Nov 2025, 12:26 pm</div>
|
||||
</div>
|
||||
|
||||
<div class="flex flex-col gap-1">
|
||||
<div class="text-gray-500 text-xs leading-4">Admin Subandri</div>
|
||||
<div class="text-gray-600 text-base">22 Nov 2025, 12:26 pm</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</dialog>
|
||||
<!-- End Modal History -->
|
||||
|
||||
<!-- Modal Validasi Data -->
|
||||
<dialog id="modal_validasi" class="modal modal-bottom sm:modal-middle">
|
||||
<div
|
||||
class="modal-box w-full max-w-[591px] p-6 bg-white rounded-2xl inline-flex flex-col justify-center items-end gap-6">
|
||||
<div class="self-stretch inline-flex justify-between items-center">
|
||||
<div class="flex-1 justify-start text-gray-900 text-xl font-semibold font-['Plus Jakarta Sans'] leading-8">
|
||||
Validasi Data</div>
|
||||
<button type="button" class="w-5 h-5 relative" onclick="closeValidasiModal()">
|
||||
<i class="ph ph-x text-gray-500 text-xl"></i>
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<div class="self-stretch flex flex-col justify-center items-center">
|
||||
<div class="self-stretch px-3 pt-3 pb-8 bg-gray-50 rounded-lg inline-flex justify-start items-start gap-4">
|
||||
<div class="flex-1 inline-flex flex-col justify-start items-start gap-1">
|
||||
<div
|
||||
class="self-stretch justify-start text-gray-500 text-xs font-normal font-['Plus Jakarta Sans'] leading-4">
|
||||
Periode</div>
|
||||
<div id="val_periode"
|
||||
class="self-stretch justify-start text-slate-600 text-base font-normal font-['Plus Jakarta Sans'] leading-6">
|
||||
29 Jul 2024</div>
|
||||
</div>
|
||||
<div class="flex-1 inline-flex flex-col justify-start items-start gap-1">
|
||||
<div
|
||||
class="self-stretch justify-start text-gray-500 text-xs font-normal font-['Plus Jakarta Sans'] leading-4">
|
||||
Nama Lokasi</div>
|
||||
<div id="val_nama_lokasi"
|
||||
class="self-stretch justify-start text-slate-600 text-base font-normal font-['Plus Jakarta Sans'] leading-6">
|
||||
Jakarta Selatan</div>
|
||||
</div>
|
||||
<div class="flex-1 inline-flex flex-col justify-start items-start gap-1">
|
||||
<div
|
||||
class="self-stretch justify-start text-gray-500 text-xs font-normal font-['Plus Jakarta Sans'] leading-4">
|
||||
Jenis Lokasi</div>
|
||||
<div id="val_jenis_lokasi"
|
||||
class="self-stretch justify-start text-slate-600 text-base font-normal font-['Plus Jakarta Sans'] leading-6">
|
||||
Maggot</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div
|
||||
class="self-stretch justify-start text-slate-800 text-base font-semibold font-['Plus Jakarta Sans'] leading-6">
|
||||
Anda yakin ingin melakukan validasi data ?</div>
|
||||
|
||||
<div class="self-stretch inline-flex justify-end items-center gap-3">
|
||||
<button type="button" class="btn btn-outline btn-sm rounded-full flex justify-center items-center gap-2"
|
||||
onclick="confirmTolakValidasi()">
|
||||
<div class="justify-start text-slate-800 text-sm font-semibold font-['Plus Jakarta Sans'] leading-5">
|
||||
Tolak Validasi</div>
|
||||
</button>
|
||||
<button type="button" class="btn btn-success btn-sm rounded-full flex justify-center items-center gap-2"
|
||||
onclick="confirmValidasi()">
|
||||
<div class="justify-start text-white text-sm font-semibold font-['Plus Jakarta Sans'] leading-5">Ya
|
||||
</div>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<form method="dialog" class="modal-backdrop">
|
||||
<button>close</button>
|
||||
</form>
|
||||
</dialog>
|
||||
<!-- /modal validasi -->
|
||||
|
||||
<!-- Modal Tambah/Edit Data -->
|
||||
<dialog id="modal_tambah" class="modal modal-bottom sm:modal-middle">
|
||||
<div class="modal-box w-full max-w-2xl p-6 bg-white rounded-2xl">
|
||||
<h3 id="modal_title" class="text-gray-900 text-xl font-semibold font-['Plus Jakarta Sans'] leading-8 mb-8">
|
||||
Tambah Reduksi Sampah</h3>
|
||||
<form id="formTambah" onsubmit="submitForm(event)">
|
||||
<input type="hidden" id="edit_mode" value="false">
|
||||
<input type="hidden" id="reduksi_sampah_id" value="">
|
||||
<div class="flex flex-col gap-6">
|
||||
<div class="flex flex-col">
|
||||
<fieldset class="fieldset">
|
||||
<legend class="fieldset-legend">
|
||||
Jenis Lokasi
|
||||
<span class="text-red-500">*</span>
|
||||
</legend>
|
||||
<select id="jenis_lokasi" class="select w-full" required>
|
||||
<option value="Komposting">Komposting</option>
|
||||
<option value="Maggot">Maggot</option>
|
||||
</select>
|
||||
</fieldset>
|
||||
</div>
|
||||
<div id="formDetail" class="flex flex-col gap-6">
|
||||
<div class="flex flex-col">
|
||||
<fieldset class="fieldset">
|
||||
<legend class="fieldset-legend">
|
||||
Lokasi<span class="text-red-500">*</span>
|
||||
</legend>
|
||||
<select id="lokasi" class="select w-full" required>
|
||||
<option value="" disabled selected>Pilih salah satu</option>
|
||||
</select>
|
||||
</fieldset>
|
||||
</div>
|
||||
|
||||
<div class="flex flex-col">
|
||||
<fieldset class="fieldset">
|
||||
<legend class="fieldset-legend">
|
||||
Alamat
|
||||
</legend>
|
||||
<textarea id="alamat" rows="4" readonly class="textarea w-full"></textarea>
|
||||
</fieldset>
|
||||
</div>
|
||||
|
||||
<div class="flex flex-col">
|
||||
<fieldset class="fieldset">
|
||||
<legend class="fieldset-legend">
|
||||
Bukti Kegiatan
|
||||
<span class="text-red-500">*</span>
|
||||
</legend>
|
||||
<input type="file" class="file-input file w-full" />
|
||||
<label class="label">Ukuran Maksimal 5MB</label>
|
||||
</fieldset>
|
||||
</div>
|
||||
|
||||
<div class="flex flex-col">
|
||||
<fieldset class="fieldset">
|
||||
<legend class="fieldset-legend">
|
||||
Keterangan Kegiatan<span class="text-red-500">*</span>
|
||||
</legend>
|
||||
<textarea id="keterangan_kegiatan" rows="4" required placeholder="Keterangan Kegiatan"
|
||||
class="textarea w-full"></textarea>
|
||||
</fieldset>
|
||||
</div>
|
||||
|
||||
<div class="flex flex-col">
|
||||
<fieldset class="fieldset">
|
||||
<legend class="fieldset-legend">
|
||||
Tanggal Pelaksanaan Kegiatan
|
||||
<span class="text-red-500">*</span>
|
||||
</legend>
|
||||
<input type="date" id="tgl_pelaksanaan_kegiatan" class="input w-full" required />
|
||||
</fieldset>
|
||||
</div>
|
||||
|
||||
<div class="flex flex-col">
|
||||
<fieldset class="fieldset">
|
||||
<legend class="fieldset-legend">
|
||||
Pelaksana Kegiatan<span class="text-red-500">*</span>
|
||||
</legend>
|
||||
<input type="text" id="preview" class="input w-full" placeholder="Pelaksana Kegiatan"
|
||||
required />
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="flex flex-col sm:flex-row gap-3 justify-end">
|
||||
<button type="button" class="btn btn-outline rounded-full w-full sm:w-auto" onclick="closeModal()">
|
||||
Batal
|
||||
</button>
|
||||
<button type="submit"
|
||||
class="btn bg-bank-sampah-primary-500 rounded-full text-white w-full sm:w-auto">
|
||||
Simpan
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<form method="dialog" class="modal-backdrop">
|
||||
<button>close</button>
|
||||
</form>
|
||||
</dialog>
|
||||
<!-- /modal tambah/edit -->
|
||||
|
||||
<div class="h-6"></div>
|
||||
|
||||
<div class="card bg-white shadow-sm">
|
||||
<div class="card-body p-2">
|
||||
<div class="w-full overflow-x-auto">
|
||||
<table class="table-zebra table w-full" id="example">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>No</th>
|
||||
<th>Periode</th>
|
||||
<th>Nama Lokasi</th>
|
||||
<th>Alamat</th>
|
||||
<th>Jenis Lokasi</th>
|
||||
<th>Berat Reduksi (Kg)</th>
|
||||
<th>Berat Sampah (Kg)</th>
|
||||
<th>Bukti Kegiatan</th>
|
||||
<th>Aksi</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
@section Scripts {
|
||||
<script type="text/javascript">
|
||||
const jenisReduksi = '@jenis';
|
||||
const tableAjaxUrl = '@tableUrl';
|
||||
var table;
|
||||
var allLokasi = [];
|
||||
|
||||
$(document).ready(function () {
|
||||
$.ajax({
|
||||
url: '/ReduksiSampah/Lokasi/Table',
|
||||
method: 'GET',
|
||||
success: function (response) {
|
||||
allLokasi = (response.data || []).map(item => ({
|
||||
jenis_lokasi: item.jenis_lokasi,
|
||||
nama_lokasi: item.nama_lokasi,
|
||||
kecamatan: item.kecamatan,
|
||||
kelurahan: item.kelurahan,
|
||||
detail_alamat: item.detail_alamat,
|
||||
rt: item.rt,
|
||||
rw: item.rw
|
||||
}));
|
||||
|
||||
$('#jenis_lokasi').val(jenisReduksi).trigger('change');
|
||||
$('#jenis_lokasi').prop('disabled', true);
|
||||
},
|
||||
error: function () {
|
||||
console.error("Gagal mengambil data lokasi dari /ReduksiSampah/Lokasi/Table");
|
||||
}
|
||||
});
|
||||
|
||||
table = new DataTable('#example', {
|
||||
ajax: tableAjaxUrl,
|
||||
scrollX: true,
|
||||
autoWidth: false,
|
||||
initComplete: function () {
|
||||
$('div.dt-scroll-body thead').css('visibility', 'collapse');
|
||||
},
|
||||
columns: [
|
||||
{ data: null, render: (d, t, r, m) => m.row + 1, orderable: false, searchable: false },
|
||||
{ data: 'periode_bulan' },
|
||||
{ data: 'nama_lokasi' },
|
||||
{ data: 'alamat' },
|
||||
{ data: 'jenis_lokasi' },
|
||||
{ data: 'berat_reduksi' },
|
||||
{ data: 'berat_sampah' },
|
||||
{ data: 'gambar', orderable: false, searchable: false },
|
||||
{ data: 'aksi', orderable: false, searchable: false },
|
||||
]
|
||||
});
|
||||
|
||||
$('#example').on('click', '.btn-history', function (e) {
|
||||
e.preventDefault();
|
||||
modal_history.showModal();
|
||||
});
|
||||
|
||||
$('#example').on('click', '.btn-validation', function (e) {
|
||||
e.preventDefault();
|
||||
const row = table.row($(this).parents('tr')).data();
|
||||
if (row) {
|
||||
$('#val_periode').text(row.periode_bulan);
|
||||
$('#val_nama_lokasi').text(row.nama_lokasi);
|
||||
$('#val_jenis_lokasi').text(row.jenis_lokasi);
|
||||
}
|
||||
modal_validasi.showModal();
|
||||
});
|
||||
|
||||
$('#jenis_lokasi').on('change', function () {
|
||||
const jenisLokasi = $(this).val();
|
||||
|
||||
if (jenisLokasi) {
|
||||
$('#formDetail').removeClass('hidden').hide().fadeIn(300);
|
||||
populateNamaLokasiDropdown(jenisLokasi);
|
||||
} else {
|
||||
$('#formDetail').fadeOut(300);
|
||||
}
|
||||
});
|
||||
|
||||
$('#lokasi').on('change', function () {
|
||||
const nama = $(this).val();
|
||||
|
||||
if (!nama) {
|
||||
$('#alamat').val('');
|
||||
return;
|
||||
}
|
||||
|
||||
const lokasi = allLokasi.find(item => item.nama_lokasi === nama);
|
||||
|
||||
if (lokasi) {
|
||||
const formattedAlamat = `${lokasi.kecamatan}, ${lokasi.kelurahan}, RT ${lokasi.rt}, RW ${lokasi.rw}, ${lokasi.detail_alamat}`;
|
||||
$('#alamat').val(formattedAlamat);
|
||||
}
|
||||
});
|
||||
|
||||
$('#example').on('click', '.btn-edit', function (e) {
|
||||
e.preventDefault();
|
||||
|
||||
var row = table.row($(this).parents('tr')).data();
|
||||
|
||||
$('#edit_mode').val('true');
|
||||
$('#reduksi_sampah_id').val(row.id);
|
||||
$('#modal_title').text('Edit Reduksi Sampah');
|
||||
modal_tambah.showModal();
|
||||
});
|
||||
|
||||
$('#example').on('click', '.btn-delete', function (e) {
|
||||
e.preventDefault();
|
||||
const row = table.row($(this).parents('tr')).data();
|
||||
Swal.fire({
|
||||
title: 'Hapus data?',
|
||||
text: `Data ${row?.nama_lokasi || ''} akan dihapus secara permanen.`,
|
||||
icon: 'warning',
|
||||
showCancelButton: true,
|
||||
confirmButtonColor: '#d33',
|
||||
cancelButtonColor: '#3085d6',
|
||||
confirmButtonText: 'Ya, hapus',
|
||||
cancelButtonText: 'Batal'
|
||||
}).then((result) => {
|
||||
if (result.isConfirmed) {
|
||||
Swal.fire('Terhapus', 'Data berhasil dihapus (simulasi).', 'success');
|
||||
table.ajax.reload();
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
function populateNamaLokasiDropdown(jenisLokasi) {
|
||||
let options = '<option value=\"\">Pilih salah satu</option>';
|
||||
|
||||
if (jenisLokasi) {
|
||||
const filtered = allLokasi.filter(item => item.jenis_lokasi === jenisLokasi);
|
||||
|
||||
filtered.forEach(item => {
|
||||
options += `<option value="${item.nama_lokasi}">${item.nama_lokasi}</option>`;
|
||||
});
|
||||
}
|
||||
|
||||
$('#lokasi').html(options);
|
||||
}
|
||||
|
||||
function closeModal() {
|
||||
$('#formTambah')[0].reset();
|
||||
$('#edit_mode').val('false');
|
||||
$('#modal_title').text('Tambah Reduksi Sampah');
|
||||
$('#jenis_lokasi').val(jenisReduksi);
|
||||
modal_tambah.close();
|
||||
}
|
||||
|
||||
function closeValidasiModal() {
|
||||
modal_validasi.close();
|
||||
}
|
||||
|
||||
function confirmValidasi() {
|
||||
closeValidasiModal();
|
||||
table.ajax.reload();
|
||||
}
|
||||
|
||||
function confirmTolakValidasi() {
|
||||
closeValidasiModal();
|
||||
table.ajax.reload();
|
||||
}
|
||||
</script>
|
||||
}
|
||||
|
|
@ -1,33 +1,34 @@
|
|||
@{
|
||||
ViewData["Title"] = "Lokasi Maggot, Bank Sampah, Composting";
|
||||
ViewData["Title"] = "Reduksi Sampah - Lokasi";
|
||||
}
|
||||
|
||||
<style>
|
||||
.select2-container .select2-selection--single {
|
||||
height: 3rem;
|
||||
padding: 0.5rem 1rem;
|
||||
border-radius: 0.5rem;
|
||||
border: 1px solid #d4d4d8;
|
||||
}
|
||||
<style>
|
||||
.select2-container .select2-selection--single {
|
||||
height: 3rem;
|
||||
padding: 0.5rem 1rem;
|
||||
border-radius: 0.5rem;
|
||||
border: 1px solid #d4d4d8;
|
||||
}
|
||||
|
||||
.select2-selection__rendered {
|
||||
line-height: 2rem !important;
|
||||
}
|
||||
.select2-selection__rendered {
|
||||
line-height: 2rem !important;
|
||||
}
|
||||
|
||||
.select2-selection__arrow {
|
||||
height: 2rem !important;
|
||||
}
|
||||
</style>
|
||||
.select2-selection__arrow {
|
||||
height: 2rem !important;
|
||||
}
|
||||
</style>
|
||||
|
||||
<div class="flex flex-col gap-2 md:flex-row md:justify-between md:gap-0">
|
||||
<div class="prose">
|
||||
<span class="text-xl font-semibold text-black">
|
||||
Lokasi Maggot, Bank Sampah, Composting
|
||||
Reduksi Sampah - Lokasi
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<div class="flex flex-col gap-2 md:flex-row">
|
||||
<button class="btn btn-sm bg-green-800 max-w-full rounded-full text-white hover:bg-green-900" onclick="openModal()">
|
||||
<button class="btn btn-sm bg-green-800 max-w-full rounded-full text-white hover:bg-green-900"
|
||||
onclick="openModal()">
|
||||
<i class="ph ph-plus"></i>
|
||||
Tambah Lokasi
|
||||
</button>
|
||||
|
|
@ -37,7 +38,8 @@
|
|||
<!-- Modal Tambah/Edit Data -->
|
||||
<dialog id="modal_tambah" class="modal modal-bottom sm:modal-middle">
|
||||
<div class="modal-box w-full max-w-2xl p-6 bg-white rounded-2xl">
|
||||
<h3 id="modal_title" class="text-gray-900 text-xl font-semibold font-['Plus_Jakarta_Sans'] leading-8 mb-8">Tambah Lokasi</h3>
|
||||
<h3 id="modal_title" class="text-gray-900 text-xl font-semibold font-['Plus_Jakarta_Sans'] leading-8 mb-8">
|
||||
Tambah Lokasi</h3>
|
||||
<form id="formTambah" onsubmit="submitForm(event)">
|
||||
<input type="hidden" id="edit_mode" value="false">
|
||||
<div class="flex flex-col gap-6">
|
||||
|
|
@ -159,17 +161,21 @@
|
|||
<legend class="fieldset-legend">
|
||||
Detail Alamat<span class="text-red-500">*</span>
|
||||
</legend>
|
||||
<textarea id="detail_alamat" rows="4" required placeholder="Detail Alamat" class="textarea textarea-bordered w-full"></textarea>
|
||||
<textarea id="detail_alamat" rows="4" required placeholder="Detail Alamat"
|
||||
class="textarea textarea-bordered w-full"></textarea>
|
||||
</fieldset>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<!-- Buttons -->
|
||||
<div class="flex flex-col sm:flex-row gap-3 justify-end">
|
||||
<button type="button" class="px-8 py-2.5 bg-white rounded-full outline outline-1 -outline-offset-1 outline-gray-300 text-slate-800 text-base font-semibold font-['Plus_Jakarta_Sans'] leading-6 hover:bg-gray-50 w-full sm:w-auto" onclick="closeModal()">
|
||||
<button type="button"
|
||||
class="px-8 py-2.5 bg-white rounded-full outline-1 -outline-offset-1 outline-gray-300 text-slate-800 text-base font-semibold font-['Plus_Jakarta_Sans'] leading-6 hover:bg-gray-50 w-full sm:w-auto"
|
||||
onclick="closeModal()">
|
||||
Batal
|
||||
</button>
|
||||
<button type="submit" class="px-8 py-2.5 bg-green-800 rounded-full text-white text-base font-semibold font-['Plus_Jakarta_Sans'] leading-6 hover:bg-green-900 w-full sm:w-auto">
|
||||
<button type="submit"
|
||||
class="px-8 py-2.5 bg-green-800 rounded-full text-white text-base font-semibold font-['Plus_Jakarta_Sans'] leading-6 hover:bg-green-900 w-full sm:w-auto">
|
||||
Simpan
|
||||
</button>
|
||||
</div>
|
||||
|
|
@ -212,15 +218,15 @@
|
|||
@section Scripts {
|
||||
<script type="text/javascript">
|
||||
$('.select2').select2({
|
||||
dropdownParent: $('#modal_tambah'), // Penting untuk modal
|
||||
width: '100%'
|
||||
}
|
||||
dropdownParent: $('#modal_tambah'), // Penting untuk modal
|
||||
width: '100%'
|
||||
}
|
||||
);
|
||||
var table;
|
||||
|
||||
$(document).ready(function () {
|
||||
table = new DataTable('#example', {
|
||||
ajax: '/Master/Lokasi/Table',
|
||||
ajax: '/ReduksiSampah/Lokasi/Table',
|
||||
scrollX: true,
|
||||
autoWidth: false,
|
||||
initComplete: function () {
|
||||
|
|
@ -307,8 +313,8 @@
|
|||
url: '/Master/JenisSampah/table', // Ganti sesuai endpoint kamu
|
||||
method: 'GET',
|
||||
dataType: 'json',
|
||||
success: function (response) {
|
||||
// Buat HTML option dengan map
|
||||
success: function (response) {
|
||||
// Buat HTML option dengan map
|
||||
let options = response.data
|
||||
.map(item => `<option value="${item.nama}">${item.nama}</option>`)
|
||||
.join("");
|
||||
|
|
@ -358,4 +364,4 @@
|
|||
});
|
||||
}
|
||||
</script>
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,422 @@
|
|||
@{
|
||||
var jenis = "Maggot";
|
||||
var tableUrl = Url.Content("~/ReduksiSampah/Maggot/Table");
|
||||
ViewData["Title"] = $"Reduksi Sampah - {jenis}";
|
||||
}
|
||||
|
||||
<div class="flex flex-col gap-2 md:flex-row md:justify-between md:gap-0 items-center">
|
||||
<div class="prose">
|
||||
<span class="text-xl font-semibold text-black">
|
||||
Reduksi Sampah - @jenis
|
||||
</span>
|
||||
</div>
|
||||
<div class="flex gap-2 items-center">
|
||||
<select class="select rounded-full">
|
||||
<option disabled selected>Pilih Tahun</option>
|
||||
<option>2025</option>
|
||||
<option>2024</option>
|
||||
<option>2023</option>
|
||||
<option>2022</option>
|
||||
<option>2021</option>
|
||||
<option>2020</option>
|
||||
</select>
|
||||
<button type="button" class="btn btn-sm bg-bank-sampah-primary-500 rounded-full text-white"
|
||||
onclick="modal_tambah.showModal()"><i class="ph ph-plus"></i>Tambah</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Modal History -->
|
||||
<dialog id="modal_history" class="modal">
|
||||
<div class="modal-box max-w-md">
|
||||
<form method="dialog">
|
||||
<button class="btn btn-sm btn-circle btn-ghost absolute right-2 top-2">✕</button>
|
||||
</form>
|
||||
<h3 class="text-lg font-bold">History Data</h3>
|
||||
<p class="py-4 text-base font-['Plus Jakarta Sans']">Terdapat 30 History perubahan data</p>
|
||||
<div class="px-3 pt-4 pb-8 bg-gray-50">
|
||||
<div class="flex flex-col gap-4 pl-4 border-l-2 border-gray-300">
|
||||
<div class="flex flex-col gap-1">
|
||||
<div class="text-gray-500 text-xs leading-4">Admin Subandri</div>
|
||||
<div class="text-primary-500 text-base">Current Version</div>
|
||||
</div>
|
||||
|
||||
<div class="flex flex-col gap-1">
|
||||
<div class="text-gray-500 text-xs leading-4">Admin Subandri</div>
|
||||
<div class="text-gray-600 text-base">12:26 pm</div>
|
||||
</div>
|
||||
|
||||
<div class="flex flex-col gap-1">
|
||||
<div class="text-gray-500 text-xs leading-4">Admin Subandri</div>
|
||||
<div class="text-gray-600 text-base">24 Nov 2025, 12:26 pm</div>
|
||||
</div>
|
||||
|
||||
<div class="flex flex-col gap-1">
|
||||
<div class="text-gray-500 text-xs leading-4">Admin Subandri</div>
|
||||
<div class="text-gray-600 text-base">23 Nov 2025, 12:26 pm</div>
|
||||
</div>
|
||||
|
||||
<div class="flex flex-col gap-1">
|
||||
<div class="text-gray-500 text-xs leading-4">Admin Subandri</div>
|
||||
<div class="text-gray-600 text-base">22 Nov 2025, 12:26 pm</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</dialog>
|
||||
<!-- End Modal History -->
|
||||
|
||||
<!-- Modal Validasi Data -->
|
||||
<dialog id="modal_validasi" class="modal modal-bottom sm:modal-middle">
|
||||
<div
|
||||
class="modal-box w-full max-w-[591px] p-6 bg-white rounded-2xl inline-flex flex-col justify-center items-end gap-6">
|
||||
<div class="self-stretch inline-flex justify-between items-center">
|
||||
<div class="flex-1 justify-start text-gray-900 text-xl font-semibold font-['Plus Jakarta Sans'] leading-8">
|
||||
Validasi Data</div>
|
||||
<button type="button" class="w-5 h-5 relative" onclick="closeValidasiModal()">
|
||||
<i class="ph ph-x text-gray-500 text-xl"></i>
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<div class="self-stretch flex flex-col justify-center items-center">
|
||||
<div class="self-stretch px-3 pt-3 pb-8 bg-gray-50 rounded-lg inline-flex justify-start items-start gap-4">
|
||||
<div class="flex-1 inline-flex flex-col justify-start items-start gap-1">
|
||||
<div
|
||||
class="self-stretch justify-start text-gray-500 text-xs font-normal font-['Plus Jakarta Sans'] leading-4">
|
||||
Periode</div>
|
||||
<div id="val_periode"
|
||||
class="self-stretch justify-start text-slate-600 text-base font-normal font-['Plus Jakarta Sans'] leading-6">
|
||||
29 Jul 2024</div>
|
||||
</div>
|
||||
<div class="flex-1 inline-flex flex-col justify-start items-start gap-1">
|
||||
<div
|
||||
class="self-stretch justify-start text-gray-500 text-xs font-normal font-['Plus Jakarta Sans'] leading-4">
|
||||
Nama Lokasi</div>
|
||||
<div id="val_nama_lokasi"
|
||||
class="self-stretch justify-start text-slate-600 text-base font-normal font-['Plus Jakarta Sans'] leading-6">
|
||||
Jakarta Selatan</div>
|
||||
</div>
|
||||
<div class="flex-1 inline-flex flex-col justify-start items-start gap-1">
|
||||
<div
|
||||
class="self-stretch justify-start text-gray-500 text-xs font-normal font-['Plus Jakarta Sans'] leading-4">
|
||||
Jenis Lokasi</div>
|
||||
<div id="val_jenis_lokasi"
|
||||
class="self-stretch justify-start text-slate-600 text-base font-normal font-['Plus Jakarta Sans'] leading-6">
|
||||
Maggot</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div
|
||||
class="self-stretch justify-start text-slate-800 text-base font-semibold font-['Plus Jakarta Sans'] leading-6">
|
||||
Anda yakin ingin melakukan validasi data ?</div>
|
||||
|
||||
<div class="self-stretch inline-flex justify-end items-center gap-3">
|
||||
<button type="button" class="btn btn-outline btn-sm rounded-full flex justify-center items-center gap-2"
|
||||
onclick="confirmTolakValidasi()">
|
||||
<div class="justify-start text-slate-800 text-sm font-semibold font-['Plus Jakarta Sans'] leading-5">
|
||||
Tolak Validasi</div>
|
||||
</button>
|
||||
<button type="button" class="btn btn-success btn-sm rounded-full flex justify-center items-center gap-2"
|
||||
onclick="confirmValidasi()">
|
||||
<div class="justify-start text-white text-sm font-semibold font-['Plus Jakarta Sans'] leading-5">Ya
|
||||
</div>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<form method="dialog" class="modal-backdrop">
|
||||
<button>close</button>
|
||||
</form>
|
||||
</dialog>
|
||||
<!-- /modal validasi -->
|
||||
|
||||
<!-- Modal Tambah/Edit Data -->
|
||||
<dialog id="modal_tambah" class="modal modal-bottom sm:modal-middle">
|
||||
<div class="modal-box w-full max-w-2xl p-6 bg-white rounded-2xl">
|
||||
<h3 id="modal_title" class="text-gray-900 text-xl font-semibold font-['Plus Jakarta Sans'] leading-8 mb-8">
|
||||
Tambah Reduksi Sampah</h3>
|
||||
<form id="formTambah" onsubmit="submitForm(event)">
|
||||
<input type="hidden" id="edit_mode" value="false">
|
||||
<input type="hidden" id="reduksi_sampah_id" value="">
|
||||
<div class="flex flex-col gap-6">
|
||||
<div class="flex flex-col">
|
||||
<fieldset class="fieldset">
|
||||
<legend class="fieldset-legend">
|
||||
Jenis Lokasi
|
||||
<span class="text-red-500">*</span>
|
||||
</legend>
|
||||
<select id="jenis_lokasi" class="select w-full" required>
|
||||
<option value="Komposting">Komposting</option>
|
||||
<option value="Maggot">Maggot</option>
|
||||
</select>
|
||||
</fieldset>
|
||||
</div>
|
||||
<div id="formDetail" class="flex flex-col gap-6">
|
||||
<div class="flex flex-col">
|
||||
<fieldset class="fieldset">
|
||||
<legend class="fieldset-legend">
|
||||
Lokasi<span class="text-red-500">*</span>
|
||||
</legend>
|
||||
<select id="lokasi" class="select w-full" required>
|
||||
<option value="" disabled selected>Pilih salah satu</option>
|
||||
</select>
|
||||
</fieldset>
|
||||
</div>
|
||||
|
||||
<div class="flex flex-col">
|
||||
<fieldset class="fieldset">
|
||||
<legend class="fieldset-legend">
|
||||
Alamat
|
||||
</legend>
|
||||
<textarea id="alamat" rows="4" readonly class="textarea w-full"></textarea>
|
||||
</fieldset>
|
||||
</div>
|
||||
|
||||
<div class="flex flex-col">
|
||||
<fieldset class="fieldset">
|
||||
<legend class="fieldset-legend">
|
||||
Bukti Kegiatan
|
||||
<span class="text-red-500">*</span>
|
||||
</legend>
|
||||
<input type="file" class="file-input file w-full" />
|
||||
<label class="label">Ukuran Maksimal 5MB</label>
|
||||
</fieldset>
|
||||
</div>
|
||||
|
||||
<div class="flex flex-col">
|
||||
<fieldset class="fieldset">
|
||||
<legend class="fieldset-legend">
|
||||
Keterangan Kegiatan<span class="text-red-500">*</span>
|
||||
</legend>
|
||||
<textarea id="keterangan_kegiatan" rows="4" required placeholder="Keterangan Kegiatan"
|
||||
class="textarea w-full"></textarea>
|
||||
</fieldset>
|
||||
</div>
|
||||
|
||||
<div class="flex flex-col">
|
||||
<fieldset class="fieldset">
|
||||
<legend class="fieldset-legend">
|
||||
Tanggal Pelaksanaan Kegiatan
|
||||
<span class="text-red-500">*</span>
|
||||
</legend>
|
||||
<input type="date" id="tgl_pelaksanaan_kegiatan" class="input w-full" required />
|
||||
</fieldset>
|
||||
</div>
|
||||
|
||||
<div class="flex flex-col">
|
||||
<fieldset class="fieldset">
|
||||
<legend class="fieldset-legend">
|
||||
Pelaksana Kegiatan<span class="text-red-500">*</span>
|
||||
</legend>
|
||||
<input type="text" id="preview" class="input w-full" placeholder="Pelaksana Kegiatan"
|
||||
required />
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="flex flex-col sm:flex-row gap-3 justify-end">
|
||||
<button type="button" class="btn btn-outline rounded-full w-full sm:w-auto" onclick="closeModal()">
|
||||
Batal
|
||||
</button>
|
||||
<button type="submit"
|
||||
class="btn bg-bank-sampah-primary-500 rounded-full text-white w-full sm:w-auto">
|
||||
Simpan
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<form method="dialog" class="modal-backdrop">
|
||||
<button>close</button>
|
||||
</form>
|
||||
</dialog>
|
||||
<!-- /modal tambah/edit -->
|
||||
|
||||
<div class="h-6"></div>
|
||||
|
||||
<div class="card bg-white shadow-sm">
|
||||
<div class="card-body p-2">
|
||||
<div class="w-full overflow-x-auto">
|
||||
<table class="table-zebra table w-full" id="example">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>No</th>
|
||||
<th>Periode</th>
|
||||
<th>Nama Lokasi</th>
|
||||
<th>Alamat</th>
|
||||
<th>Jenis Lokasi</th>
|
||||
<th>Berat Reduksi (Kg)</th>
|
||||
<th>Berat Sampah (Kg)</th>
|
||||
<th>Bukti Kegiatan</th>
|
||||
<th>Aksi</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
@section Scripts {
|
||||
<script type="text/javascript">
|
||||
const jenisReduksi = '@jenis';
|
||||
const tableAjaxUrl = '@tableUrl';
|
||||
var table;
|
||||
var allLokasi = [];
|
||||
|
||||
$(document).ready(function () {
|
||||
$.ajax({
|
||||
url: '/ReduksiSampah/Lokasi/Table',
|
||||
method: 'GET',
|
||||
success: function (response) {
|
||||
allLokasi = (response.data || []).map(item => ({
|
||||
jenis_lokasi: item.jenis_lokasi,
|
||||
nama_lokasi: item.nama_lokasi,
|
||||
kecamatan: item.kecamatan,
|
||||
kelurahan: item.kelurahan,
|
||||
detail_alamat: item.detail_alamat,
|
||||
rt: item.rt,
|
||||
rw: item.rw
|
||||
}));
|
||||
|
||||
$('#jenis_lokasi').val(jenisReduksi).trigger('change');
|
||||
$('#jenis_lokasi').prop('disabled', true);
|
||||
},
|
||||
error: function () {
|
||||
console.error("Gagal mengambil data lokasi dari /ReduksiSampah/Lokasi/Table");
|
||||
}
|
||||
});
|
||||
|
||||
table = new DataTable('#example', {
|
||||
ajax: tableAjaxUrl,
|
||||
scrollX: true,
|
||||
autoWidth: false,
|
||||
initComplete: function () {
|
||||
$('div.dt-scroll-body thead').css('visibility', 'collapse');
|
||||
},
|
||||
columns: [
|
||||
{ data: null, render: (d, t, r, m) => m.row + 1, orderable: false, searchable: false },
|
||||
{ data: 'periode_bulan' },
|
||||
{ data: 'nama_lokasi' },
|
||||
{ data: 'alamat' },
|
||||
{ data: 'jenis_lokasi' },
|
||||
{ data: 'berat_reduksi' },
|
||||
{ data: 'berat_sampah' },
|
||||
{ data: 'gambar', orderable: false, searchable: false },
|
||||
{ data: 'aksi', orderable: false, searchable: false },
|
||||
]
|
||||
});
|
||||
|
||||
$('#example').on('click', '.btn-history', function (e) {
|
||||
e.preventDefault();
|
||||
modal_history.showModal();
|
||||
});
|
||||
|
||||
$('#example').on('click', '.btn-validation', function (e) {
|
||||
e.preventDefault();
|
||||
const row = table.row($(this).parents('tr')).data();
|
||||
if (row) {
|
||||
$('#val_periode').text(row.periode_bulan);
|
||||
$('#val_nama_lokasi').text(row.nama_lokasi);
|
||||
$('#val_jenis_lokasi').text(row.jenis_lokasi);
|
||||
}
|
||||
modal_validasi.showModal();
|
||||
});
|
||||
|
||||
$('#jenis_lokasi').on('change', function () {
|
||||
const jenisLokasi = $(this).val();
|
||||
|
||||
if (jenisLokasi) {
|
||||
$('#formDetail').removeClass('hidden').hide().fadeIn(300);
|
||||
populateNamaLokasiDropdown(jenisLokasi);
|
||||
} else {
|
||||
$('#formDetail').fadeOut(300);
|
||||
}
|
||||
});
|
||||
|
||||
$('#lokasi').on('change', function () {
|
||||
const nama = $(this).val();
|
||||
|
||||
if (!nama) {
|
||||
$('#alamat').val('');
|
||||
return;
|
||||
}
|
||||
|
||||
const lokasi = allLokasi.find(item => item.nama_lokasi === nama);
|
||||
|
||||
if (lokasi) {
|
||||
const formattedAlamat = `${lokasi.kecamatan}, ${lokasi.kelurahan}, RT ${lokasi.rt}, RW ${lokasi.rw}, ${lokasi.detail_alamat}`;
|
||||
$('#alamat').val(formattedAlamat);
|
||||
}
|
||||
});
|
||||
|
||||
$('#example').on('click', '.btn-edit', function (e) {
|
||||
e.preventDefault();
|
||||
|
||||
var row = table.row($(this).parents('tr')).data();
|
||||
|
||||
$('#edit_mode').val('true');
|
||||
$('#reduksi_sampah_id').val(row.id);
|
||||
$('#modal_title').text('Edit Reduksi Sampah');
|
||||
modal_tambah.showModal();
|
||||
});
|
||||
|
||||
$('#example').on('click', '.btn-delete', function (e) {
|
||||
e.preventDefault();
|
||||
const row = table.row($(this).parents('tr')).data();
|
||||
Swal.fire({
|
||||
title: 'Hapus data?',
|
||||
text: `Data ${row?.nama_lokasi || ''} akan dihapus secara permanen.`,
|
||||
icon: 'warning',
|
||||
showCancelButton: true,
|
||||
confirmButtonColor: '#d33',
|
||||
cancelButtonColor: '#3085d6',
|
||||
confirmButtonText: 'Ya, hapus',
|
||||
cancelButtonText: 'Batal'
|
||||
}).then((result) => {
|
||||
if (result.isConfirmed) {
|
||||
Swal.fire('Terhapus', 'Data berhasil dihapus (simulasi).', 'success');
|
||||
table.ajax.reload();
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
function populateNamaLokasiDropdown(jenisLokasi) {
|
||||
let options = '<option value=\"\">Pilih salah satu</option>';
|
||||
|
||||
if (jenisLokasi) {
|
||||
const filtered = allLokasi.filter(item => item.jenis_lokasi === jenisLokasi);
|
||||
|
||||
filtered.forEach(item => {
|
||||
options += `<option value="${item.nama_lokasi}">${item.nama_lokasi}</option>`;
|
||||
});
|
||||
}
|
||||
|
||||
$('#lokasi').html(options);
|
||||
}
|
||||
|
||||
function closeModal() {
|
||||
$('#formTambah')[0].reset();
|
||||
$('#edit_mode').val('false');
|
||||
$('#modal_title').text('Tambah Reduksi Sampah');
|
||||
$('#jenis_lokasi').val(jenisReduksi);
|
||||
modal_tambah.close();
|
||||
}
|
||||
|
||||
function closeValidasiModal() {
|
||||
modal_validasi.close();
|
||||
}
|
||||
|
||||
function confirmValidasi() {
|
||||
closeValidasiModal();
|
||||
table.ajax.reload();
|
||||
}
|
||||
|
||||
function confirmTolakValidasi() {
|
||||
closeValidasiModal();
|
||||
table.ajax.reload();
|
||||
}
|
||||
</script>
|
||||
}
|
||||
|
|
@ -150,7 +150,7 @@
|
|||
|
||||
<!-- Master Data -->
|
||||
<li>
|
||||
<details @(module == "Master" && new[] { "Aktivitas", "Artikel", "Pendamping","BadanHukum", "Fasilitas", "JenisBankSampah", "JenisNasabah", "JenisPengolahan", "Kategori", "KategoriFasilitas", "Mitra", "StatusLahan", "JenisSampah", "KategoriSampah", "SubKategoriSampah", "Lokasi" }.Contains(controller) ? "open" : "")>
|
||||
<details @(module == "Master" && new[] { "Aktivitas", "Artikel", "Pendamping","BadanHukum", "Fasilitas", "JenisBankSampah", "JenisNasabah", "JenisPengolahan", "Kategori", "KategoriFasilitas", "Mitra", "StatusLahan", "JenisSampah", "KategoriSampah", "SubKategoriSampah" }.Contains(controller) ? "open" : "")>
|
||||
<summary>
|
||||
<i class="ph ph-database me-1 text-lg text-gray-400"></i>
|
||||
Master Data
|
||||
|
|
@ -171,7 +171,6 @@
|
|||
<li><a href="/Master/JenisSampah/Index" class="@(module == "Master" && controller == "JenisSampah" ? "menu-active" : "")">Jenis Sampah</a></li>
|
||||
<li><a href="/Master/KategoriSampah/Index" class="@(module == "Master" && controller == "KategoriSampah" ? "menu-active" : "")">Kategori Sampah</a></li>
|
||||
<li><a href="/Master/SubKategoriSampah/Index" class="@(module == "Master" && controller == "SubKategoriSampah" ? "menu-active" : "")">Sub Kategori Sampah</a></li>
|
||||
<li><a href="/Master/Lokasi/Index" class="@(module == "Master" && controller == "Lokasi" ? "menu-active" : "")">Lokasi</a></li>
|
||||
<li><a href="/Master/Broadcast/Index" class="@(module == "Master" && controller == "Broadcast" ? "menu-active" : "")">Broadcast Informasi</a></li>
|
||||
</ul>
|
||||
</details>
|
||||
|
|
@ -185,25 +184,20 @@
|
|||
</a>
|
||||
</li>
|
||||
|
||||
<!-- Reduksi -->
|
||||
<!-- Reduksi Sampah -->
|
||||
<li>
|
||||
<a asp-controller="ReduksiSampahDinas" class="@(controller == "ReduksiSampahDinas" ? "menu-active" : "")">
|
||||
<i class="ph ph-database me-1 text-lg text-gray-400"></i>
|
||||
Reduksi Sampah Dinas
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a asp-controller="ReduksiSampahSatpel" class="@(controller == "ReduksiSampahSatpel" ? "menu-active" : "")">
|
||||
<i class="ph ph-database me-1 text-lg text-gray-400"></i>
|
||||
Reduksi Sampah Satpel
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a asp-controller="ReduksiSampahSudin" class="@(controller == "ReduksiSampahSudin" ? "menu-active" : "")">
|
||||
<i class="ph ph-database me-1 text-lg text-gray-400"></i>
|
||||
Reduksi Sampah Sudin
|
||||
</a>
|
||||
</li>
|
||||
<details @(module == "ReduksiSampah" && new[] { "Maggot", "Komposting", "Lokasi" }.Contains(controller) ? "open" : "")>
|
||||
<summary>
|
||||
<i class="ph ph-database me-1 text-lg text-gray-400"></i>
|
||||
Reduksi Sampah
|
||||
</summary>
|
||||
<ul>
|
||||
<li><a href="/ReduksiSampah/Maggot/Index" class="@(module == "ReduksiSampah" && controller == "Maggot" ? "menu-active" : "")">Maggot</a></li>
|
||||
<li><a href="/ReduksiSampah/Komposting/Index" class="@(module == "ReduksiSampah" && controller == "Komposting" ? "menu-active" : "")">Komposting</a></li>
|
||||
<li><a href="/ReduksiSampah/Lokasi/Index" class="@(module == "ReduksiSampah" && controller == "Lokasi" ? "menu-active" : "")">Lokasi</a></li>
|
||||
</ul>
|
||||
</details>
|
||||
</li>
|
||||
<!-- <li>
|
||||
<details @(new[] { "Maggot", "Composting", "ReduksiSampah", "BankSampah" }.Contains(controller) ? "open" : "")>
|
||||
<summary>
|
||||
|
|
|
|||
Loading…
Reference in New Issue