456 lines
20 KiB
Plaintext
456 lines
20 KiB
Plaintext
@{
|
|
ViewData["Title"] = "Data Rumah RW";
|
|
}
|
|
|
|
<div class="breadcrumbs text-sm">
|
|
<ul>
|
|
<li class="text-gray-500"><a>Data Rumah</a></li>
|
|
<li><a>Rumah RW</a></li>
|
|
</ul>
|
|
</div>
|
|
|
|
<div class="grid grid-cols-1 gap-4 lg:grid-cols-2">
|
|
<!-- Header -->
|
|
<div class="prose">
|
|
<h3 class="mb-2">Data Rumah RW</h3>
|
|
</div>
|
|
<div class="justify-self-end lg:self-center flex flex-wrap gap-3">
|
|
<button id="btn-tambah-rumah" type="button" class="btn btn-primary rounded-full text-white border-0">
|
|
<span class="icon icon-fill me-2">add</span>
|
|
Tambah
|
|
</button>
|
|
<button onclick="modal_filter.showModal()" class="btn rounded-full bg-white">
|
|
<span class="icon icon-fill me-2">filter_list</span>
|
|
Filter
|
|
</button>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="h-8"></div>
|
|
|
|
<div class="card bg-white shadow-sm">
|
|
<div class="card-body p-0">
|
|
<table class="table-zebra table" id="example">
|
|
<thead>
|
|
<tr>
|
|
<th class="w-[5%]">No</th>
|
|
<th class="w-[5%]">RT</th>
|
|
<th class="w-[5%]">RW</th>
|
|
<th class="w-[35%] whitespace-normal">Alamat</th>
|
|
<th class="w-[15%]">Kota</th>
|
|
<th class="w-[10%]">Nama Pemilik</th>
|
|
<th class="w-[10%]">Status</th>
|
|
<th class="w-[10%]">Checklist</th>
|
|
<th class="w-[10%]">Aksi</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody></tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Create Modal -->
|
|
<dialog id="modal_create" class="modal modal-bottom sm:modal-middle">
|
|
<div class="modal-box w-full sm:max-w-lg">
|
|
<div class="flex items-start justify-between">
|
|
<div>
|
|
<h3 class="text-lg font-semibold">Tambah Rumah</h3>
|
|
<p class="text-sm text-gray-500">Lengkapi informasi rumah sebelum menyimpan.</p>
|
|
</div>
|
|
<form method="dialog">
|
|
<button type="submit" class="btn btn-sm btn-circle btn-ghost">✕</button>
|
|
</form>
|
|
</div>
|
|
<form id="form-create-rumah" class="space-y-4 mt-6">
|
|
<fieldset class="fieldset">
|
|
<legend class="fieldset-legend">No RT <span class="text-red-500">*</span></legend>
|
|
<input id="create-rt" name="rt" type="text" class="input w-full" placeholder="Masukkan No RT" required />
|
|
</fieldset>
|
|
<fieldset class="fieldset">
|
|
<legend class="fieldset-legend">Nama Pemilik Rumah <span class="text-red-500">*</span></legend>
|
|
<input id="create-nama-pemilik" name="nama_pemilik" type="text" class="input w-full" placeholder="Masukkan nama pemilik rumah" required />
|
|
</fieldset>
|
|
<fieldset class="fieldset">
|
|
<legend class="fieldset-legend">Alamat <span class="text-red-500">*</span></legend>
|
|
<textarea id="create-alamat" name="alamat" class="textarea w-full" rows="4" placeholder="Masukkan alamat" required></textarea>
|
|
</fieldset>
|
|
<div class="grid grid-cols-2 gap-4">
|
|
<fieldset class="fieldset">
|
|
<legend class="fieldset-legend">Longitude <span class="text-red-500">*</span></legend>
|
|
<input id="create-longitude" name="longitude" type="text" class="input w-full" placeholder="Masukkan longitude" required />
|
|
</fieldset>
|
|
<fieldset class="fieldset">
|
|
<legend class="fieldset-legend">Latitude <span class="text-red-500">*</span></legend>
|
|
<input id="create-latitude" name="latitude" type="text" class="input w-full" placeholder="Masukkan latitude" required />
|
|
</fieldset>
|
|
</div>
|
|
<div class="modal-action">
|
|
<button type="button" class="btn rounded-full" onclick="modal_create.close()">
|
|
<span class="icon me-1">cancel</span>
|
|
Batal
|
|
</button>
|
|
<button id="BtnSimpanRumahRw" type="submit" class="btn btn-primary rounded-full text-white">
|
|
<span class="icon me-1">save</span>
|
|
Simpan
|
|
</button>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
</dialog>
|
|
|
|
<!-- Filter Modal -->
|
|
<dialog id="modal_filter" class="modal modal-bottom sm:modal-middle">
|
|
<div class="modal-box w-full sm:max-w-sm">
|
|
<div class="flex items-center justify-between">
|
|
<h3 class="text-lg font-bold">Filter</h3>
|
|
<button type="button" class="btn btn-sm btn-circle btn-ghost" onclick="modal_filter.close()">✕</button>
|
|
</div>
|
|
<form action="#" method="get" class="space-y-4 mt-4">
|
|
<fieldset class="fieldset max-w-sm">
|
|
<legend class="fieldset-legend">Status</legend>
|
|
<select class="select w-full">
|
|
<option disabled selected>Pilih Status</option>
|
|
<option>Aktif</option>
|
|
<option>Tidak Aktif</option>
|
|
</select>
|
|
</fieldset>
|
|
<fieldset class="fieldset max-w-sm">
|
|
<legend class="fieldset-legend">RT</legend>
|
|
<select id="rtSelect" class="w-full">
|
|
<option value="">Pilih RT</option>
|
|
<option value="001">001</option>
|
|
<option value="002">002</option>
|
|
<option value="003">003</option>
|
|
<option value="004">004</option>
|
|
<option value="005">005</option>
|
|
</select>
|
|
</fieldset>
|
|
<div class="modal-action">
|
|
<button type="button" class="btn" onclick="modal_filter.close()">Bersihkan</button>
|
|
<button type="submit" class="btn btn-neutral">Terapkan Filter</button>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
</dialog>
|
|
|
|
<!-- Detail Modal -->
|
|
<dialog id="modal_detail" class="modal modal-bottom sm:modal-middle">
|
|
<div class="modal-box w-full sm:max-w-md">
|
|
<div class="flex items-center justify-between mb-4">
|
|
<h3 class="text-lg font-semibold">Detail Rumah</h3>
|
|
<button type="button" class="btn btn-sm btn-circle btn-ghost" onclick="modal_detail.close()">✕</button>
|
|
</div>
|
|
<div class="space-y-3 text-sm">
|
|
<div>
|
|
<p class="text-gray-500">No. RT</p>
|
|
<p id="detail-rt" class="font-medium"></p>
|
|
</div>
|
|
<div>
|
|
<p class="text-gray-500">Nama Pemilik Rumah</p>
|
|
<p id="detail-nama" class="font-medium"></p>
|
|
</div>
|
|
<div>
|
|
<p class="text-gray-500">Alamat</p>
|
|
<p id="detail-alamat" class="font-medium whitespace-normal"></p>
|
|
</div>
|
|
</div>
|
|
<div class="modal-action mt-6">
|
|
<button type="button" class="btn" onclick="modal_detail.close()">Tutup</button>
|
|
</div>
|
|
</div>
|
|
</dialog>
|
|
|
|
<!-- Input NIK Modal -->
|
|
<dialog id="modal_input_nik" class="modal modal-bottom sm:modal-middle">
|
|
<div class="modal-box w-full sm:max-w-3xl rounded-2xl p-6">
|
|
<div class="flex justify-between items-center mb-6">
|
|
<h3 class="text-xl font-semibold">Input NIK</h3>
|
|
<form method="dialog">
|
|
<button class="btn btn-sm btn-circle btn-ghost">✕</button>
|
|
</form>
|
|
</div>
|
|
<form id="form-input-nik" class="space-y-5">
|
|
<div class="grid grid-cols-12 gap-4">
|
|
<div class="col-span-9">
|
|
<fieldset class="fieldset">
|
|
<legend class="fieldset-legend">No KTP</legend>
|
|
<input name="nik" id="nik" class="input w-full" placeholder="Masukkan NIK" />
|
|
</fieldset>
|
|
</div>
|
|
<div class="col-span-3">
|
|
<fieldset class="fieldset">
|
|
<legend class="fieldset-legend opacity-0">.</legend>
|
|
<button type="button" id="btn-cek-data" class="btn btn-info w-full rounded-full text-white">
|
|
<span class="icon icon-fill me-1">search</span>
|
|
Cek Data
|
|
</button>
|
|
</fieldset>
|
|
</div>
|
|
</div>
|
|
<div class="grid grid-cols-2 gap-4">
|
|
<fieldset class="fieldset">
|
|
<legend class="fieldset-legend">Nama Kepala Rumah Tangga</legend>
|
|
<input id="nama_kepala" class="input w-full" placeholder="Masukkan nama kepala rumah tangga" />
|
|
</fieldset>
|
|
<fieldset class="fieldset">
|
|
<legend class="fieldset-legend">Alamat</legend>
|
|
<input id="alamat" class="input w-full" placeholder="Masukkan alamat" />
|
|
</fieldset>
|
|
</div>
|
|
<div class="grid grid-cols-12 gap-4">
|
|
<div class="col-span-6">
|
|
<fieldset class="fieldset">
|
|
<legend class="fieldset-legend">Nama Pemilik KTP</legend>
|
|
<input id="nama_pemilik_ktp" class="input w-full" placeholder="Masukkan nama" />
|
|
</fieldset>
|
|
</div>
|
|
<div class="col-span-3">
|
|
<fieldset class="fieldset">
|
|
<legend class="fieldset-legend">RT</legend>
|
|
<input id="rt" readonly class="input w-full bg-gray-100 text-gray-500" placeholder="RT" />
|
|
</fieldset>
|
|
</div>
|
|
<div class="col-span-3">
|
|
<fieldset class="fieldset">
|
|
<legend class="fieldset-legend">RW</legend>
|
|
<input id="rw" readonly class="input w-full bg-gray-100 text-gray-500" placeholder="RW" />
|
|
</fieldset>
|
|
</div>
|
|
</div>
|
|
<div class="grid grid-cols-2 gap-4">
|
|
<fieldset class="fieldset">
|
|
<legend class="fieldset-legend">Kelurahan</legend>
|
|
<input id="kelurahan" readonly class="input w-full bg-gray-100 text-gray-500" placeholder="Cijantung" />
|
|
</fieldset>
|
|
<fieldset class="fieldset">
|
|
<legend class="fieldset-legend">Kecamatan</legend>
|
|
<input id="kecamatan" readonly class="input w-full bg-gray-100 text-gray-500" placeholder="Pasar Rebo" />
|
|
</fieldset>
|
|
</div>
|
|
<div class="grid grid-cols-2 gap-4">
|
|
<fieldset class="fieldset">
|
|
<legend class="fieldset-legend">Kota</legend>
|
|
<input id="kota" readonly class="input w-full bg-gray-100 text-gray-500" />
|
|
</fieldset>
|
|
<fieldset class="fieldset">
|
|
<legend class="fieldset-legend">Bangunan ID</legend>
|
|
<input id="bangunan_id" class="input w-full" placeholder="Masukkan ID Bangunan" />
|
|
</fieldset>
|
|
</div>
|
|
<fieldset class="fieldset">
|
|
<legend class="fieldset-legend">Nasabah Status</legend>
|
|
<input id="status" class="input w-full" placeholder="Tidak Aktif" />
|
|
</fieldset>
|
|
<div class="flex justify-end gap-3 pt-4">
|
|
<button type="button" onclick="modal_input_nik.close()" class="btn h-11 rounded-full px-6 bg-gray-100 border border-gray-300 text-gray-700">
|
|
<span class="icon icon-fill me-1">cancel</span>
|
|
Batalkan
|
|
</button>
|
|
<button id="BtnSimpanNik" type="submit" class="btn btn-primary h-11 rounded-full px-6 text-white">
|
|
<span class="icon icon-fill me-1">save</span>
|
|
Simpan
|
|
</button>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
</dialog>
|
|
|
|
<!-- Edit Modal -->
|
|
<dialog id="modal_edit" class="modal modal-bottom sm:modal-middle">
|
|
<div class="modal-box w-full sm:max-w-lg">
|
|
<div class="flex items-start justify-between">
|
|
<div>
|
|
<h3 class="text-lg font-semibold">Edit Rumah</h3>
|
|
<p class="text-sm text-gray-500">Perbarui informasi rumah sebelum menyimpan.</p>
|
|
</div>
|
|
<form method="dialog">
|
|
<button type="submit" class="btn btn-sm btn-circle btn-ghost">✕</button>
|
|
</form>
|
|
</div>
|
|
<form id="form-edit-rumah" class="space-y-4 mt-6">
|
|
<fieldset class="fieldset">
|
|
<legend class="fieldset-legend">No RT <span class="text-red-500">*</span></legend>
|
|
<input id="edit-rt" name="rt" type="text" class="input w-full" placeholder="Masukkan No RT" required />
|
|
</fieldset>
|
|
<fieldset class="fieldset">
|
|
<legend class="fieldset-legend">Nama Pemilik Rumah <span class="text-red-500">*</span></legend>
|
|
<input id="edit-nama-pemilik" name="nama_pemilik" type="text" class="input w-full" placeholder="Masukkan nama pemilik rumah" required />
|
|
</fieldset>
|
|
<fieldset class="fieldset">
|
|
<legend class="fieldset-legend">Alamat <span class="text-red-500">*</span></legend>
|
|
<textarea id="edit-alamat" name="alamat" class="textarea w-full" rows="4" placeholder="Masukkan alamat" required></textarea>
|
|
</fieldset>
|
|
<div class="grid grid-cols-2 gap-4">
|
|
<fieldset class="fieldset">
|
|
<legend class="fieldset-legend">Longitude <span class="text-red-500">*</span></legend>
|
|
<input id="edit-longitude" name="longitude" type="text" class="input w-full" placeholder="Masukkan longitude" required />
|
|
</fieldset>
|
|
<fieldset class="fieldset">
|
|
<legend class="fieldset-legend">Latitude <span class="text-red-500">*</span></legend>
|
|
<input id="edit-latitude" name="latitude" type="text" class="input w-full" placeholder="Masukkan latitude" required />
|
|
</fieldset>
|
|
</div>
|
|
<div class="modal-action">
|
|
<button type="button" class="btn rounded-full" onclick="modal_edit.close()">
|
|
<span class="icon me-1">cancel</span>
|
|
Batal
|
|
</button>
|
|
<button id="BtnUpdateRumahRw" type="submit" class="btn btn-primary rounded-full text-white">
|
|
<span class="icon me-1">save</span>
|
|
Simpan
|
|
</button>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
</dialog>
|
|
|
|
<script src="/lib/jquery/jquery-3.7.1.js"></script>
|
|
<script src="/lib/datatables/dataTables.js"></script>
|
|
<script src="/plugins/datatables/dataTables.tailwindcss.js"></script>
|
|
<script src="/lib/sweetalert2/sweetalert2-11.26.4.js"></script>
|
|
<link href="https://cdn.jsdelivr.net/npm/tom-select@2.2.2/dist/css/tom-select.css" rel="stylesheet">
|
|
<script src="https://cdn.jsdelivr.net/npm/tom-select@2.2.2/dist/js/tom-select.complete.min.js"></script>
|
|
|
|
<script type="text/javascript">
|
|
var table;
|
|
|
|
$(document).ready(function () {
|
|
new TomSelect("#rtSelect", {
|
|
closeAfterSelect: true,
|
|
maxItems: 1,
|
|
placeholder: "Pilih RT",
|
|
});
|
|
|
|
table = new DataTable('#example', {
|
|
ajax: '@Url.Action("Table", "DataRumahRw")',
|
|
scrollX: true,
|
|
autoWidth: true,
|
|
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: 'rt' },
|
|
{ data: 'rw' },
|
|
{ data: 'alamat' },
|
|
{ data: 'kota' },
|
|
{ data: 'nama_pemilik' },
|
|
{ data: 'status' },
|
|
{ data: 'checklist' },
|
|
{ data: 'aksi', orderable: false, searchable: false }
|
|
],
|
|
columnDefs: [
|
|
{ className: "whitespace-normal", targets: 3 }
|
|
]
|
|
});
|
|
|
|
$('#btn-tambah-rumah').on('click', function () {
|
|
document.getElementById('modal_create').showModal();
|
|
});
|
|
|
|
$('#example tbody').on('click', '.btn-detail-rumah', function () {
|
|
let row = table.row($(this).closest('tr')).data();
|
|
$('#detail-rt').text(row.rt);
|
|
$('#detail-nama').text(row.nama_pemilik);
|
|
$('#detail-alamat').text(row.alamat);
|
|
modal_detail.showModal();
|
|
});
|
|
|
|
$('#example tbody').on('click', '.btn-input-nik', function () {
|
|
let row = table.row($(this).closest('tr')).data();
|
|
$('#rt').val(row.rt);
|
|
$('#rw').val(row.rw);
|
|
$('#kota').val(row.kota);
|
|
modal_input_nik.showModal();
|
|
});
|
|
|
|
$('#example tbody').on('click', '.btn-edit-rumah', function () {
|
|
let row = table.row($(this).closest('tr')).data();
|
|
$('#edit-rt').val(row.rt);
|
|
$('#edit-nama-pemilik').val(row.nama_pemilik);
|
|
$('#edit-alamat').val(row.alamat);
|
|
modal_edit.showModal();
|
|
});
|
|
|
|
$('#form-create-rumah').on('submit', function (e) {
|
|
e.preventDefault();
|
|
|
|
modal_create.close();
|
|
|
|
Swal.fire({
|
|
title: 'Simpan Data Rumah?',
|
|
text: "Pastikan semua data sudah benar.",
|
|
icon: 'question',
|
|
showCancelButton: true,
|
|
confirmButtonColor: '#22c55e',
|
|
cancelButtonColor: '#6b7280',
|
|
confirmButtonText: 'Simpan',
|
|
cancelButtonText: 'Batal'
|
|
}).then((result) => {
|
|
if (result.isConfirmed) {
|
|
Swal.fire({
|
|
title: 'Berhasil!',
|
|
text: 'Data Rumah berhasil disimpan.',
|
|
icon: 'success',
|
|
confirmButtonText: 'OK',
|
|
confirmButtonColor: '#22c55e'
|
|
});
|
|
}
|
|
});
|
|
});
|
|
|
|
$('#form-edit-rumah').on('submit', function (e) {
|
|
e.preventDefault();
|
|
|
|
modal_edit.close();
|
|
|
|
Swal.fire({
|
|
title: 'Simpan Perubahan?',
|
|
text: "Pastikan semua data sudah benar.",
|
|
icon: 'question',
|
|
showCancelButton: true,
|
|
confirmButtonColor: '#22c55e',
|
|
cancelButtonColor: '#6b7280',
|
|
confirmButtonText: 'Simpan',
|
|
cancelButtonText: 'Batal'
|
|
}).then((result) => {
|
|
if (result.isConfirmed) {
|
|
Swal.fire({
|
|
title: 'Berhasil!',
|
|
text: 'Data Rumah berhasil diperbarui.',
|
|
icon: 'success',
|
|
confirmButtonText: 'OK',
|
|
confirmButtonColor: '#22c55e'
|
|
});
|
|
}
|
|
});
|
|
});
|
|
|
|
$('#BtnSimpanNik').on('click', function (e) {
|
|
e.preventDefault();
|
|
|
|
modal_input_nik.close();
|
|
|
|
Swal.fire({
|
|
title: 'Simpan Data NIK?',
|
|
text: "Pastikan semua data sudah benar.",
|
|
icon: 'question',
|
|
showCancelButton: true,
|
|
confirmButtonColor: '#22c55e',
|
|
cancelButtonColor: '#6b7280',
|
|
confirmButtonText: 'Simpan',
|
|
cancelButtonText: 'Batal'
|
|
}).then((result) => {
|
|
if (result.isConfirmed) {
|
|
Swal.fire({
|
|
title: 'Berhasil!',
|
|
text: 'Data NIK berhasil disimpan.',
|
|
icon: 'success',
|
|
confirmButtonText: 'OK',
|
|
confirmButtonColor: '#22c55e'
|
|
});
|
|
}
|
|
});
|
|
});
|
|
});
|
|
</script> |