Rapihin setup/member/lot-parking + fitur intercom, exclude WIP controller & file sampah dari git

Kumpulan perubahan yang udah numpuk di working tree: refactor Setup
(Gate/Vehicle/Member), rapihin memberin & stiker, service parking baru
(ParkingUtilsServices, NetworkService), model/migration lot-parking &
DHCP reservation, dan fitur baru Intercom (controller/model/migration/
view).

ReportTransaksiController versi lokal ini WIP (~90%, masih didebug) -
versi yang bener ada di server, jadi dikeluarin dari git (ditambahin
ke .gitignore) biar gak numpuk nindihin punya server pas git pull di
sana. Sekalian keluarin dump mentah tabel softseting (1.8MB, nyasar
ke-commit), file .bak, dan arsip ad-hoc (api.tgz, c.zip) yang emang
bukan source code.

Co-Authored-By: Claude Sonnet 5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01EAJc2mrpj2cSTe4oowLPzQ
This commit is contained in:
2026-10-04 07:15:54 +07:00
co-authored by Claude Sonnet 5
parent efdea9d739
commit 2a9b28581c
91 changed files with 5716 additions and 2470 deletions
+106 -78
View File
@@ -1,74 +1,101 @@
$(document).ready(function () {
$(document).on('change', '.form-select', function () {
if ($('option:selected', this).val() == '') {
$(".nama").css('display', 'none');
$(".nopol").css('display', 'none');
$(".nocard").css('display', 'none');
$(".notrans").css('display', 'none');
$(document).on("change", ".form-select", function () {
if ($("option:selected", this).val() == "") {
$(".nama").css("display", "none");
$(".nopol").css("display", "none");
$(".nocard").css("display", "none");
$(".notrans").css("display", "none");
// $(".site").val('');
} else if ($('option:selected', this).val() == 'nama') {
$(".nama").css('display', 'block');
$(".nopol").css('display', 'none');
$(".nocard").css('display', 'none');
$(".notrans").css('display', 'none');
$(".input-default").val('');
} else if ($('option:selected', this).val() == 'nopol') {
$(".nama").css('display', 'none');
$(".nopol").css('display', 'block');
$(".nocard").css('display', 'none');
$(".notrans").css('display', 'none');
$(".input-default").val('');
} else if ($('option:selected', this).val() == 'nocard') {
$(".nama").css('display', 'none');
$(".nopol").css('display', 'none');
$(".nocard").css('display', 'block');
$(".notrans").css('display', 'none');
$(".input-default").val('');
} else if ($('option:selected', this).val() == 'notrans') {
$(".nama").css('display', 'none');
$(".nopol").css('display', 'none');
$(".nocard").css('display', 'none');
$(".notrans").css('display', 'block');
$(".input-default").val('');
} else if ($("option:selected", this).val() == "nama") {
$(".nama").css("display", "block");
$(".nopol").css("display", "none");
$(".nocard").css("display", "none");
$(".notrans").css("display", "none");
$(".input-default").val("");
} else if ($("option:selected", this).val() == "nopol") {
$(".nama").css("display", "none");
$(".nopol").css("display", "block");
$(".nocard").css("display", "none");
$(".notrans").css("display", "none");
$(".input-default").val("");
} else if ($("option:selected", this).val() == "nocard") {
$(".nama").css("display", "none");
$(".nopol").css("display", "none");
$(".nocard").css("display", "block");
$(".notrans").css("display", "none");
$(".input-default").val("");
} else if ($("option:selected", this).val() == "notrans") {
$(".nama").css("display", "none");
$(".nopol").css("display", "none");
$(".nocard").css("display", "none");
$(".notrans").css("display", "block");
$(".input-default").val("");
} else {
$(".position").css('display', 'none');
$(".level-area").css('display', 'none');
$(".input-default").val('');
$(".position").css("display", "none");
$(".level-area").css("display", "none");
$(".input-default").val("");
}
});
var url = $('#example').data('url');
$('#search-button').on('click', function () {
// Ambil nilai dari selected option
var option = $('.select-option').val();
var url = $("#example").data("url");
// Cek jika option yang dipilih bukan 'Pencarian Data...' yang berarti pilihan valid
if (option && option !== '') {
var inputField = $('.input-default:visible');
$("#search-button").on("click", function () {
let searchBy = $("#search-by").val();
let searchValue = $("#search-value").val().trim();
// Periksa apakah input tersebut kosong
if (inputField.length === 0 || inputField.val().trim() === '') {
// Jika kosong, tampilkan alert
alert('Harap masukkan ' + (option === 'nopol' ? 'No. Polisi' : option === 'nocard' ? 'No. Card' : option === 'nama' ? 'Nama' : option === 'notrans' ? 'No. Transaksi' : 'No. Transaksi'));
inputField.focus();
return; // Hentikan proses jika input kosong
}
let memberType = $("#member-type").val();
let department = $("#department").val();
let vehicle = $("#vehicle").val();
// =========================
// VALIDASI PENCARIAN
// =========================
if (searchBy !== "" && searchValue === "") {
let label = {
nama: "Nama",
alamat: "Alamat",
nopol: "No. Polisi",
nocard: "No. Card",
notrans: "No. Transaksi",
};
alert("Harap masukkan " + (label[searchBy] || "kata kunci"));
$("#search-value").focus();
return;
}
console.log(option);
var formData = $('#search-form .input-default:visible').val();
console.log(formData);
// =========================
// DEBUG
// =========================
console.log({
searchBy,
searchValue,
memberType,
department,
vehicle,
});
// =========================
// AJAX
// =========================
$.ajax({
url: url,
type: "POST",
data: $('#search-form').serialize(),
headers: {'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')},
dataType: 'json',
data: $("#search-form").serialize(),
headers: { "X-CSRF-TOKEN": $('meta[name="csrf-token"]').attr("content") },
dataType: "json",
beforeSend: function () {
$("#search-button").prop("disabled", true).html(`
<i class="fa fa-spinner fa-spin me-2"></i>
Mencari...
`);
},
success: function (response) {
var tbody = $('#example tbody');
var tbody = $("#example tbody");
tbody.empty();
if (response.length !== 0) {
@@ -98,34 +125,35 @@ $(document).ready(function () {
data-awal="${element.awal}"
data-akhir="${element.akhir}"
>
${rowIndex === 0 ? `<td rowspan="${rowspan}" class="p2" style="text-align: center;">${index + 1}</td>` : ''}
${rowIndex === 0 ? `<td rowspan="${rowspan}" class="p2" style="padding: 2px;">${element.notrans}</td>` : ''}
${rowIndex === 0 ? `<td rowspan="${rowspan}" style="padding: 2px;">${element.nama}</td>` : ''}
${rowIndex === 0 ? `<td rowspan="${rowspan}" style="padding: 2px;">${element.alamat}</td>` : ''}
${rowIndex === 0 ? `<td rowspan="${rowspan}" style="padding: 2px;">${element.telepon}</td>` : ''}
${rowIndex === 0 ? `<td rowspan="${rowspan}" style="padding: 2px;">${element.jmember}</td>` : ''}
${rowIndex === 0 ? `<td rowspan="${rowspan}" style="padding: 2px;">${element.dept}</td>` : ''}
${rowIndex === 0 ? `<td rowspan="${rowspan}" width="200" style="text-align: center; padding: 2px;">${element.awal} <br> ${element.akhir}</td>` : ''}
${rowIndex === 0 ? `<td rowspan="${rowspan}" class="p-2" style="padding: 2px;"> ${[...new Set(rows.map(r => `${r.nopol || 'No. Polisi tidak ada'} (${r.vehicle || ''})`))].join('<br>')} </td>` : ''}
${rowIndex === 0 ? `<td rowspan="${rowspan}" style="padding: 2px;">${[...new Set(rows.map(r => r.no_card || 'Tidak ada kartu'))].join('<br>')}</td>` : ''}
${rowIndex === 0 ? `<td rowspan="${rowspan}" class="p2" style="text-align: center;">${index + 1}</td>` : ""}
${rowIndex === 0 ? `<td rowspan="${rowspan}" class="p2" style="padding: 2px;">${element.notrans}</td>` : ""}
${rowIndex === 0 ? `<td rowspan="${rowspan}" style="padding: 2px;">${element.nama}</td>` : ""}
${rowIndex === 0 ? `<td rowspan="${rowspan}" style="padding: 2px;">${element.alamat}</td>` : ""}
${rowIndex === 0 ? `<td rowspan="${rowspan}" style="padding: 2px;">${element.telepon}</td>` : ""}
${rowIndex === 0 ? `<td rowspan="${rowspan}" style="padding: 2px;">${element.jmember}</td>` : ""}
${rowIndex === 0 ? `<td rowspan="${rowspan}" style="padding: 2px;">${element.dept}</td>` : ""}
${rowIndex === 0 ? `<td rowspan="${rowspan}" width="200" style="text-align: center; padding: 2px;">${element.awal} <br> ${element.akhir}</td>` : ""}
${rowIndex === 0 ? `<td rowspan="${rowspan}" class="p-2" style="padding: 2px;"> ${[...new Set(rows.map((r) => `${r.nopol || "No. Polisi tidak ada"} (${r.vehicle || ""})`))].join("<br>")} </td>` : ""}
${rowIndex === 0 ? `<td rowspan="${rowspan}" style="padding: 2px;">${[...new Set(rows.map((r) => r.no_card || "Tidak ada kartu"))].join("<br>")}</td>` : ""}
</tr>
`;
// ${rowIndex === 0 ? `<td rowspan="${rowspan}" class="p-2" style="text-align: center;">
// <button class="btn btn-secondary btn-xs extend-button mb-1" data-id="${element.notrans}">Extend</button>
// <button class="btn btn-primary btn-xs edit-button mb-1" data-id="${element.notrans}">Edit</button>
// <button class="btn btn-danger btn-xs delete-button mb-1" data-id="${element.notrans}">Delete</button>
// </td>` : ''}
// ${rowIndex === 0 ? `<td rowspan="${rowspan}" class="p-2" style="text-align: center;">
// <button class="btn btn-secondary btn-xs extend-button mb-1" data-id="${element.notrans}">Extend</button>
// <button class="btn btn-primary btn-xs edit-button mb-1" data-id="${element.notrans}">Edit</button>
// <button class="btn btn-danger btn-xs delete-button mb-1" data-id="${element.notrans}">Delete</button>
// </td>` : ''}
tbody.append(rowHtml);
});
});
} else {
alert("Data tidak ditemukan.");
$('#example tbody').html(
$("#example tbody").html(
`<tr>
<td colspan="11" style="text-align: center;"><p class="text-danger mt-3">Tidak ditemukan data</p></td>
<tr>`);
<tr>`,
);
}
}
})
})
});
},
});
});
});
+12 -6
View File
@@ -243,6 +243,8 @@ $(document).ready(function () {
cardNumber: cardCollect,
};
console.log("FORM ADD:", allData);
if ($(".tambah-member").valid()) {
$.ajax({
url: $("#add-member").attr("action"),
@@ -250,23 +252,27 @@ $(document).ready(function () {
data: allData,
headers: { "X-CSRF-token": $('meta[name="csrf-token"]').attr("content") },
beforeSend: function () {
tombol.attr("disabled", true);
// tombol.attr("disabled", true);
},
success: function (r) {
// alert('Data berhasil dikirim');
$("#modal-member").modal("hide");
if (r.response == true) {
$("#modal-member").modal("hide");
Swal.fire({
title: "Berhasil!!",
text: "Member anda telah terdaftar !!",
text: "Member berhasil di daftarkan.. !!",
timer: 5000,
showConfirmButton: !1,
// showConfirmButton: !1,
}).then(function () {
// Reload halaman setelah SweetAlert ditutup
location.reload(); // Ini akan me-reload halaman
// location.reload(); // Ini akan me-reload halaman
});
} else if (r.response == false) {
Swal.fire("Oops...", "Terjadi kendala !!", "silahkan hubungi admin", "error");
Swal.fire({
icon: "error",
title: "Oops...",
text: r.message || "Terjadi kendala, silakan hubungi admin.",
});
}
console.log(r);
},
+49 -32
View File
@@ -1,5 +1,13 @@
$(document).ready(function () {
// Pastikan setiap request AJAX non-GET membawa token CSRF terbaru.
// Mencegah 419 "CSRF token mismatch" walau ada call yang lupa kirim header.
$(document).ajaxSend(function (event, jqxhr, settings) {
if (!/^(GET|HEAD|OPTIONS|TRACE)$/i.test(settings.type || '')) {
jqxhr.setRequestHeader('X-CSRF-TOKEN', $('meta[name="csrf-token"]').attr('content'));
}
});
$.validator.addClassRules('no-spinner-time', {
required: true,
min: 1
@@ -30,14 +38,10 @@ $(document).ready(function () {
let nama = $(this).data('nama');
console.log(id);
let url = "{{ route('vehicle-price.show',':id') }}";
url = url.replace(':id', id);
$.ajax({
url: '/setup/master/price/' + id,
type: 'GET',
success: function (r) {
console.log(r);
success: function (r) { console.log(r);
$('#id_mobil').val(r.id_mobil);
$('.title').text('Ubah Tarif Kendaraan ' + nama);
$('#waktu_gratis').val(r.waktu_gratis); // waktu kurang dari n pertama
@@ -53,35 +57,33 @@ $(document).ready(function () {
$('#tarif').val(r.tarif); // tarif berikut nya
$('#waktu_tarif').val(r.waktu_tarif); // per n menit
$('#maksimum').val(r.maksimum);
if(r.time_base == 1) {
$('#maks_cond').val(r.time_base_maks).show();
$('#maksimum-cond').val(0).trigger('change');
$('.maks_cond_day').hide();
$('#maks_cond_day').hide();
} else {
$('#maks_cond').hide();
$('#maksimum-cond').val(1).trigger('change');
$('.maks_cond_day').show();
$('#maks_cond_day').val(r.min_per_hari).show();
}
$('#maksimum_mode').val(r.time_base == 1 ? 'hour' : 'day');
$('#maksimum_hour').val(r.time_base_maks || 24);
$('#maksimum_day_minute').val(r.min_per_hari || 0);
$('#maksimum_mode').trigger('change');
$('#denda').val(r.denda);
$('#denda_member').val(r.denda_member);
$('#denda_only_casual').prop('checked', Number(r.denda_only_casual) === 1);
$('#denda_only').prop('checked', Number(r.denda_only) === 1);
$('#asuransi_incl').val(r.asuransi_incl || 0);
bootstrap.Tab.getOrCreateInstance(document.querySelector('#modal-vehicle .nav-link[href="#tarif"]')).show();
},
error: function (xhr) {
Swal.fire({icon: 'error', title: 'Gagal memuat tarif', text: xhr.responseJSON?.message || 'Data tarif tidak ditemukan.'});
}
});
});
$('#maksimum-cond').on('change', function() {
let selectMaxCond = $(this).val();
if (selectMaxCond == 0 ) {
$('#maks_cond').show().val(24);
$('#maksimum_mode').on('change', function() {
let mode = $(this).val();
if (mode === 'hour') {
$('#maksimum_hour').show();
$('.maks_cond_day').hide();
$('#maks_cond_day').val(1).hide();
} else if (selectMaxCond == 1) {
$('#maks_cond').hide();
$('.maks_cond_day').show();
$('#maks_cond_day').show().val(60);
$('#maksimum_day_minute').hide();
} else {
$('#maksimum_hour').hide();
$('.maks_cond_day').show();
$('#maksimum_day_minute').show();
}
});
@@ -91,11 +93,16 @@ $(document).ready(function () {
return false;
}
let id = $('#id_mobil').val();
if (!id) {
Swal.fire({icon: 'warning', title: 'ID kendaraan kosong', text: 'Tutup modal lalu klik tombol Tarif lagi.'});
return false;
}
let vehicleRate = $('#show-tarif').serialize();
let id = $('#id_mobil').val();
let url = $(this).data('url');
url = url.replace(':id', id);
url = url.replace(':id', encodeURIComponent(id));
console.log(url);
$.ajax({
@@ -106,11 +113,21 @@ $(document).ready(function () {
},
data: vehicleRate,
success: function(r) {
console.log(r);
if (!r.status) {
Swal.fire({icon: 'info', title: r.message || 'Tidak ada perubahan data'});
return;
}
$('#modal-vehicle').modal('hide');
}
Swal.fire({icon: 'success', title: 'Tarif diperbarui', timer: 1500, showConfirmButton: false});
},
error: function(xhr) {
if (xhr.status === 419) {
Swal.fire({icon: 'warning', title: 'Sesi berakhir', text: 'Token CSRF kedaluwarsa. Halaman akan dimuat ulang untuk token baru.', confirmButtonText: 'Muat ulang'}).then(() => window.location.reload());
return;
}
Swal.fire({icon: 'error', title: 'Gagal memperbarui tarif', text: xhr.responseJSON?.message || 'Silakan periksa kembali data tarif.'});
}
});
});
});
});
+123 -79
View File
@@ -1,74 +1,101 @@
$(document).ready(function () {
$(document).on('change', '.form-select', function () {
if ($('option:selected', this).val() == '') {
$(".nama").css('display', 'none');
$(".nopol").css('display', 'none');
$(".nocard").css('display', 'none');
$(".notrans").css('display', 'none');
$(document).on("change", ".form-select", function () {
if ($("option:selected", this).val() == "") {
$(".nama").css("display", "none");
$(".nopol").css("display", "none");
$(".nocard").css("display", "none");
$(".notrans").css("display", "none");
// $(".site").val('');
} else if ($('option:selected', this).val() == 'nama') {
$(".nama").css('display', 'block');
$(".nopol").css('display', 'none');
$(".nocard").css('display', 'none');
$(".notrans").css('display', 'none');
$(".input-default").val('');
} else if ($('option:selected', this).val() == 'nopol') {
$(".nama").css('display', 'none');
$(".nopol").css('display', 'block');
$(".nocard").css('display', 'none');
$(".notrans").css('display', 'none');
$(".input-default").val('');
} else if ($('option:selected', this).val() == 'nocard') {
$(".nama").css('display', 'none');
$(".nopol").css('display', 'none');
$(".nocard").css('display', 'block');
$(".notrans").css('display', 'none');
$(".input-default").val('');
} else if ($('option:selected', this).val() == 'notrans') {
$(".nama").css('display', 'none');
$(".nopol").css('display', 'none');
$(".nocard").css('display', 'none');
$(".notrans").css('display', 'block');
$(".input-default").val('');
} else if ($("option:selected", this).val() == "nama") {
$(".nama").css("display", "block");
$(".nopol").css("display", "none");
$(".nocard").css("display", "none");
$(".notrans").css("display", "none");
$(".input-default").val("");
} else if ($("option:selected", this).val() == "nopol") {
$(".nama").css("display", "none");
$(".nopol").css("display", "block");
$(".nocard").css("display", "none");
$(".notrans").css("display", "none");
$(".input-default").val("");
} else if ($("option:selected", this).val() == "nocard") {
$(".nama").css("display", "none");
$(".nopol").css("display", "none");
$(".nocard").css("display", "block");
$(".notrans").css("display", "none");
$(".input-default").val("");
} else if ($("option:selected", this).val() == "notrans") {
$(".nama").css("display", "none");
$(".nopol").css("display", "none");
$(".nocard").css("display", "none");
$(".notrans").css("display", "block");
$(".input-default").val("");
} else {
$(".position").css('display', 'none');
$(".level-area").css('display', 'none');
$(".input-default").val('');
$(".position").css("display", "none");
$(".level-area").css("display", "none");
$(".input-default").val("");
}
});
var url = $('#example').data('url');
$('#search-button').on('click', function () {
// Ambil nilai dari selected option
var option = $('.select-option').val();
var url = $("#example").data("url");
// Cek jika option yang dipilih bukan 'Pencarian Data...' yang berarti pilihan valid
if (option && option !== '') {
var inputField = $('.input-default:visible');
$("#search-button").on("click", function () {
let searchBy = $("#search-by").val();
let searchValue = $("#search-value").val().trim();
// Periksa apakah input tersebut kosong
if (inputField.length === 0 || inputField.val().trim() === '') {
// Jika kosong, tampilkan alert
alert('Harap masukkan ' + (option === 'nopol' ? 'No. Polisi' : option === 'nocard' ? 'No. Card' : option === 'nama' ? 'Nama' : option === 'notrans' ? 'No. Transaksi' : 'No. Transaksi'));
inputField.focus();
return; // Hentikan proses jika input kosong
}
let memberType = $("#member-type").val();
let department = $("#department").val();
let vehicle = $("#vehicle").val();
let isActive = $("#isActive").is(":checked") ? 1 : 0;
// =========================
// VALIDASI PENCARIAN
// =========================
if (searchBy !== "" && searchValue === "") {
let label = {
nama: "Nama",
alamat: "Alamat",
nopol: "No. Polisi",
nocard: "No. Card",
notrans: "No. Transaksi",
};
let message = "Harap masukkan " + (label[searchBy] || "kata kunci");
// Highlight input
$("#search-value").addClass("is-invalid").focus();
// Tampilkan pesan
$("#search-status").removeClass("text-success").addClass("text-danger").text(message);
$("#search-value").focus();
return;
}
console.log(option);
var formData = $('#search-form .input-default:visible').val();
console.log(formData);
let searchData = {
searchBy: searchBy,
searchValue: searchValue,
memberType: memberType,
department: department,
vehicle: vehicle,
isActive: isActive,
};
// =========================
// AJAX
// =========================
$.ajax({
url: url,
type: "POST",
data: $('#search-form').serialize(),
headers: {'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')},
dataType: 'json',
// data: $("#search-form").serialize(),
data: searchData,
headers: { "X-CSRF-TOKEN": $('meta[name="csrf-token"]').attr("content") },
dataType: "json",
success: function (response) {
var tbody = $('#example tbody');
var tbody = $("#example tbody");
tbody.empty();
if (response.length !== 0) {
@@ -98,34 +125,51 @@ $(document).ready(function () {
data-awal="${element.awal}"
data-akhir="${element.akhir}"
>
${rowIndex === 0 ? `<td rowspan="${rowspan}" class="p2" style="text-align: center;">${index + 1}</td>` : ''}
${rowIndex === 0 ? `<td rowspan="${rowspan}" class="p2" style="padding: 2px;">${element.notrans}</td>` : ''}
${rowIndex === 0 ? `<td rowspan="${rowspan}" style="padding: 2px;">${element.nama}</td>` : ''}
${rowIndex === 0 ? `<td rowspan="${rowspan}" style="padding: 2px;">${element.alamat}</td>` : ''}
${rowIndex === 0 ? `<td rowspan="${rowspan}" style="padding: 2px;">${element.telepon}</td>` : ''}
${rowIndex === 0 ? `<td rowspan="${rowspan}" style="padding: 2px;">${element.jmember}</td>` : ''}
${rowIndex === 0 ? `<td rowspan="${rowspan}" style="padding: 2px;">${element.dept}</td>` : ''}
${rowIndex === 0 ? `<td rowspan="${rowspan}" width="200" style="text-align: center; padding: 2px;">${element.awal} <br> ${element.akhir}</td>` : ''}
${rowIndex === 0 ? `<td rowspan="${rowspan}" class="p-2" style="padding: 2px;"> ${[...new Set(rows.map(r => `${r.nopol || 'No. Polisi tidak ada'} (${r.vehicle || ''})`))].join('<br>')} </td>` : ''}
${rowIndex === 0 ? `<td rowspan="${rowspan}" style="padding: 2px;">${[...new Set(rows.map(r => r.no_card || 'Tidak ada kartu'))].join('<br>')}</td>` : ''}
${rowIndex === 0 ? `<td rowspan="${rowspan}" class="p2 is-invalid" style="text-align: center;" width="3%">${index + 1}</td>` : ""}
${rowIndex === 0 ? oldAdmin(notrans, rowspan) : ""}
${rowIndex === 0 ? `<td rowspan="${rowspan}" style="padding: 2px;" width="8%">${element.nama}</td>` : ""}
${rowIndex === 0 ? `<td rowspan="${rowspan}" style="padding: 2px;" width="10%">${element.alamat}</td>` : ""}
${rowIndex === 0 ? `<td rowspan="${rowspan}" style="padding: 2px;">${element.telepon}</td>` : ""}
${rowIndex === 0 ? `<td rowspan="${rowspan}" style="padding: 2px;">${element.jmember}</td>` : ""}
${rowIndex === 0 ? `<td rowspan="${rowspan}" style="padding: 2px;">${element.dept}</td>` : ""}
${rowIndex === 0 ? `<td rowspan="${rowspan}" width="200" style="text-align: center; padding: 2px;" width="11%">${element.awal} <br> ${element.akhir}</td>` : ""}
${rowIndex === 0 ? `<td rowspan="${rowspan}" class="p-2" style="padding: 2px;" width="10%"> ${[...new Set(rows.map((r) => `${r.nopol || "No. Polisi tidak ada"} (${r.vehicle || ""})`))].join("<br>")} </td>` : ""}
${rowIndex === 0 ? `<td rowspan="${rowspan}" style="text-align: center; padding: 2px;">${[...new Set(rows.map((r) => r.no_card || "Tidak ada kartu"))].join("<br>")}</td>` : ""}
</tr>
`;
// ${rowIndex === 0 ? `<td rowspan="${rowspan}" class="p-2" style="text-align: center;">
// <button class="btn btn-secondary btn-xs extend-button mb-1" data-id="${element.notrans}">Extend</button>
// <button class="btn btn-primary btn-xs edit-button mb-1" data-id="${element.notrans}">Edit</button>
// <button class="btn btn-danger btn-xs delete-button mb-1" data-id="${element.notrans}">Delete</button>
// </td>` : ''}
// ${rowIndex === 0 ? `<td rowspan="${rowspan}" class="p-2" style="text-align: center;">
// <button class="btn btn-secondary btn-xs extend-button mb-1" data-id="${element.notrans}">Extend</button>
// <button class="btn btn-primary btn-xs edit-button mb-1" data-id="${element.notrans}">Edit</button>
// <button class="btn btn-danger btn-xs delete-button mb-1" data-id="${element.notrans}">Delete</button>
// </td>` : ''}
tbody.append(rowHtml);
});
});
} else {
alert("Data tidak ditemukan.");
$('#example tbody').html(
// alert("Data tidak ditemukan.");
$("#example tbody").html(
`<tr>
<td colspan="11" style="text-align: center;"><p class="text-danger mt-3">Tidak ditemukan data</p></td>
<tr>`);
<tr>`,
);
}
}
})
})
});
},
});
});
function oldAdmin(value, rowSpan) {
let hasSlash = value.includes("/");
if (hasSlash) {
return `<td rowspan="${rowSpan}" class="p2 text-danger" style="padding: 2px;" width="17%">
${value} <i class="mdi mdi-help-circle-outline ms-1"
data-bs-toggle="tooltip"
data-bs-placement="bottom"
title="Gunakan manufacture versi lama">
</i>
</td>`;
}
return `<td rowspan="${rowSpan}" class="p2" style="padding: 2px;" width="17%">
${value}
</td>`;
}
});
+2 -2
View File
@@ -255,7 +255,7 @@ $(document).ready(function () {
success: function (r) {
// alert('Data berhasil dikirim');
$("#modal-member").modal("hide");
if (r.response == true) {
if (r.status == true) {
Swal.fire({
title: "Berhasil!!",
text: "Member anda telah terdaftar !!",
@@ -265,7 +265,7 @@ $(document).ready(function () {
// Reload halaman setelah SweetAlert ditutup
location.reload(); // Ini akan me-reload halaman
});
} else if (r.response == false) {
} else if (r.status == false) {
Swal.fire("Oops...", "Terjadi kendala !!", "silahkan hubungi admin", "error");
}
console.log(r);