style: add tab Alat Pengumpul Sampah

main-dlh
Yuri Dimas 2025-11-19 16:36:48 +07:00
parent ca1c2132ce
commit ba947dbfd8
No known key found for this signature in database
GPG Key ID: 9FD7E44BC294C68C
7 changed files with 866 additions and 2 deletions

View File

@ -1,9 +1,106 @@
using Microsoft.AspNetCore.Mvc;
using BpsRwApp.Models.ProfilRw;
using Microsoft.AspNetCore.Mvc;
using System.Collections.Generic;
using System.Linq;
namespace BpsRwApp.Controllers
{
public class ProfilRwController : AppControllerBase
{
private static readonly List<AlatPengumpulSampahViewModel> SampleAlatPengumpul = new()
{
new AlatPengumpulSampahViewModel
{
Id = 1,
Kelurahan = "Kelurahan Cililitan",
Rw = "005",
Rt = "003",
GerobakDorong = 1,
GerobakMotor = 2,
MobilPickup = 1,
Truk = 1,
Dustbin = 4,
Container = 1,
Landasan = 2,
JenisPetugas = "Petugas Harian Lepas",
NamaPetugas = "Taufik Hidayat",
Jadwal = new List<string> { "Senin", "Rabu", "Jumat" },
TpsTujuan = "TPS Jakarta Timur"
},
new AlatPengumpulSampahViewModel
{
Id = 2,
Kelurahan = "Kelurahan Rawamangun",
Rw = "004",
Rt = "002",
GerobakDorong = 2,
GerobakMotor = 3,
MobilPickup = 1,
Truk = 0,
Dustbin = 3,
Container = 1,
Landasan = 1,
JenisPetugas = "DLH",
NamaPetugas = "Bambang Wijaya",
Jadwal = new List<string> { "Selasa", "Kamis", "Sabtu" },
TpsTujuan = "TPS Cililitan"
},
new AlatPengumpulSampahViewModel
{
Id = 3,
Kelurahan = "Kelurahan Duren Sawit",
Rw = "003",
Rt = "005",
GerobakDorong = 1,
GerobakMotor = 1,
MobilPickup = 0,
Truk = 1,
Dustbin = 5,
Container = 2,
Landasan = 2,
JenisPetugas = "Swadaya Warga",
NamaPetugas = "Rini Setiawan",
Jadwal = new List<string> { "Senin", "Rabu", "Jumat" },
TpsTujuan = "TPS Duren Sawit"
},
new AlatPengumpulSampahViewModel
{
Id = 4,
Kelurahan = "Kelurahan Balekambang",
Rw = "002",
Rt = "001",
GerobakDorong = 2,
GerobakMotor = 1,
MobilPickup = 1,
Truk = 1,
Dustbin = 2,
Container = 1,
Landasan = 1,
JenisPetugas = "Kader Lingkungan",
NamaPetugas = "Eko Nugroho",
Jadwal = new List<string> { "Selasa", "Kamis" },
TpsTujuan = "TPS Kampung Melayu"
},
new AlatPengumpulSampahViewModel
{
Id = 5,
Kelurahan = "Kelurahan Pondok Bambu",
Rw = "001",
Rt = "007",
GerobakDorong = 3,
GerobakMotor = 2,
MobilPickup = 2,
Truk = 1,
Dustbin = 6,
Container = 2,
Landasan = 3,
JenisPetugas = "Petugas Harian Lepas",
NamaPetugas = "Ratna Sari",
Jadwal = new List<string> { "Rabu", "Jumat", "Minggu" },
TpsTujuan = "TPS Pondok Bambu"
}
};
public IActionResult Index()
{
return View();
@ -424,5 +521,103 @@ namespace BpsRwApp.Controllers
{
return View();
}
[HttpGet]
public IActionResult TableAlatPengumpulSampah()
{
string BuildActionButtons(int id)
{
var detailUrl = Url.Action("DetailAlatPengumpulSampah", "ProfilRw", new { id }) ?? "#";
var editUrl = Url.Action("EditAlatPengumpulSampah", "ProfilRw", new { id }) ?? "#";
return "<div class='flex gap-2 '>" +
$"<a href='{detailUrl}' class='btn btn-xs bg-white btn-detail rounded-full'>Detail</a>" +
$"<a href='{editUrl}' class='btn btn-xs bg-white btn-edit rounded-full'>Edit</a>" +
$"<button type='button' class='btn btn-xs btn-error btn-outline btn-delete rounded-full' data-id='{id}'>Delete</button>" +
"</div>";
}
string CreateAlatBadge(string label, int value)
{
return $"<div class='badge m-1 badge-primary rounded-full'>{label} = {value}</div>";
}
string BuildAlatPengumpulBadges(int gerobakDorong, int gerobakMotor, int mobilPickup, int truk, int dustbin, int container, int landasan)
{
return string.Concat(
CreateAlatBadge("Gerobak Dorong", gerobakDorong),
CreateAlatBadge("Gerobak Motor", gerobakMotor),
CreateAlatBadge("Mobil Pickup", mobilPickup),
CreateAlatBadge("Truk", truk),
CreateAlatBadge("Dustbin", dustbin),
CreateAlatBadge("Container", container),
CreateAlatBadge("Landasan", landasan)
);
}
string CreateJadwalBadge(string hari)
{
return $"<div class='badge badge-soft m-1 badge-primary rounded-full'>{hari}</div>";
}
string BuildJadwalBadges(IEnumerable<string> jadwal)
{
return string.Concat(jadwal.Select(CreateJadwalBadge));
}
var data = SampleAlatPengumpul.Select(item => new
{
id = item.Id,
wilayah = $"{item.Kelurahan} - RW {item.Rw} / RT {item.Rt}",
kelurahan = item.Kelurahan,
rw = item.Rw,
rt = item.Rt,
gerobakDorong = item.GerobakDorong,
gerobakMotor = item.GerobakMotor,
mobilPickup = item.MobilPickup,
truk = item.Truk,
dustbin = item.Dustbin,
container = item.Container,
landasan = item.Landasan,
jenisPetugas = item.JenisPetugas,
jadwalList = item.Jadwal,
alat_pengumpul = BuildAlatPengumpulBadges(item.GerobakDorong, item.GerobakMotor, item.MobilPickup, item.Truk, item.Dustbin, item.Container, item.Landasan),
petugas = item.NamaPetugas,
jadwal = BuildJadwalBadges(item.Jadwal),
tps_tujuan = item.TpsTujuan,
aksi = BuildActionButtons(item.Id)
}).ToList();
return Json(new { data });
}
[HttpGet]
public IActionResult DetailAlatPengumpulSampah(int id)
{
var data = SampleAlatPengumpul.FirstOrDefault(x => x.Id == id);
if (data == null)
{
return NotFound();
}
return View(data);
}
[HttpGet]
public IActionResult EditAlatPengumpulSampah(int id)
{
var data = SampleAlatPengumpul.FirstOrDefault(x => x.Id == id);
if (data == null)
{
return NotFound();
}
return View(data);
}
[HttpGet]
public IActionResult CreateAlatPengumpulSampah()
{
return View();
}
}
}

View File

@ -0,0 +1,25 @@
using System.Collections.Generic;
namespace BpsRwApp.Models.ProfilRw
{
public class AlatPengumpulSampahViewModel
{
public int Id { get; set; }
public string Kelurahan { get; set; } = string.Empty;
public string Rw { get; set; } = string.Empty;
public string Rt { get; set; } = string.Empty;
public int GerobakDorong { get; set; }
public int GerobakMotor { get; set; }
public int MobilPickup { get; set; }
public int Truk { get; set; }
public int Dustbin { get; set; }
public int Container { get; set; }
public int Landasan { get; set; }
public string JenisPetugas { get; set; } = string.Empty;
public string NamaPetugas { get; set; } = string.Empty;
public List<string> Jadwal { get; set; } = new();
public string TpsTujuan { get; set; } = string.Empty;
}
}

View File

@ -0,0 +1,200 @@
@{
ViewData["Title"] = "Tambah Alat Pengumpul Sampah";
}
<!-- Breadcrumb -->
<div class="breadcrumbs text-sm">
<ul>
<li class="text-gray-500"><a>Profil RW</a></li>
<li><a>Tambah Alat Pengumpul Sampah</a></li>
</ul>
</div>
<!-- Header -->
<div class="grid grid-cols-1 gap-4 lg:grid-cols-2">
<div class="prose">
<h3 class="mb-2">Tambah Alat Pengumpul Sampah</h3>
</div>
<div class="justify-self-end lg:self-center flex flex-wrap gap-3">
<a href="@Url.Action("Index", "ProfilRw")" class="btn rounded-full shadow-none">
<span class="icon icon-fill me-2">arrow_back</span>
Kembali
</a>
</div>
</div>
<div class="h-8"></div>
<div class="card bg-white card-border">
<form action="" method="post">
<div class="card-body">
<span class="font-medium text-xl">
Wilayah
</span>
<div class="grid grid-cols-1 md:grid-cols-3 md:gap-4 w-full">
<fieldset class="fieldset">
<legend class="fieldset-legend">Kelurahan</legend>
<select class="select w-full">
<option disabled selected>Pilih Kelurahan</option>
</select>
</fieldset>
<fieldset class="fieldset">
<legend class="fieldset-legend">RW</legend>
<select class="select w-full">
<option disabled selected>Pilih RW</option>
</select>
</fieldset>
<fieldset class="fieldset">
<legend class="fieldset-legend">RT</legend>
<select class="select w-full">
<option disabled selected>Pilih RT</option>
</select>
</fieldset>
</div>
<div class="divider"></div>
<span class="font-medium text-xl">
Data Alat Pengumpul Sampah
</span>
<div class="grid grid-cols-1 md:grid-cols-4 md:gap-4 w-full">
<fieldset class="fieldset">
<legend class="fieldset-legend">Gerobak Dorong</legend>
<input type="number" class="input w-full" min="0" placeholder="0" />
</fieldset>
<fieldset class="fieldset">
<legend class="fieldset-legend">Gerobak Motor</legend>
<input type="number" class="input w-full" min="0" placeholder="0" />
</fieldset>
<fieldset class="fieldset">
<legend class="fieldset-legend">Mobil Pickup</legend>
<input type="number" class="input w-full" min="0" placeholder="0" />
</fieldset>
<fieldset class="fieldset">
<legend class="fieldset-legend">Truk</legend>
<input type="number" class="input w-full" min="0" placeholder="0" />
</fieldset>
<fieldset class="fieldset">
<legend class="fieldset-legend">Dustbin</legend>
<input type="number" class="input w-full" min="0" placeholder="0" />
</fieldset>
<fieldset class="fieldset">
<legend class="fieldset-legend">Container</legend>
<input type="number" class="input w-full" min="0" placeholder="0" />
</fieldset>
<fieldset class="fieldset">
<legend class="fieldset-legend">Landasan</legend>
<input type="number" class="input w-full" min="0" placeholder="0" />
</fieldset>
</div>
<div class="divider"></div>
<span class="font-medium text-xl">
Data petugas Pengumpul
</span>
<div class="grid grid-cols-1 md:grid-cols-2 md:gap-4 w-full">
<fieldset class="fieldset">
<legend class="fieldset-legend">Jenis Petugas</legend>
<select class="select w-full">
<option disabled selected>Pilih Jenis Petugas</option>
</select>
</fieldset>
<fieldset class="fieldset">
<legend class="fieldset-legend">Nama Petugas</legend>
<input type="text" class="input w-full" min="0" placeholder="0" />
</fieldset>
</div>
<div class="divider"></div>
<span class="font-medium text-xl">
Jadwal Pengumpulan
</span>
<div class="grid grid-cols-1 md:grid-cols-7 gap-4 w-full">
<fieldset class="fieldset bg-base-100 border-base-300 rounded-box border p-4">
<label class="label font-medium text-black text-md">
<input type="checkbox" class="checkbox checkbox-primary" />
Senin
</label>
</fieldset>
<fieldset class="fieldset bg-base-100 border-base-300 rounded-box border p-4">
<label class="label font-medium text-black text-md">
<input type="checkbox" class="checkbox checkbox-primary" />
Selasa
</label>
</fieldset>
<fieldset class="fieldset bg-base-100 border-base-300 rounded-box border p-4">
<label class="label font-medium text-black text-md">
<input type="checkbox" class="checkbox checkbox-primary" />
Rabu
</label>
</fieldset>
<fieldset class="fieldset bg-base-100 border-base-300 rounded-box border p-4">
<label class="label font-medium text-black text-md">
<input type="checkbox" class="checkbox checkbox-primary" />
Kamis
</label>
</fieldset>
<fieldset class="fieldset bg-base-100 border-base-300 rounded-box border p-4">
<label class="label font-medium text-black text-md">
<input type="checkbox" class="checkbox checkbox-primary" />
Jumat
</label>
</fieldset>
<fieldset class="fieldset bg-base-100 border-base-300 rounded-box border p-4">
<label class="label font-medium text-black text-md">
<input type="checkbox" class="checkbox checkbox-primary" />
Sabtu
</label>
</fieldset>
<fieldset class="fieldset bg-base-100 border-base-300 rounded-box border p-4">
<label class="label font-medium text-black text-md">
<input type="checkbox" class="checkbox checkbox-primary" />
Minggu
</label>
</fieldset>
</div>
<div class="divider"></div>
<span class="font-medium text-xl">
TPS Tujuan
</span>
<div class="grid grid-cols-1 w-full">
<fieldset class="fieldset">
<legend class="fieldset-legend">TPS</legend>
<select class="select w-full">
<option disabled selected>Pilih TPS</option>
</select>
</fieldset>
</div>
<div class="divider"></div>
<div class="card-actions justify-end mt-4">
<a href="@Url.Action("Index", "ProfilRw")" class="btn">
<span class="icon me-2">cancel</span>
Batal
</a>
<button type="submit" class="btn btn-primary">
<span class="icon me-2">save</span>
Simpan
</button>
</div>
</div>
</form>
</div>

View File

@ -0,0 +1,144 @@
@using System.Collections.Generic
@model BpsRwApp.Models.ProfilRw.AlatPengumpulSampahViewModel
@{
ViewData["Title"] = "Detail Alat Pengumpul Sampah";
var jadwalSet = new HashSet<string>(Model?.Jadwal ?? new List<string>());
var hariOptions = new[] { "Senin", "Selasa", "Rabu", "Kamis", "Jumat", "Sabtu", "Minggu" };
}
<!-- Breadcrumb -->
<div class="breadcrumbs text-sm">
<ul>
<li class="text-gray-500"><a>Profil RW</a></li>
<li><a>Detail Alat Pengumpul Sampah</a></li>
</ul>
</div>
<!-- Header -->
<div class="grid grid-cols-1 gap-4 lg:grid-cols-2">
<div class="prose">
<h3 class="mb-2">Detail Alat Pengumpul Sampah</h3>
<p class="text-sm text-gray-500">
Informasi lengkap untuk wilayah @Model?.Kelurahan (RW @Model?.Rw / RT @Model?.Rt).
</p>
</div>
<div class="flex flex-wrap items-center justify-end gap-3">
<a href="@Url.Action("Index", "ProfilRw")" class="btn rounded-full shadow-none">
<span class="icon icon-fill me-2">arrow_back</span>
Kembali
</a>
<a href="@Url.Action("EditAlatPengumpulSampah", "ProfilRw", new { id = Model?.Id })" class="btn btn-primary rounded-full text-white shadow-none">
<span class="icon icon-fill me-2">edit</span>
Edit Data
</a>
</div>
</div>
<div class="h-8"></div>
<div class="card bg-white card-border">
<div class="card-body space-y-6">
<div>
<span class="text-xl font-medium">Wilayah</span>
<div class="grid grid-cols-1 gap-4 md:grid-cols-3">
<fieldset class="fieldset">
<legend class="fieldset-legend">Kelurahan</legend>
<span class="text-lg font-semibold">@Model?.Kelurahan</span>
</fieldset>
<fieldset class="fieldset">
<legend class="fieldset-legend">RW</legend>
<span class="text-lg font-semibold">@Model?.Rw</span>
</fieldset>
<fieldset class="fieldset">
<legend class="fieldset-legend">RT</legend>
<span class="text-lg font-semibold">@Model?.Rt</span>
</fieldset>
</div>
</div>
<div class="divider"></div>
<div>
<span class="text-xl font-medium">Data Alat Pengumpul Sampah</span>
<div class="grid grid-cols-1 gap-4 md:grid-cols-4">
<fieldset class="fieldset">
<legend class="fieldset-legend">Gerobak Dorong</legend>
<span class="text-lg font-semibold">@Model?.GerobakDorong</span>
</fieldset>
<fieldset class="fieldset">
<legend class="fieldset-legend">Gerobak Motor</legend>
<span class="text-lg font-semibold">@Model?.GerobakMotor</span>
</fieldset>
<fieldset class="fieldset">
<legend class="fieldset-legend">Mobil Pickup</legend>
<span class="text-lg font-semibold">@Model?.MobilPickup</span>
</fieldset>
<fieldset class="fieldset">
<legend class="fieldset-legend">Truk</legend>
<span class="text-lg font-semibold">@Model?.Truk</span>
</fieldset>
<fieldset class="fieldset">
<legend class="fieldset-legend">Dustbin</legend>
<span class="text-lg font-semibold">@Model?.Dustbin</span>
</fieldset>
<fieldset class="fieldset">
<legend class="fieldset-legend">Container</legend>
<span class="text-lg font-semibold">@Model?.Container</span>
</fieldset>
<fieldset class="fieldset">
<legend class="fieldset-legend">Landasan</legend>
<span class="text-lg font-semibold">@Model?.Landasan</span>
</fieldset>
</div>
</div>
<div class="divider"></div>
<div>
<span class="text-xl font-medium">Data Petugas Pengumpul</span>
<div class="grid grid-cols-1 gap-4 md:grid-cols-2">
<fieldset class="fieldset">
<legend class="fieldset-legend">Jenis Petugas</legend>
<span class="text-lg font-semibold">@Model?.JenisPetugas</span>
</fieldset>
<fieldset class="fieldset">
<legend class="fieldset-legend">Nama Petugas</legend>
<span class="text-lg font-semibold">@Model?.NamaPetugas</span>
</fieldset>
</div>
</div>
<div class="divider"></div>
<div>
<span class="text-xl font-medium">Jadwal Pengumpulan</span>
<div class="grid grid-cols-1 gap-4 md:grid-cols-7">
@foreach (var day in hariOptions)
{
<fieldset class="fieldset bg-base-100 border-base-300 rounded-box border p-4">
<label class="label text-md font-medium text-black">
<input type="checkbox"
class="checkbox checkbox-primary"
disabled
checked="@(jadwalSet.Contains(day) ? "checked" : null)" />
@day
</label>
</fieldset>
}
</div>
</div>
<div class="divider "></div>
<div>
<span class="text-xl font-medium">TPS Tujuan</span>
<div class="grid grid-cols-1">
<fieldset class="fieldset">
<legend class="fieldset-legend">TPS</legend>
<span class="text-lg font-semibold">@Model?.TpsTujuan</span>
</fieldset>
</div>
</div>
</div>
</div>

View File

@ -0,0 +1,230 @@
@using System.Collections.Generic
@using System.Linq
@model BpsRwApp.Models.ProfilRw.AlatPengumpulSampahViewModel
@{
ViewData["Title"] = "Edit Alat Pengumpul Sampah";
var kelurahanOptions = new[]
{
"Kelurahan Cililitan",
"Kelurahan Rawamangun",
"Kelurahan Duren Sawit",
"Kelurahan Balekambang",
"Kelurahan Pondok Bambu"
};
var rwOptions = Enumerable.Range(1, 10).Select(i => i.ToString("D3")).ToList();
var rtOptions = rwOptions;
var jenisPetugasOptions = new[]
{
"Petugas Harian Lepas",
"DLH",
"Swadaya Warga",
"Kader Lingkungan"
};
var tpsOptions = new[]
{
"TPS Jakarta Timur",
"TPS Cililitan",
"TPS Duren Sawit",
"TPS Kampung Melayu",
"TPS Pondok Bambu"
};
var jadwalSet = new HashSet<string>(Model?.Jadwal ?? new List<string>());
var hariOptions = new[] { "Senin", "Selasa", "Rabu", "Kamis", "Jumat", "Sabtu", "Minggu" };
}
<!-- Breadcrumb -->
<div class="breadcrumbs text-sm">
<ul>
<li class="text-gray-500"><a>Profil RW</a></li>
<li><a>Edit Alat Pengumpul Sampah</a></li>
</ul>
</div>
<!-- Header -->
<div class="grid grid-cols-1 gap-4 lg:grid-cols-2">
<div class="prose">
<h3 class="mb-2">Edit Alat Pengumpul Sampah</h3>
<p class="text-sm text-gray-500">
Perbarui data alat pengumpul sampah untuk wilayah @Model?.Kelurahan (RW @Model?.Rw / RT @Model?.Rt).
</p>
</div>
<div class="flex flex-wrap items-center justify-end gap-3">
<a href="@Url.Action("Index", "ProfilRw")" class="btn rounded-full shadow-none">
<span class="icon icon-fill me-2">arrow_back</span>
Kembali
</a>
</div>
</div>
<div class="h-8"></div>
<div class="card bg-white card-border">
<form action="" method="post">
<input type="hidden" name="id" value="@Model?.Id" />
<div class="card-body">
<span class="font-medium text-xl">
Wilayah
</span>
<div class="grid grid-cols-1 md:grid-cols-3 md:gap-4 w-full">
<fieldset class="fieldset">
<legend class="fieldset-legend">Kelurahan</legend>
<select class="select w-full">
<option disabled value="">Pilih Kelurahan</option>
@foreach (var kelurahan in kelurahanOptions)
{
<option value="@kelurahan" selected="@(kelurahan == Model?.Kelurahan ? "selected" : null)">@kelurahan</option>
}
</select>
</fieldset>
<fieldset class="fieldset">
<legend class="fieldset-legend">RW</legend>
<select class="select w-full">
<option disabled value="">Pilih RW</option>
@foreach (var rw in rwOptions)
{
<option value="@rw" selected="@(rw == Model?.Rw ? "selected" : null)">@rw</option>
}
</select>
</fieldset>
<fieldset class="fieldset">
<legend class="fieldset-legend">RT</legend>
<select class="select w-full">
<option disabled value="">Pilih RT</option>
@foreach (var rt in rtOptions)
{
<option value="@rt" selected="@(rt == Model?.Rt ? "selected" : null)">@rt</option>
}
</select>
</fieldset>
</div>
<div class="divider"></div>
<span class="font-medium text-xl">
Data Alat Pengumpul Sampah
</span>
<div class="grid grid-cols-1 md:grid-cols-4 md:gap-4 w-full">
<fieldset class="fieldset">
<legend class="fieldset-legend">Gerobak Dorong</legend>
<input type="number" class="input w-full" min="0" value="@Model?.GerobakDorong" />
</fieldset>
<fieldset class="fieldset">
<legend class="fieldset-legend">Gerobak Motor</legend>
<input type="number" class="input w-full" min="0" value="@Model?.GerobakMotor" />
</fieldset>
<fieldset class="fieldset">
<legend class="fieldset-legend">Mobil Pickup</legend>
<input type="number" class="input w-full" min="0" value="@Model?.MobilPickup" />
</fieldset>
<fieldset class="fieldset">
<legend class="fieldset-legend">Truk</legend>
<input type="number" class="input w-full" min="0" value="@Model?.Truk" />
</fieldset>
<fieldset class="fieldset">
<legend class="fieldset-legend">Dustbin</legend>
<input type="number" class="input w-full" min="0" value="@Model?.Dustbin" />
</fieldset>
<fieldset class="fieldset">
<legend class="fieldset-legend">Container</legend>
<input type="number" class="input w-full" min="0" value="@Model?.Container" />
</fieldset>
<fieldset class="fieldset">
<legend class="fieldset-legend">Landasan</legend>
<input type="number" class="input w-full" min="0" value="@Model?.Landasan" />
</fieldset>
</div>
<div class="divider"></div>
<span class="font-medium text-xl">
Data petugas Pengumpul
</span>
<div class="grid grid-cols-1 md:grid-cols-2 md:gap-4 w-full">
<fieldset class="fieldset">
<legend class="fieldset-legend">Jenis Petugas</legend>
<select class="select w-full">
<option disabled value="">Pilih Jenis Petugas</option>
@foreach (var jenis in jenisPetugasOptions)
{
<option value="@jenis" selected="@(jenis == Model?.JenisPetugas ? "selected" : null)">@jenis</option>
}
</select>
</fieldset>
<fieldset class="fieldset">
<legend class="fieldset-legend">Nama Petugas</legend>
<input type="text" class="input w-full" placeholder="Nama Petugas" value="@Model?.NamaPetugas" />
</fieldset>
</div>
<div class="divider"></div>
<span class="font-medium text-xl">
Jadwal Pengumpulan
</span>
<div class="grid grid-cols-1 md:grid-cols-7 gap-4 w-full">
@foreach (var day in hariOptions)
{
<fieldset class="fieldset bg-base-100 border-base-300 rounded-box border p-4">
<label class="label font-medium text-black text-md">
<input type="checkbox"
class="checkbox checkbox-primary"
value="@day"
checked="@(jadwalSet.Contains(day) ? "checked" : null)" />
@day
</label>
</fieldset>
}
</div>
<div class="divider"></div>
<span class="font-medium text-xl">
TPS Tujuan
</span>
<div class="grid grid-cols-1 w-full">
<fieldset class="fieldset">
<legend class="fieldset-legend">TPS</legend>
<select class="select w-full">
<option disabled value="">Pilih TPS</option>
@foreach (var tps in tpsOptions)
{
<option value="@tps" selected="@(tps == Model?.TpsTujuan ? "selected" : null)">@tps</option>
}
</select>
</fieldset>
</div>
<div class="divider"></div>
<div class="card-actions justify-end mt-4">
<a href="@Url.Action("Index", "ProfilRw")" class="btn">
<span class="icon me-2">cancel</span>
Batal
</a>
<button type="submit" class="btn btn-primary">
<span class="icon me-2">save</span>
Simpan Perubahan
</button>
</div>
</div>
</form>
</div>

View File

@ -54,6 +54,12 @@
<div class="tab-content bg-base-100 border-base-300 p-0">
@await Html.PartialAsync("_TabIndexLokasi")
</div>
<input type="radio" name="tab_profil_rw" class="tab checked:text-white [--tab-bg:green]"
aria-label="Alat Pengumpul Sampah" />
<div class="tab-content bg-base-100 border-base-300 p-0">
@await Html.PartialAsync("_TabIndexAlatPengumpulSampah")
</div>
</div>
@ -204,6 +210,47 @@
});
});
// Datatable Alat Pengumpul Sampah
var tableSuratUsulan = new DataTable('#tableAlatPengumpulSampah', {
ajax: '@Url.Action("TableAlatPengumpulSampah", "ProfilRw")',
autoWidth: false,
columns: [
{ data: null, render: (d, t, r, m) => m.row + 1, orderable: false, searchable: false },
{ data: 'wilayah' },
{ data: 'alat_pengumpul', className: "text-wrap" },
{ data: 'petugas' },
{ data: 'jadwal', className: "text-wrap" },
{ data: 'tps_tujuan' },
{
data: 'aksi',
orderable: false,
searchable: false
},
]
});
tableSuratUsulan.on('click', '.btn-delete', function () {
const id = $(this).data('id');
Swal.fire({
title: 'Apakah Anda yakin?',
text: "Data yang dihapus tidak dapat dikembalikan!",
icon: 'warning',
showCancelButton: true,
confirmButtonColor: '#ef4444',
cancelButtonColor: '#6b7280',
confirmButtonText: 'Hapus',
cancelButtonText: 'Batal'
}).then((result) => {
Swal.fire(
'Terhapus!',
'Data berhasil dihapus.',
'success'
);
});
});
});
</script>
}
}

View File

@ -0,0 +1,23 @@
<div class="flex w-full flex-col items-end p-4">
<a href="@Url.Action("CreateAlatPengumpulSampah", "ProfilRw")" class="btn btn-primary w-32 rounded-full text-white">
<span class="icon icon-fill me-2">add</span>
Tambah
</a>
</div>
<div class="overflow-x-auto">
<table class="table-zebra table w-full text-sm" id="tableAlatPengumpulSampah">
<thead>
<tr>
<th class="w-[5%]">No</th>
<th class="w-[15%]">Wilayah</th>
<th class="w-[30%]">Alat Pengumpul</th>
<th class="w-[10%]">Petugas</th>
<th class="w-[15%]">Jadwal</th>
<th class="w-[10%]">TPS Tujuan</th>
<th class="w-[15%]">Aksi</th>
</tr>
</thead>
<tbody></tbody>
</table>
</div>