fix: add iteration 100 for multiple table
parent
803af98bbe
commit
6d63c5172b
|
|
@ -1,4 +1,5 @@
|
||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
using System.Linq;
|
||||||
|
|
||||||
namespace BpsRwApp.Controllers
|
namespace BpsRwApp.Controllers
|
||||||
{
|
{
|
||||||
|
|
@ -13,296 +14,138 @@ namespace BpsRwApp.Controllers
|
||||||
[HttpGet]
|
[HttpGet]
|
||||||
public IActionResult TableRapot()
|
public IActionResult TableRapot()
|
||||||
{
|
{
|
||||||
var data = new[]
|
var data = Enumerable.Range(0, 100)
|
||||||
|
.Select(index =>
|
||||||
{
|
{
|
||||||
new {
|
var nama = ControllerSampleData.PersonNames[index % ControllerSampleData.PersonNames.Length];
|
||||||
nama = "Risky Adi Putra",
|
var checklistCount = 8 + (index % 15);
|
||||||
checklist = "<div class=\"badge badge-success badge-soft rounded-xs px-12\">10</div>",
|
var totalBeratSampah = 40 + (index * 3 % 70);
|
||||||
berat_sampah = "<div class=\"badge badge-success badge-soft rounded-xs px-12\">10</div>",
|
var fotoCount = 5 + (index * 4 % 250);
|
||||||
foto = "<button class=\"btn btn-xs btn-square me-2\" disabled><span class=\"icon icon-outline text-sm text-black\">image</span></button>10",
|
var rumahAktif = (index * 3) % 15;
|
||||||
rumah_aktif_memilah = "<div class=\"badge badge-error badge-soft rounded-xs px-12\">0</div>",
|
|
||||||
status = "<div class=\"badge badge-info badge-soft rounded-full\">Sangat Baik</div>",
|
|
||||||
},
|
|
||||||
new {
|
|
||||||
nama = "Sulaiman",
|
|
||||||
checklist = "<div class=\"badge badge-success badge-soft rounded-xs px-12\">11</div>",
|
|
||||||
berat_sampah = "<div class=\"badge badge-warning badge-soft rounded-xs px-12\">10</div>",
|
|
||||||
foto = "<button class=\"btn btn-xs btn-square me-2\" disabled><span class=\"icon icon-outline text-sm text-black\">image</span></button>889",
|
|
||||||
rumah_aktif_memilah = "<div class=\"badge badge-success badge-soft rounded-xs px-12\">11</div>",
|
|
||||||
status = "<div class=\"badge badge-success badge-soft rounded-full\">Baik</div>",
|
|
||||||
},
|
|
||||||
new {
|
|
||||||
nama = "Siti Nurhaliza",
|
|
||||||
checklist = "<div class=\"badge badge-success badge-soft rounded-xs px-12\">12</div>",
|
|
||||||
berat_sampah = "<div class=\"badge badge-success badge-soft rounded-xs px-12\">10</div>",
|
|
||||||
foto = "<button class=\"btn btn-xs btn-square me-2\" disabled><span class=\"icon icon-outline text-sm text-black\">image</span></button>22",
|
|
||||||
rumah_aktif_memilah = "<div class=\"badge badge-error badge-soft rounded-xs px-12\">0</div>",
|
|
||||||
status = "<div class=\"badge badge-success badge-soft rounded-full\">Baik</div>",
|
|
||||||
},
|
|
||||||
new {
|
|
||||||
nama = "Budi Santoso",
|
|
||||||
checklist = "<div class=\"badge badge-success badge-soft rounded-xs px-12\">18</div>",
|
|
||||||
berat_sampah = "<div class=\"badge badge-warning badge-soft rounded-xs px-12\">1</div>",
|
|
||||||
foto = "<button class=\"btn btn-xs btn-square me-2\" disabled><span class=\"icon icon-outline text-sm text-black\">image</span></button>889",
|
|
||||||
rumah_aktif_memilah = "<div class=\"badge badge-success badge-soft rounded-xs px-12\">11</div>",
|
|
||||||
status = "<div class=\"badge badge-success badge-soft rounded-full\">Baik</div>",
|
|
||||||
},
|
|
||||||
new {
|
|
||||||
nama = "Dewi Lestari",
|
|
||||||
checklist = "<div class=\"badge badge-warning badge-soft rounded-xs px-12\">1</div>",
|
|
||||||
berat_sampah = "<div class=\"badge badge-success badge-soft rounded-xs px-12\">10</div>",
|
|
||||||
foto = "<button class=\"btn btn-xs btn-square me-2\" disabled><span class=\"icon icon-outline text-sm text-black\">image</span></button>22",
|
|
||||||
rumah_aktif_memilah = "<div class=\"badge badge-success badge-soft rounded-xs px-12\">10</div>",
|
|
||||||
status = "<div class=\"badge badge-success badge-soft rounded-full\">Baik</div>",
|
|
||||||
},
|
|
||||||
new {
|
|
||||||
nama = "Andi Prabowo",
|
|
||||||
checklist = "<div class=\"badge badge-success badge-soft rounded-xs px-12\">17</div>",
|
|
||||||
berat_sampah = "<div class=\"badge badge-success badge-soft rounded-xs px-12\">11</div>",
|
|
||||||
foto = "<button class=\"btn btn-xs btn-square me-2\" disabled><span class=\"icon icon-outline text-sm text-black\">image</span></button>889",
|
|
||||||
rumah_aktif_memilah = "<div class=\"badge badge-success badge-soft rounded-xs px-12\">11</div>",
|
|
||||||
status = "<div class=\"badge badge-info badge-soft rounded-full\">Sangat Baik</div>",
|
|
||||||
},
|
|
||||||
new {
|
|
||||||
nama = "Nina Sari",
|
|
||||||
checklist = "<div class=\"badge badge-success badge-soft rounded-xs px-12\">15</div>",
|
|
||||||
berat_sampah = "<div class=\"badge badge-success badge-soft rounded-xs px-12\">10</div>",
|
|
||||||
foto = "<button class=\"btn btn-xs btn-square me-2\" disabled><span class=\"icon icon-outline text-sm text-black\">image</span></button>22",
|
|
||||||
rumah_aktif_memilah = "<div class=\"badge badge-success badge-soft rounded-xs px-12\">10</div>",
|
|
||||||
status = "<div class=\"badge badge-info badge-soft rounded-full\">Sengat Baik</div>",
|
|
||||||
},
|
|
||||||
new {
|
|
||||||
nama = "Hendra Wijaya",
|
|
||||||
checklist = "<div class=\"badge badge-warning badge-soft rounded-xs px-12\">1</div>",
|
|
||||||
berat_sampah = "<div class=\"badge badge-success badge-soft rounded-xs px-12\">11</div>",
|
|
||||||
foto = "<button class=\"btn btn-xs btn-square me-2\" disabled><span class=\"icon icon-outline text-sm text-black\">image</span></button>889",
|
|
||||||
rumah_aktif_memilah = "<div class=\"badge badge-success badge-soft rounded-xs px-12\">11</div>",
|
|
||||||
status = "<div class=\"badge badge-info badge-soft rounded-full\">Sangat Baik</div>",
|
|
||||||
},
|
|
||||||
new {
|
|
||||||
nama = "Lina Marlina",
|
|
||||||
checklist = "<div class=\"badge badge-warning badge-soft rounded-xs px-12\">12</div>",
|
|
||||||
berat_sampah = "<div class=\"badge badge-success badge-soft rounded-xs px-12\">10</div>",
|
|
||||||
foto = "<button class=\"btn btn-xs btn-square me-2\" disabled><span class=\"icon icon-outline text-sm text-black\">image</span></button>22",
|
|
||||||
rumah_aktif_memilah = "<div class=\"badge badge-success badge-soft rounded-xs px-12\">10</div>",
|
|
||||||
status = "<div class=\"badge badge-info badge-soft rounded-full\">Sangat Baik</div>",
|
|
||||||
},
|
|
||||||
new {
|
|
||||||
nama = "Yudi Hartono",
|
|
||||||
checklist = "<div class=\"badge badge-warning badge-soft rounded-xs px-12\">16</div>",
|
|
||||||
berat_sampah = "<div class=\"badge badge-success badge-soft rounded-xs px-12\">11</div>",
|
|
||||||
foto = "<button class=\"btn btn-xs btn-square me-2\" disabled><span class=\"icon icon-outline text-sm text-black\">image</span></button>889",
|
|
||||||
rumah_aktif_memilah = "<div class=\"badge badge-success badge-soft rounded-xs px-12\">11</div>",
|
|
||||||
status = "<div class=\"badge badge-info badge-soft rounded-full\">Sangat Baik</div>",
|
|
||||||
},
|
|
||||||
};
|
|
||||||
|
|
||||||
var response = new
|
return new
|
||||||
{
|
{
|
||||||
data = data
|
nama,
|
||||||
|
checklist = BuildMetricBadge(checklistCount, 8, 12),
|
||||||
|
berat_sampah = BuildMetricBadge(totalBeratSampah, 50, 90),
|
||||||
|
foto = BuildFotoIndicator(fotoCount),
|
||||||
|
rumah_aktif_memilah = BuildMetricBadge(rumahAktif, 3, 9),
|
||||||
|
status = BuildStatusBadge(index),
|
||||||
};
|
};
|
||||||
|
})
|
||||||
|
.ToArray();
|
||||||
|
|
||||||
return Json(response);
|
return Json(new { data });
|
||||||
}
|
}
|
||||||
|
|
||||||
[HttpGet]
|
[HttpGet]
|
||||||
public IActionResult TableChecklist()
|
public IActionResult TableChecklist()
|
||||||
{
|
{
|
||||||
var data = new[]
|
var data = Enumerable.Range(0, 100)
|
||||||
|
.Select(index =>
|
||||||
{
|
{
|
||||||
new {
|
var nama = ControllerSampleData.PersonNames[index % ControllerSampleData.PersonNames.Length];
|
||||||
nama = "Risky Adi Putra",
|
var checklistCount = 9 + (index % 18);
|
||||||
checklist = "<div class=\"badge badge-success badge-soft rounded-xs px-12\">10</div>",
|
var fotoCount = 3 + (index * 2 % 180);
|
||||||
foto = "<button class=\"btn btn-xs btn-square me-2\" disabled><span class=\"icon icon-outline text-sm text-black\">image</span></button>10",
|
var targetRumah = 8 + (index % 10);
|
||||||
rumah_aktif_memilah = "<div class=\"badge badge-error badge-soft rounded-xs px-12\">0/12</div>",
|
var rumahAktif = targetRumah - (index % 5);
|
||||||
aksi = "<div class=\"flex gap-2\">" +
|
if (rumahAktif < 0)
|
||||||
"<a href=\"#\" class=\"btn bg-white rounded-full btn-xs\">Detail</a>" +
|
|
||||||
"</div>",
|
|
||||||
},
|
|
||||||
new {
|
|
||||||
nama = "Sulaiman",
|
|
||||||
checklist = "<div class=\"badge badge-success badge-soft rounded-xs px-12\">11</div>",
|
|
||||||
foto = "<button class=\"btn btn-xs btn-square me-2\" disabled><span class=\"icon icon-outline text-sm text-black\">image</span></button>889",
|
|
||||||
rumah_aktif_memilah = "<div class=\"badge badge-success badge-soft rounded-xs px-12\">11/11</div>",
|
|
||||||
aksi = "<div class=\"flex gap-2\">" +
|
|
||||||
"<a href=\"#\" class=\"btn bg-white rounded-full btn-xs\">Detail</a>" +
|
|
||||||
"</div>",
|
|
||||||
},
|
|
||||||
new {
|
|
||||||
nama = "Siti Nurhaliza",
|
|
||||||
checklist = "<div class=\"badge badge-success badge-soft rounded-xs px-12\">12</div>",
|
|
||||||
foto = "<button class=\"btn btn-xs btn-square me-2\" disabled><span class=\"icon icon-outline text-sm text-black\">image</span></button>22",
|
|
||||||
rumah_aktif_memilah = "<div class=\"badge badge-error badge-soft rounded-xs px-12\">0/10</div>",
|
|
||||||
aksi = "<div class=\"flex gap-2\">" +
|
|
||||||
"<a href=\"#\" class=\"btn bg-white rounded-full btn-xs\">Detail</a>" +
|
|
||||||
"</div>",
|
|
||||||
},
|
|
||||||
new {
|
|
||||||
nama = "Budi Santoso",
|
|
||||||
checklist = "<div class=\"badge badge-success badge-soft rounded-xs px-12\">18</div>",
|
|
||||||
foto = "<button class=\"btn btn-xs btn-square me-2\" disabled><span class=\"icon icon-outline text-sm text-black\">image</span></button>889",
|
|
||||||
rumah_aktif_memilah = "<div class=\"badge badge-success badge-soft rounded-xs px-12\">11/11</div>",
|
|
||||||
aksi = "<div class=\"flex gap-2\">" +
|
|
||||||
"<a href=\"#\" class=\"btn bg-white rounded-full btn-xs\">Detail</a>" +
|
|
||||||
"</div>",
|
|
||||||
},
|
|
||||||
new {
|
|
||||||
nama = "Dewi Lestari",
|
|
||||||
checklist = "<div class=\"badge badge-warning badge-soft rounded-xs px-12\">1</div>",
|
|
||||||
foto = "<button class=\"btn btn-xs btn-square me-2\" disabled><span class=\"icon icon-outline text-sm text-black\">image</span></button>22",
|
|
||||||
rumah_aktif_memilah = "<div class=\"badge badge-success badge-soft rounded-xs px-12\">10/10</div>",
|
|
||||||
aksi = "<div class=\"flex gap-2\">" +
|
|
||||||
"<a href=\"#\" class=\"btn bg-white rounded-full btn-xs\">Detail</a>" +
|
|
||||||
"</div>",
|
|
||||||
},
|
|
||||||
new {
|
|
||||||
nama = "Andi Prabowo",
|
|
||||||
checklist = "<div class=\"badge badge-success badge-soft rounded-xs px-12\">17</div>",
|
|
||||||
foto = "<button class=\"btn btn-xs btn-square me-2\" disabled><span class=\"icon icon-outline text-sm text-black\">image</span></button>889",
|
|
||||||
rumah_aktif_memilah = "<div class=\"badge badge-success badge-soft rounded-xs px-12\">11/11</div>",
|
|
||||||
aksi = "<div class=\"flex gap-2\">" +
|
|
||||||
"<a href=\"#\" class=\"btn bg-white rounded-full btn-xs\">Detail</a>" +
|
|
||||||
"</div>",
|
|
||||||
},
|
|
||||||
new {
|
|
||||||
nama = "Nina Sari",
|
|
||||||
checklist = "<div class=\"badge badge-success badge-soft rounded-xs px-12\">15</div>",
|
|
||||||
foto = "<button class=\"btn btn-xs btn-square me-2\" disabled><span class=\"icon icon-outline text-sm text-black\">image</span></button>22",
|
|
||||||
rumah_aktif_memilah = "<div class=\"badge badge-success badge-soft rounded-xs px-12\">10/10</div>",
|
|
||||||
aksi = "<div class=\"flex gap-2\">" +
|
|
||||||
"<a href=\"#\" class=\"btn bg-white rounded-full btn-xs\">Detail</a>" +
|
|
||||||
"</div>",
|
|
||||||
},
|
|
||||||
new {
|
|
||||||
nama = "Hendra Wijaya",
|
|
||||||
checklist = "<div class=\"badge badge-warning badge-soft rounded-xs px-12\">1</div>",
|
|
||||||
foto = "<button class=\"btn btn-xs btn-square me-2\" disabled><span class=\"icon icon-outline text-sm text-black\">image</span></button>889",
|
|
||||||
rumah_aktif_memilah = "<div class=\"badge badge-success badge-soft rounded-xs px-12\">11/11</div>",
|
|
||||||
aksi = "<div class=\"flex gap-2\">" +
|
|
||||||
"<a href=\"#\" class=\"btn bg-white rounded-full btn-xs\">Detail</a>" +
|
|
||||||
"</div>",
|
|
||||||
},
|
|
||||||
new {
|
|
||||||
nama = "Lina Marlina",
|
|
||||||
checklist = "<div class=\"badge badge-warning badge-soft rounded-xs px-12\">12</div>",
|
|
||||||
foto = "<button class=\"btn btn-xs btn-square me-2\" disabled><span class=\"icon icon-outline text-sm text-black\">image</span></button>22",
|
|
||||||
rumah_aktif_memilah = "<div class=\"badge badge-success badge-soft rounded-xs px-12\">10/10</div>",
|
|
||||||
aksi = "<div class=\"flex gap-2\">" +
|
|
||||||
"<a href=\"#\" class=\"btn bg-white rounded-full btn-xs\">Detail</a>" +
|
|
||||||
"</div>",
|
|
||||||
},
|
|
||||||
new {
|
|
||||||
nama = "Yudi Hartono",
|
|
||||||
checklist = "<div class=\"badge badge-warning badge-soft rounded-xs px-12\">16</div>",
|
|
||||||
foto = "<button class=\"btn btn-xs btn-square me-2\" disabled><span class=\"icon icon-outline text-sm text-black\">image</span></button>889",
|
|
||||||
rumah_aktif_memilah = "<div class=\"badge badge-success badge-soft rounded-xs px-12\">11/11</div>",
|
|
||||||
aksi = "<div class=\"flex gap-2\">" +
|
|
||||||
"<a href=\"#\" class=\"btn bg-white rounded-full btn-xs\">Detail</a>" +
|
|
||||||
"</div>",
|
|
||||||
},
|
|
||||||
};
|
|
||||||
|
|
||||||
var response = new
|
|
||||||
{
|
{
|
||||||
data = data
|
rumahAktif = 0;
|
||||||
};
|
}
|
||||||
|
|
||||||
return Json(response);
|
return new
|
||||||
|
{
|
||||||
|
nama,
|
||||||
|
checklist = BuildMetricBadge(checklistCount, 10, 15),
|
||||||
|
foto = BuildFotoIndicator(fotoCount),
|
||||||
|
rumah_aktif_memilah = BuildRatioBadge(rumahAktif, targetRumah),
|
||||||
|
aksi = BuildDetailAction(),
|
||||||
|
};
|
||||||
|
})
|
||||||
|
.ToArray();
|
||||||
|
|
||||||
|
return Json(new { data });
|
||||||
}
|
}
|
||||||
|
|
||||||
[HttpGet]
|
[HttpGet]
|
||||||
public IActionResult TableBeratSampah()
|
public IActionResult TableBeratSampah()
|
||||||
{
|
{
|
||||||
var data = new[]
|
var data = Enumerable.Range(0, 100)
|
||||||
|
.Select(index =>
|
||||||
{
|
{
|
||||||
new {
|
var nama = ControllerSampleData.PersonNames[index % ControllerSampleData.PersonNames.Length];
|
||||||
nama = "Risky Adi Putra",
|
var mudahTerurai = 40 + (index * 2 % 80);
|
||||||
total_berat = 104,
|
var materialDaurUlang = 25 + (index * 3 % 60);
|
||||||
mudah_terurai = 104,
|
var b3 = 5 + index % 7;
|
||||||
material_daur_ulang = 104,
|
var residu = 10 + index % 9;
|
||||||
b3 = 104,
|
var totalBerat = mudahTerurai + materialDaurUlang + b3 + residu;
|
||||||
residu = 104,
|
|
||||||
},
|
|
||||||
new {
|
|
||||||
nama = "Sulaiman",
|
|
||||||
total_berat = 67,
|
|
||||||
mudah_terurai = 67,
|
|
||||||
material_daur_ulang = 67,
|
|
||||||
b3 = 67,
|
|
||||||
residu = 67,
|
|
||||||
},
|
|
||||||
new {
|
|
||||||
nama = "Siti Nurhaliza",
|
|
||||||
total_berat = 110,
|
|
||||||
mudah_terurai = 110,
|
|
||||||
material_daur_ulang = 110,
|
|
||||||
b3 = 110,
|
|
||||||
residu = 110,
|
|
||||||
},
|
|
||||||
new {
|
|
||||||
nama = "Budi Santoso",
|
|
||||||
total_berat = 88,
|
|
||||||
mudah_terurai = 88,
|
|
||||||
material_daur_ulang = 88,
|
|
||||||
b3 = 88,
|
|
||||||
residu = 88,
|
|
||||||
},
|
|
||||||
new {
|
|
||||||
nama = "Dewi Lestari",
|
|
||||||
total_berat = 90,
|
|
||||||
mudah_terurai = 90,
|
|
||||||
material_daur_ulang = 90,
|
|
||||||
b3 = 90,
|
|
||||||
residu = 90,
|
|
||||||
},
|
|
||||||
new {
|
|
||||||
nama = "Andi Prabowo",
|
|
||||||
total_berat = 72,
|
|
||||||
mudah_terurai = 72,
|
|
||||||
material_daur_ulang = 72,
|
|
||||||
b3 = 72,
|
|
||||||
residu = 72,
|
|
||||||
},
|
|
||||||
new {
|
|
||||||
nama = "Nina Sari",
|
|
||||||
total_berat = 81,
|
|
||||||
mudah_terurai = 81,
|
|
||||||
material_daur_ulang = 81,
|
|
||||||
b3 = 81,
|
|
||||||
residu = 81,
|
|
||||||
},
|
|
||||||
new {
|
|
||||||
nama = "Hendra Wijaya",
|
|
||||||
total_berat = 65,
|
|
||||||
mudah_terurai = 65,
|
|
||||||
material_daur_ulang = 65,
|
|
||||||
b3 = 65,
|
|
||||||
residu = 65,
|
|
||||||
},
|
|
||||||
new {
|
|
||||||
nama = "Lina Marlina",
|
|
||||||
total_berat = 78,
|
|
||||||
mudah_terurai = 78,
|
|
||||||
material_daur_ulang = 78,
|
|
||||||
b3 = 78,
|
|
||||||
residu = 78,
|
|
||||||
},
|
|
||||||
new {
|
|
||||||
nama = "Yudi Hartono",
|
|
||||||
total_berat = 95,
|
|
||||||
mudah_terurai = 95,
|
|
||||||
material_daur_ulang = 95,
|
|
||||||
b3 = 95,
|
|
||||||
residu = 95,
|
|
||||||
},
|
|
||||||
};
|
|
||||||
|
|
||||||
var response = new
|
return new
|
||||||
{
|
{
|
||||||
data = data
|
nama,
|
||||||
|
total_berat = totalBerat,
|
||||||
|
mudah_terurai = mudahTerurai,
|
||||||
|
material_daur_ulang = materialDaurUlang,
|
||||||
|
b3,
|
||||||
|
residu,
|
||||||
};
|
};
|
||||||
|
})
|
||||||
|
.ToArray();
|
||||||
|
|
||||||
return Json(response);
|
return Json(new { data });
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static string BuildMetricBadge(int value, int warningThreshold, int successThreshold)
|
||||||
|
{
|
||||||
|
string tone;
|
||||||
|
if (value <= 0)
|
||||||
|
{
|
||||||
|
tone = "error";
|
||||||
|
}
|
||||||
|
else if (value < warningThreshold)
|
||||||
|
{
|
||||||
|
tone = "warning";
|
||||||
|
}
|
||||||
|
else if (value < successThreshold)
|
||||||
|
{
|
||||||
|
tone = "info";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
tone = "success";
|
||||||
|
}
|
||||||
|
|
||||||
|
return BuildBadge(value.ToString(), tone);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static string BuildRatioBadge(int achieved, int target)
|
||||||
|
{
|
||||||
|
var tone = achieved <= 0 ? "error" : achieved < target ? "warning" : "success";
|
||||||
|
return BuildBadge($"{achieved}/{target}", tone);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static string BuildBadge(string label, string tone) =>
|
||||||
|
$"<div class=\"badge badge-{tone} badge-soft rounded-xs px-12\">{label}</div>";
|
||||||
|
|
||||||
|
private static string BuildFotoIndicator(int totalFoto) =>
|
||||||
|
"<button class=\"btn btn-xs btn-square me-2\" disabled><span class=\"icon icon-outline text-sm text-black\">image</span></button>" + totalFoto;
|
||||||
|
|
||||||
|
private static string BuildStatusBadge(int index)
|
||||||
|
{
|
||||||
|
var status = (index % 3) switch
|
||||||
|
{
|
||||||
|
0 => ("Sangat Baik", "info"),
|
||||||
|
1 => ("Baik", "success"),
|
||||||
|
_ => ("Perlu Pendampingan", "warning")
|
||||||
|
};
|
||||||
|
|
||||||
|
return $"<div class=\"badge badge-{status.Item2} badge-soft rounded-full\">{status.Item1}</div>";
|
||||||
|
}
|
||||||
|
|
||||||
|
private static string BuildDetailAction() =>
|
||||||
|
"<div class=\"flex gap-2\">" +
|
||||||
|
"<a href=\"#\" class=\"btn bg-white rounded-full btn-xs\">Detail</a>" +
|
||||||
|
"</div>";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,106 +1,67 @@
|
||||||
using BpsRwApp.Models.ProfilRw;
|
using BpsRwApp.Models.ProfilRw;
|
||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
|
|
||||||
namespace BpsRwApp.Controllers
|
namespace BpsRwApp.Controllers
|
||||||
{
|
{
|
||||||
public class ProfilRwController : AppControllerBase
|
public class ProfilRwController : AppControllerBase
|
||||||
{
|
{
|
||||||
private static readonly List<AlatPengumpulSampahViewModel> SampleAlatPengumpul = new()
|
private static readonly string[][] JadwalCombinations =
|
||||||
{
|
{
|
||||||
new AlatPengumpulSampahViewModel
|
new[] { "Senin", "Rabu", "Jumat" },
|
||||||
{
|
new[] { "Selasa", "Kamis" },
|
||||||
Id = 1,
|
new[] { "Sabtu", "Minggu" },
|
||||||
Kelurahan = "Kelurahan Cililitan",
|
new[] { "Senin", "Selasa", "Kamis" },
|
||||||
Rw = "005",
|
new[] { "Rabu", "Jumat" }
|
||||||
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"
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
private static readonly string[] JenisPetugasOptions =
|
||||||
|
{
|
||||||
|
"Petugas Harian Lepas",
|
||||||
|
"DLH",
|
||||||
|
"Swadaya Warga",
|
||||||
|
"Kader Lingkungan",
|
||||||
|
"Relawan"
|
||||||
|
};
|
||||||
|
|
||||||
|
private static readonly string[] TpsOptions =
|
||||||
|
{
|
||||||
|
"TPS Jakarta Timur",
|
||||||
|
"TPS Cililitan",
|
||||||
|
"TPS Duren Sawit",
|
||||||
|
"TPS Kampung Melayu",
|
||||||
|
"TPS Pondok Bambu",
|
||||||
|
"TPS Pulogadung"
|
||||||
|
};
|
||||||
|
|
||||||
|
private static readonly List<AlatPengumpulSampahViewModel> SampleAlatPengumpul =
|
||||||
|
Enumerable.Range(1, 100)
|
||||||
|
.Select(index =>
|
||||||
|
{
|
||||||
|
var wilayah = ControllerSampleData.WilayahSeeds[index % ControllerSampleData.WilayahSeeds.Length];
|
||||||
|
var namaPetugas = ControllerSampleData.PersonNames[index % ControllerSampleData.PersonNames.Length];
|
||||||
|
var jadwal = JadwalCombinations[index % JadwalCombinations.Length];
|
||||||
|
|
||||||
|
return new AlatPengumpulSampahViewModel
|
||||||
|
{
|
||||||
|
Id = index,
|
||||||
|
Kelurahan = $"Kelurahan {wilayah.Kelurahan}",
|
||||||
|
Rw = ((index % 15) + 1).ToString("D3"),
|
||||||
|
Rt = ((index % 20) + 1).ToString("D3"),
|
||||||
|
GerobakDorong = 1 + (index % 4),
|
||||||
|
GerobakMotor = 1 + (index % 3),
|
||||||
|
MobilPickup = index % 2,
|
||||||
|
Truk = index % 3 == 0 ? 1 : 0,
|
||||||
|
Dustbin = 4 + (index % 5),
|
||||||
|
Container = 1 + (index % 2),
|
||||||
|
Landasan = 1 + (index % 3),
|
||||||
|
JenisPetugas = JenisPetugasOptions[index % JenisPetugasOptions.Length],
|
||||||
|
NamaPetugas = namaPetugas,
|
||||||
|
Jadwal = jadwal.ToList(),
|
||||||
|
TpsTujuan = TpsOptions[index % TpsOptions.Length]
|
||||||
|
};
|
||||||
|
})
|
||||||
|
.ToList();
|
||||||
|
|
||||||
public IActionResult Index()
|
public IActionResult Index()
|
||||||
{
|
{
|
||||||
return View();
|
return View();
|
||||||
|
|
@ -109,411 +70,141 @@ namespace BpsRwApp.Controllers
|
||||||
[HttpGet]
|
[HttpGet]
|
||||||
public IActionResult TableLokasi()
|
public IActionResult TableLokasi()
|
||||||
{
|
{
|
||||||
var data = new[]
|
var data = Enumerable.Range(0, 100)
|
||||||
|
.Select(index =>
|
||||||
{
|
{
|
||||||
new {
|
var wilayah = ControllerSampleData.WilayahSeeds[index % ControllerSampleData.WilayahSeeds.Length];
|
||||||
usulan = "Lokasi G",
|
var street = ControllerSampleData.StreetNames[index % ControllerSampleData.StreetNames.Length];
|
||||||
alamat = "Perumahan Mawar Indah",
|
var pemilik = ControllerSampleData.PersonNames[(index + 3) % ControllerSampleData.PersonNames.Length];
|
||||||
statusLahan = "Inventaris",
|
var luas = 300 + (index * 11 % 900);
|
||||||
pemilikLahan = "Larasati Wulandari",
|
var statusLahan = (index % 3) switch
|
||||||
luasLahan = 500,
|
{
|
||||||
statusUsulan = "Aktif"
|
0 => "Inventaris",
|
||||||
},
|
1 => "Sewa",
|
||||||
new {
|
_ => "Milik Warga"
|
||||||
usulan = "Lokasi I",
|
|
||||||
alamat = "Jl. Bougenville, RT 02",
|
|
||||||
statusLahan = "Inventaris",
|
|
||||||
pemilikLahan = "Arya Dwipangga",
|
|
||||||
luasLahan = 500,
|
|
||||||
statusUsulan = "Aktif"
|
|
||||||
},
|
|
||||||
new {
|
|
||||||
usulan = "Lokasi F",
|
|
||||||
alamat = "Lingk. Edelweiss, No. 7",
|
|
||||||
statusLahan = "Inventaris",
|
|
||||||
pemilikLahan = "Kirana Lazuardi",
|
|
||||||
luasLahan = 500,
|
|
||||||
statusUsulan = "Aktif"
|
|
||||||
},
|
|
||||||
new {
|
|
||||||
usulan = "Lokasi C",
|
|
||||||
alamat = "Jl. Anggrek No. 14",
|
|
||||||
statusLahan = "Inventaris",
|
|
||||||
pemilikLahan = "Bagas Priambodo",
|
|
||||||
luasLahan = 500,
|
|
||||||
statusUsulan = "Aktif"
|
|
||||||
},
|
|
||||||
new {
|
|
||||||
usulan = "Lokasi B",
|
|
||||||
alamat = "Jl. Tulip, Kel. Gardenia",
|
|
||||||
statusLahan = "Inventaris",
|
|
||||||
pemilikLahan = "Raisa Adiwangsa",
|
|
||||||
luasLahan = 500,
|
|
||||||
statusUsulan = "Aktif"
|
|
||||||
},
|
|
||||||
new {
|
|
||||||
usulan = "Lokasi E",
|
|
||||||
alamat = "Jl. Lavender, RT 09",
|
|
||||||
statusLahan = "Inventaris",
|
|
||||||
pemilikLahan = "Satria Gunawan",
|
|
||||||
luasLahan = 500,
|
|
||||||
statusUsulan = "Aktif"
|
|
||||||
},
|
|
||||||
new {
|
|
||||||
usulan = "Lokasi A",
|
|
||||||
alamat = "Komp. Melati, No. 22",
|
|
||||||
statusLahan = "Inventaris",
|
|
||||||
pemilikLahan = "Kartika Hastuti",
|
|
||||||
luasLahan = 500,
|
|
||||||
statusUsulan = "Aktif"
|
|
||||||
},
|
|
||||||
new {
|
|
||||||
usulan = "Lokasi D",
|
|
||||||
alamat = "Gg. Dahlia, RT 05",
|
|
||||||
statusLahan = "Inventaris",
|
|
||||||
pemilikLahan = "Bayu Anggoro",
|
|
||||||
luasLahan = 500,
|
|
||||||
statusUsulan = "Aktif"
|
|
||||||
},
|
|
||||||
new {
|
|
||||||
usulan = "Lokasi H",
|
|
||||||
alamat = "Ds. Cempaka, Kab. Anyer",
|
|
||||||
statusLahan = "Inventaris",
|
|
||||||
pemilikLahan = "Citra Kirani",
|
|
||||||
luasLahan = 500,
|
|
||||||
statusUsulan = "Aktif"
|
|
||||||
},
|
|
||||||
new {
|
|
||||||
usulan = "Lokasi J",
|
|
||||||
alamat = "Jl. Kenanga, Blok C",
|
|
||||||
statusLahan = "Inventaris",
|
|
||||||
pemilikLahan = "Galih Prasetya",
|
|
||||||
luasLahan = 500,
|
|
||||||
statusUsulan = "Aktif"
|
|
||||||
},
|
|
||||||
};
|
};
|
||||||
|
|
||||||
var response = new
|
return new
|
||||||
{
|
{
|
||||||
data = data
|
id = index + 1,
|
||||||
|
usulan = $"Lokasi {index + 1:000}",
|
||||||
|
alamat = ControllerSampleData.FormatAlamat(wilayah, street, 5 + index),
|
||||||
|
statusLahan,
|
||||||
|
pemilikLahan = pemilik,
|
||||||
|
luasLahan = $"{luas} m²",
|
||||||
|
statusUsulan = BuildLokasiStatusBadge(index),
|
||||||
|
aksi = BuildLokasiActionButtons(index + 1)
|
||||||
};
|
};
|
||||||
|
})
|
||||||
|
.ToArray();
|
||||||
|
|
||||||
return Json(response);
|
return Json(new { data });
|
||||||
}
|
}
|
||||||
|
|
||||||
[HttpGet]
|
[HttpGet]
|
||||||
public IActionResult TableSuratUsulan()
|
public IActionResult TableSuratUsulan()
|
||||||
{
|
{
|
||||||
var data = new[]
|
var namaSuratTemplates = new[]
|
||||||
{
|
{
|
||||||
new {
|
"Surat Permohonan Perbaikan Jalan Lingkungan",
|
||||||
nama_surat = "Surat Permohonan Perbaikan Jalan Lingkungan",
|
"Surat Rekomendasi Pengajuan Kredit UMKM",
|
||||||
tanggal_surat = ControllerSampleData.FormatTanggal(new DateTime(2023, 7, 11)),
|
"Surat Pernyataan Persetujuan Pembangunan Pos Kamling",
|
||||||
file_upload = "Surat Pengantar Proposal",
|
"Surat Keterangan Tidak Mampu untuk Berobat",
|
||||||
status = "<div class=\"badge badge-success badge-soft rounded-full\">Aktif</div>",
|
"Laporan Keuangan RW Triwulan",
|
||||||
aksi = "<div class=\"flex gap-2 \">" +
|
"Surat Keputusan Jadwal Ronda Malam",
|
||||||
"<a class=\"btn btn-xs bg-white rounded-full\">Detail</a>" +
|
"Surat Pemberitahuan Kerja Bakti Rutin",
|
||||||
"<a class=\"btn btn-xs bg-white rounded-full\">Edit</a>" +
|
"Surat Edaran Pembayaran Iuran Sampah",
|
||||||
"<a class=\"btn btn-xs btn-error btn-outline rounded-full\">Delete</a>" +
|
"Surat Pengantar Pembuatan KTP",
|
||||||
"</div>"
|
"Surat Undangan Pertemuan PKK"
|
||||||
},
|
|
||||||
new {
|
|
||||||
nama_surat = "Surat Rekomendasi untuk Pengajuan Kredit UMKM",
|
|
||||||
tanggal_surat = ControllerSampleData.FormatTanggal(new DateTime(2023, 1, 9)),
|
|
||||||
file_upload = "Surat Undangan Rapat Warga",
|
|
||||||
status = "<div class=\"badge badge-success badge-soft rounded-full\">Aktif</div>",
|
|
||||||
aksi = "<div class=\"flex gap-2 \">" +
|
|
||||||
"<a class=\"btn btn-xs bg-white rounded-full\">Detail</a>" +
|
|
||||||
"<a class=\"btn btn-xs bg-white rounded-full\">Edit</a>" +
|
|
||||||
"<a class=\"btn btn-xs btn-error btn-outline rounded-full\">Delete</a>" +
|
|
||||||
"</div>"
|
|
||||||
},
|
|
||||||
new {
|
|
||||||
nama_surat = "Surat Pernyataan Persetujuan Pembangunan Pos Kamling",
|
|
||||||
tanggal_surat = ControllerSampleData.FormatTanggal(new DateTime(2023, 4, 21)),
|
|
||||||
file_upload = "Surat Pemberitahuan Gotong Royong",
|
|
||||||
status = "<div class=\"badge badge-success badge-soft rounded-full\">Aktif</div>",
|
|
||||||
aksi = "<div class=\"flex gap-2 \">" +
|
|
||||||
"<a class=\"btn btn-xs bg-white rounded-full\">Detail</a>" +
|
|
||||||
"<a class=\"btn btn-xs bg-white rounded-full\">Edit</a>" +
|
|
||||||
"<a class=\"btn btn-xs btn-error btn-outline rounded-full\">Delete</a>" +
|
|
||||||
"</div>"
|
|
||||||
},
|
|
||||||
new {
|
|
||||||
nama_surat = "Surat Keterangan Tidak Mampu untuk Berobat",
|
|
||||||
tanggal_surat = ControllerSampleData.FormatTanggal(new DateTime(2023, 2, 17)),
|
|
||||||
file_upload = "Surat Keputusan Ketua RW",
|
|
||||||
status = "<div class=\"badge badge-success badge-soft rounded-full\">Aktif</div>",
|
|
||||||
aksi = "<div class=\"flex gap-2 \">" +
|
|
||||||
"<a class=\"btn btn-xs bg-white rounded-full\">Detail</a>" +
|
|
||||||
"<a class=\"btn btn-xs bg-white rounded-full\">Edit</a>" +
|
|
||||||
"<a class=\"btn btn-xs btn-error btn-outline rounded-full\">Delete</a>" +
|
|
||||||
"</div>"
|
|
||||||
},
|
|
||||||
new {
|
|
||||||
nama_surat = "Laporan Keuangan RW Triwulan II 2023",
|
|
||||||
tanggal_surat = ControllerSampleData.FormatTanggal(new DateTime(2023, 8, 18)),
|
|
||||||
file_upload = "Surat Edaran Kebersihan",
|
|
||||||
status = "<div class=\"badge badge-success badge-soft rounded-full\">Aktif</div>",
|
|
||||||
aksi = "<div class=\"flex gap-2 \">" +
|
|
||||||
"<a class=\"btn btn-xs bg-white rounded-full\">Detail</a>" +
|
|
||||||
"<a class=\"btn btn-xs bg-white rounded-full\">Edit</a>" +
|
|
||||||
"<a class=\"btn btn-xs btn-error btn-outline rounded-full\">Delete</a>" +
|
|
||||||
"</div>"
|
|
||||||
},
|
|
||||||
new {
|
|
||||||
nama_surat = "Surat Keputusan RW tentang Jadwal Ronda Malam",
|
|
||||||
tanggal_surat = ControllerSampleData.FormatTanggal(new DateTime(2023, 5, 14)),
|
|
||||||
file_upload = "Surat Rekomendasi Usaha",
|
|
||||||
status = "<div class=\"badge badge-success badge-soft rounded-full\">Aktif</div>",
|
|
||||||
aksi = "<div class=\"flex gap-2 \">" +
|
|
||||||
"<a class=\"btn btn-xs bg-white rounded-full\">Detail</a>" +
|
|
||||||
"<a class=\"btn btn-xs bg-white rounded-full\">Edit</a>" +
|
|
||||||
"<a class=\"btn btn-xs btn-error btn-outline rounded-full\">Delete</a>" +
|
|
||||||
"</div>"
|
|
||||||
},
|
|
||||||
new {
|
|
||||||
nama_surat = "Surat Pemberitahuan Kerja Bakti Rutin",
|
|
||||||
tanggal_surat = ControllerSampleData.FormatTanggal(new DateTime(2023, 6, 2)),
|
|
||||||
file_upload = "Laporan Kegiatan RW",
|
|
||||||
status = "<div class=\"badge badge-success badge-soft rounded-full\">Aktif</div>",
|
|
||||||
aksi = "<div class=\"flex gap-2 \">" +
|
|
||||||
"<a class=\"btn btn-xs bg-white rounded-full\">Detail</a>" +
|
|
||||||
"<a class=\"btn btn-xs bg-white rounded-full\">Edit</a>" +
|
|
||||||
"<a class=\"btn btn-xs btn-error btn-outline rounded-full\">Delete</a>" +
|
|
||||||
"</div>"
|
|
||||||
},
|
|
||||||
new {
|
|
||||||
nama_surat = "Surat Edaran tentang Pembayaran Iuran Sampah",
|
|
||||||
tanggal_surat = ControllerSampleData.FormatTanggal(new DateTime(2023, 6, 22)),
|
|
||||||
file_upload = "Surat Keterangan Domisili",
|
|
||||||
status = "<div class=\"badge badge-success badge-soft rounded-full\">Aktif</div>",
|
|
||||||
aksi = "<div class=\"flex gap-2 \">" +
|
|
||||||
"<a class=\"btn btn-xs bg-white rounded-full\">Detail</a>" +
|
|
||||||
"<a class=\"btn btn-xs bg-white rounded-full\">Edit</a>" +
|
|
||||||
"<a class=\"btn btn-xs btn-error btn-outline rounded-full\">Delete</a>" +
|
|
||||||
"</div>"
|
|
||||||
},
|
|
||||||
new {
|
|
||||||
nama_surat = "Surat Pengantar untuk Pembuatan KTP",
|
|
||||||
tanggal_surat = ControllerSampleData.FormatTanggal(new DateTime(2023, 3, 1)),
|
|
||||||
file_upload = "Surat Permohonan Bantuan Dana",
|
|
||||||
status = "<div class=\"badge badge-success badge-soft rounded-full\">Aktif</div>",
|
|
||||||
aksi = "<div class=\"flex gap-2 \">" +
|
|
||||||
"<a class=\"btn btn-xs bg-white rounded-full\">Detail</a>" +
|
|
||||||
"<a class=\"btn btn-xs bg-white rounded-full\">Edit</a>" +
|
|
||||||
"<a class=\"btn btn-xs btn-error btn-outline rounded-full\">Delete</a>" +
|
|
||||||
"</div>"
|
|
||||||
},
|
|
||||||
new {
|
|
||||||
nama_surat = "Surat Undangan Pertemuan Rutin PKK",
|
|
||||||
tanggal_surat = ControllerSampleData.FormatTanggal(new DateTime(2023, 4, 28)),
|
|
||||||
file_upload = "Surat Pernyataan Kesanggupan",
|
|
||||||
status = "<div class=\"badge badge-success badge-soft rounded-full\">Aktif</div>",
|
|
||||||
aksi = "<div class=\"flex gap-2 \">" +
|
|
||||||
"<a class=\"btn btn-xs bg-white rounded-full\">Detail</a>" +
|
|
||||||
"<a class=\"btn btn-xs bg-white rounded-full\">Edit</a>" +
|
|
||||||
"<a class=\"btn btn-xs btn-error btn-outline rounded-full\">Delete</a>" +
|
|
||||||
"</div>"
|
|
||||||
},
|
|
||||||
};
|
};
|
||||||
|
|
||||||
var response = new
|
var fileTemplates = new[]
|
||||||
{
|
{
|
||||||
data = data
|
"Surat Pengantar Proposal",
|
||||||
|
"Surat Undangan Rapat Warga",
|
||||||
|
"Surat Pemberitahuan Gotong Royong",
|
||||||
|
"Surat Keputusan Ketua RW",
|
||||||
|
"Surat Edaran Kebersihan",
|
||||||
|
"Surat Rekomendasi Usaha",
|
||||||
|
"Laporan Kegiatan RW",
|
||||||
|
"Surat Keterangan Domisili",
|
||||||
|
"Surat Permohonan Bantuan Dana",
|
||||||
|
"Surat Pernyataan Kesanggupan"
|
||||||
};
|
};
|
||||||
|
|
||||||
return Json(response);
|
var startDate = new DateTime(2023, 1, 1);
|
||||||
|
|
||||||
|
var data = Enumerable.Range(0, 100)
|
||||||
|
.Select(index =>
|
||||||
|
{
|
||||||
|
var namaSurat = namaSuratTemplates[index % namaSuratTemplates.Length];
|
||||||
|
var fileUpload = fileTemplates[(index + 3) % fileTemplates.Length];
|
||||||
|
var status = (index % 5) switch
|
||||||
|
{
|
||||||
|
0 => BuildStatusPill("Menunggu", "warning"),
|
||||||
|
1 => BuildStatusPill("Ditinjau", "info"),
|
||||||
|
_ => BuildStatusPill("Aktif", "success")
|
||||||
|
};
|
||||||
|
|
||||||
|
return new
|
||||||
|
{
|
||||||
|
id = index + 1,
|
||||||
|
nama_surat = namaSurat,
|
||||||
|
tanggal_surat = ControllerSampleData.FormatTanggal(startDate.AddDays(index * 2)),
|
||||||
|
file_upload = fileUpload,
|
||||||
|
status,
|
||||||
|
aksi = BuildCrudActionButtons(index + 1)
|
||||||
|
};
|
||||||
|
})
|
||||||
|
.ToArray();
|
||||||
|
|
||||||
|
return Json(new { data });
|
||||||
}
|
}
|
||||||
|
|
||||||
[HttpGet]
|
[HttpGet]
|
||||||
public IActionResult TablePengadaanWadah()
|
public IActionResult TablePengadaanWadah()
|
||||||
{
|
{
|
||||||
var data = new[]
|
var data = Enumerable.Range(0, 100)
|
||||||
|
.Select(index =>
|
||||||
{
|
{
|
||||||
new {
|
var jumlahKk = 40 + (index * 5 % 200);
|
||||||
rt = "001",
|
var totalWadah = 4 + (index % 12);
|
||||||
jumlah_kepala_keluarga = "11",
|
var status = index % 7 == 0
|
||||||
total_wadah_unit = "07",
|
? BuildStatusPill("Menunggu", "warning")
|
||||||
status = "<div class=\"badge badge-success badge-soft rounded-full\">Aktif</div>",
|
: BuildStatusPill("Aktif", "success");
|
||||||
},
|
|
||||||
new {
|
|
||||||
rt = "002",
|
|
||||||
jumlah_kepala_keluarga = "09",
|
|
||||||
total_wadah_unit = "01",
|
|
||||||
status = "<div class=\"badge badge-success badge-soft rounded-full\">Aktif</div>",
|
|
||||||
},
|
|
||||||
new {
|
|
||||||
rt = "003",
|
|
||||||
jumlah_kepala_keluarga = "21",
|
|
||||||
total_wadah_unit = "04",
|
|
||||||
status = "<div class=\"badge badge-success badge-soft rounded-full\">Aktif</div>",
|
|
||||||
},
|
|
||||||
new {
|
|
||||||
rt = "004",
|
|
||||||
jumlah_kepala_keluarga = "17",
|
|
||||||
total_wadah_unit = "02",
|
|
||||||
status = "<div class=\"badge badge-success badge-soft rounded-full\">Aktif</div>",
|
|
||||||
},
|
|
||||||
new {
|
|
||||||
rt = "005",
|
|
||||||
jumlah_kepala_keluarga = "18",
|
|
||||||
total_wadah_unit = "08",
|
|
||||||
status = "<div class=\"badge badge-success badge-soft rounded-full\">Aktif</div>",
|
|
||||||
},
|
|
||||||
new {
|
|
||||||
rt = "006",
|
|
||||||
jumlah_kepala_keluarga = "14",
|
|
||||||
total_wadah_unit = "05",
|
|
||||||
status = "<div class=\"badge badge-success badge-soft rounded-full\">Aktif</div>",
|
|
||||||
},
|
|
||||||
new {
|
|
||||||
rt = "007",
|
|
||||||
jumlah_kepala_keluarga = "02",
|
|
||||||
total_wadah_unit = "06",
|
|
||||||
status = "<div class=\"badge badge-success badge-soft rounded-full\">Aktif</div>",
|
|
||||||
},
|
|
||||||
new {
|
|
||||||
rt = "008",
|
|
||||||
jumlah_kepala_keluarga = "22",
|
|
||||||
total_wadah_unit = "06",
|
|
||||||
status = "<div class=\"badge badge-success badge-soft rounded-full\">Aktif</div>",
|
|
||||||
},
|
|
||||||
new {
|
|
||||||
rt = "009",
|
|
||||||
jumlah_kepala_keluarga = "01",
|
|
||||||
total_wadah_unit = "03",
|
|
||||||
status = "<div class=\"badge badge-success badge-soft rounded-full\">Aktif</div>",
|
|
||||||
},
|
|
||||||
new {
|
|
||||||
rt = "010",
|
|
||||||
jumlah_kepala_keluarga = "28",
|
|
||||||
total_wadah_unit = "04",
|
|
||||||
status = "<div class=\"badge badge-success badge-soft rounded-full\">Aktif</div>",
|
|
||||||
},
|
|
||||||
};
|
|
||||||
|
|
||||||
var response = new
|
return new
|
||||||
{
|
{
|
||||||
data = data
|
rt = ((index % 25) + 1).ToString("D3"),
|
||||||
|
jumlah_kepala_keluarga = jumlahKk.ToString("D2"),
|
||||||
|
total_wadah_unit = totalWadah.ToString("D2"),
|
||||||
|
status
|
||||||
};
|
};
|
||||||
|
})
|
||||||
|
.ToArray();
|
||||||
|
|
||||||
return Json(response);
|
return Json(new { data });
|
||||||
}
|
}
|
||||||
|
|
||||||
[HttpGet]
|
[HttpGet]
|
||||||
public IActionResult TableKebutuhanSarpras()
|
public IActionResult TableKebutuhanSarpras()
|
||||||
{
|
{
|
||||||
var data = new[]
|
var startDate = new DateTime(2023, 4, 1);
|
||||||
{
|
|
||||||
new {
|
|
||||||
rt = "001",
|
|
||||||
tanggal = ControllerSampleData.FormatTanggal(new DateTime(2023, 4, 11)),
|
|
||||||
jumlah_unit = "507",
|
|
||||||
aksi = "<div class=\"flex gap-2 \">" +
|
|
||||||
"<a class=\"btn btn-xs bg-white rounded-full\">Detail</a>" +
|
|
||||||
"<a class=\"btn btn-xs bg-white rounded-full\">Edit</a>" +
|
|
||||||
"<a class=\"btn btn-xs btn-error btn-outline rounded-full\">Delete</a>" +
|
|
||||||
"</div>"
|
|
||||||
},
|
|
||||||
new {
|
|
||||||
rt = "002",
|
|
||||||
tanggal = ControllerSampleData.FormatTanggal(new DateTime(2023, 4, 9)),
|
|
||||||
jumlah_unit = "501",
|
|
||||||
aksi = "<div class=\"flex gap-2 \">" +
|
|
||||||
"<a class=\"btn btn-xs bg-white rounded-full\">Detail</a>" +
|
|
||||||
"<a class=\"btn btn-xs bg-white rounded-full\">Edit</a>" +
|
|
||||||
"<a class=\"btn btn-xs btn-error btn-outline rounded-full\">Delete</a>" +
|
|
||||||
"</div>"
|
|
||||||
},
|
|
||||||
new {
|
|
||||||
rt = "003",
|
|
||||||
tanggal = ControllerSampleData.FormatTanggal(new DateTime(2023, 4, 21)),
|
|
||||||
jumlah_unit = "504",
|
|
||||||
aksi = "<div class=\"flex gap-2 \">" +
|
|
||||||
"<a class=\"btn btn-xs bg-white rounded-full\">Detail</a>" +
|
|
||||||
"<a class=\"btn btn-xs bg-white rounded-full\">Edit</a>" +
|
|
||||||
"<a class=\"btn btn-xs btn-error btn-outline rounded-full\">Delete</a>" +
|
|
||||||
"</div>"
|
|
||||||
},
|
|
||||||
new {
|
|
||||||
rt = "004",
|
|
||||||
tanggal = ControllerSampleData.FormatTanggal(new DateTime(2023, 4, 17)),
|
|
||||||
jumlah_unit = "502",
|
|
||||||
aksi = "<div class=\"flex gap-2 \">" +
|
|
||||||
"<a class=\"btn btn-xs bg-white rounded-full\">Detail</a>" +
|
|
||||||
"<a class=\"btn btn-xs bg-white rounded-full\">Edit</a>" +
|
|
||||||
"<a class=\"btn btn-xs btn-error btn-outline rounded-full\">Delete</a>" +
|
|
||||||
"</div>"
|
|
||||||
},
|
|
||||||
new {
|
|
||||||
rt = "005",
|
|
||||||
tanggal = ControllerSampleData.FormatTanggal(new DateTime(2023, 4, 18)),
|
|
||||||
jumlah_unit = "508",
|
|
||||||
aksi = "<div class=\"flex gap-2 \">" +
|
|
||||||
"<a class=\"btn btn-xs bg-white rounded-full\">Detail</a>" +
|
|
||||||
"<a class=\"btn btn-xs bg-white rounded-full\">Edit</a>" +
|
|
||||||
"<a class=\"btn btn-xs btn-error btn-outline rounded-full\">Delete</a>" +
|
|
||||||
"</div>"
|
|
||||||
},
|
|
||||||
new {
|
|
||||||
rt = "006",
|
|
||||||
tanggal = ControllerSampleData.FormatTanggal(new DateTime(2023, 4, 14)),
|
|
||||||
jumlah_unit = "505",
|
|
||||||
aksi = "<div class=\"flex gap-2 \">" +
|
|
||||||
"<a class=\"btn btn-xs bg-white rounded-full\">Detail</a>" +
|
|
||||||
"<a class=\"btn btn-xs bg-white rounded-full\">Edit</a>" +
|
|
||||||
"<a class=\"btn btn-xs btn-error btn-outline rounded-full\">Delete</a>" +
|
|
||||||
"</div>"
|
|
||||||
},
|
|
||||||
new {
|
|
||||||
rt = "007",
|
|
||||||
tanggal = ControllerSampleData.FormatTanggal(new DateTime(2023, 4, 2)),
|
|
||||||
jumlah_unit = "506",
|
|
||||||
aksi = "<div class=\"flex gap-2 \">" +
|
|
||||||
"<a class=\"btn btn-xs bg-white rounded-full\">Detail</a>" +
|
|
||||||
"<a class=\"btn btn-xs bg-white rounded-full\">Edit</a>" +
|
|
||||||
"<a class=\"btn btn-xs btn-error btn-outline rounded-full\">Delete</a>" +
|
|
||||||
"</div>"
|
|
||||||
},
|
|
||||||
new {
|
|
||||||
rt = "008",
|
|
||||||
tanggal = ControllerSampleData.FormatTanggal(new DateTime(2023, 4, 22)),
|
|
||||||
jumlah_unit = "506",
|
|
||||||
aksi = "<div class=\"flex gap-2 \">" +
|
|
||||||
"<a class=\"btn btn-xs bg-white rounded-full\">Detail</a>" +
|
|
||||||
"<a class=\"btn btn-xs bg-white rounded-full\">Edit</a>" +
|
|
||||||
"<a class=\"btn btn-xs btn-error btn-outline rounded-full\">Delete</a>" +
|
|
||||||
"</div>"
|
|
||||||
},
|
|
||||||
new {
|
|
||||||
rt = "009",
|
|
||||||
tanggal = ControllerSampleData.FormatTanggal(new DateTime(2023, 4, 1)),
|
|
||||||
jumlah_unit = "503",
|
|
||||||
aksi = "<div class=\"flex gap-2 \">" +
|
|
||||||
"<a class=\"btn btn-xs bg-white rounded-full\">Detail</a>" +
|
|
||||||
"<a class=\"btn btn-xs bg-white rounded-full\">Edit</a>" +
|
|
||||||
"<a class=\"btn btn-xs btn-error btn-outline rounded-full\">Delete</a>" +
|
|
||||||
"</div>"
|
|
||||||
},
|
|
||||||
new {
|
|
||||||
rt = "010",
|
|
||||||
tanggal = ControllerSampleData.FormatTanggal(new DateTime(2023, 4, 28)),
|
|
||||||
jumlah_unit = "504",
|
|
||||||
aksi = "<div class=\"flex gap-2 \">" +
|
|
||||||
"<a class=\"btn btn-xs bg-white rounded-full\">Detail</a>" +
|
|
||||||
"<a class=\"btn btn-xs bg-white rounded-full\">Edit</a>" +
|
|
||||||
"<a class=\"btn btn-xs btn-error btn-outline rounded-full\">Delete</a>" +
|
|
||||||
"</div>"
|
|
||||||
},
|
|
||||||
};
|
|
||||||
|
|
||||||
var response = new
|
var data = Enumerable.Range(0, 100)
|
||||||
|
.Select(index =>
|
||||||
{
|
{
|
||||||
data = data
|
var jumlahUnit = 480 + (index * 7 % 120);
|
||||||
|
return new
|
||||||
|
{
|
||||||
|
rt = ((index % 40) + 1).ToString("D3"),
|
||||||
|
tanggal = ControllerSampleData.FormatTanggal(startDate.AddDays(index)),
|
||||||
|
jumlah_unit = jumlahUnit.ToString(),
|
||||||
|
aksi = BuildCrudActionButtons(index + 1)
|
||||||
};
|
};
|
||||||
|
})
|
||||||
|
.ToArray();
|
||||||
|
|
||||||
return Json(response);
|
return Json(new { data });
|
||||||
}
|
}
|
||||||
|
|
||||||
[HttpGet]
|
[HttpGet]
|
||||||
|
|
@ -590,6 +281,31 @@ namespace BpsRwApp.Controllers
|
||||||
return Json(new { data });
|
return Json(new { data });
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static string BuildLokasiStatusBadge(int index)
|
||||||
|
{
|
||||||
|
var statuses = new[]
|
||||||
|
{
|
||||||
|
("Aktif", "success"),
|
||||||
|
("Dalam Review", "warning"),
|
||||||
|
("Tidak Aktif", "error")
|
||||||
|
};
|
||||||
|
|
||||||
|
var status = statuses[index % statuses.Length];
|
||||||
|
return $"<span class=\"badge badge-{status.Item2} badge-soft badge-sm rounded-full font-medium\">{status.Item1}</span>";
|
||||||
|
}
|
||||||
|
|
||||||
|
private static string BuildLokasiActionButtons(int id) => BuildCrudActionButtons(id);
|
||||||
|
|
||||||
|
private static string BuildStatusPill(string label, string tone) =>
|
||||||
|
$"<div class=\"badge badge-{tone} badge-soft rounded-full\">{label}</div>";
|
||||||
|
|
||||||
|
private static string BuildCrudActionButtons(int id) =>
|
||||||
|
"<div class=\"flex gap-2 \">" +
|
||||||
|
$"<button type=\"button\" class=\"btn btn-xs bg-white btn-detail rounded-full\" data-id=\"{id}\">Detail</button>" +
|
||||||
|
$"<button type=\"button\" class=\"btn btn-xs bg-white btn-edit rounded-full\" data-id=\"{id}\">Edit</button>" +
|
||||||
|
$"<button type=\"button\" class=\"btn btn-xs btn-error btn-outline btn-delete rounded-full\" data-id=\"{id}\">Delete</button>" +
|
||||||
|
"</div>";
|
||||||
|
|
||||||
[HttpGet]
|
[HttpGet]
|
||||||
public IActionResult DetailAlatPengumpulSampah(int id)
|
public IActionResult DetailAlatPengumpulSampah(int id)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -82,21 +82,8 @@
|
||||||
{ data: 'statusLahan' },
|
{ data: 'statusLahan' },
|
||||||
{ data: 'pemilikLahan' },
|
{ data: 'pemilikLahan' },
|
||||||
{ data: 'luasLahan' },
|
{ data: 'luasLahan' },
|
||||||
{
|
{ data: 'statusUsulan', className: "text-center", orderable: false, searchable: false },
|
||||||
data: 'statusUsulan',
|
{ data: 'aksi', className: "text-center", orderable: false, searchable: false }
|
||||||
render: (data) => `<span class="badge badge-success badge-soft badge-sm rounded-full font-medium">${data}</span>`
|
|
||||||
},
|
|
||||||
{
|
|
||||||
data: null,
|
|
||||||
className: "text-center",
|
|
||||||
render: (data, type, row) => `<div class="flex justify-center gap-2">` +
|
|
||||||
`<button class="btn btn-xs bg-white btn-detail rounded-full" data-id="${row.id}">Detail</button>` +
|
|
||||||
`<button class="btn btn-xs bg-white btn-edit rounded-full" data-id="${row.id}">Edit</button>` +
|
|
||||||
`<button class="btn btn-xs btn-error btn-outline btn-delete rounded-full" data-id="${row.id}">Delete</button>` +
|
|
||||||
`</div>`,
|
|
||||||
orderable: false,
|
|
||||||
searchable: false
|
|
||||||
}
|
|
||||||
]
|
]
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue