datatableMasterMenu.bootstrapTable({
url: "/dashboard/datatable/menu",
showColumns: true,
showColumnsToggleAll: true,
showRefresh: true,
sortable: true,
search: true,
searchOnEnterKey: false,
searchHighlight: true,
pagination: true,
serverSide: true,
pageSize: 10,
pageList: [10, 20, 30, 40, 50, 100, 200],
cookie: true,
icons: {
refresh: "fas fa-sync-alt", // atau ganti ke icon lain
columns: "fas fa-th-large"
},
columns: [
{
title: "Action",
field: 'master_menu_id',
formatter: function(value, row) {
let statusLabel = '';
if (!row.status) {
statusLabel = `
Tidak Aktif
`;
}
let buttons = ''
buttons += `
`
buttons += `
`
buttons += `
`
buttons +=`
`
return `
${statusLabel}
${buttons}
`;
},
width: 120
},
{
title:"Nama Menu",
formatter:function(value, row){
return row?.kalori[0]?.nilai_kalori ? row?.nama_menu + ' ' + '(' + row?.kalori[0]?.nilai_kalori + ' kal)' : row?.nama_menu
},
width: 300
},
{
title:"Harga",
field:"master_menu_id",
formatter: function(value, row) {
return `
- Public : Rp ${parseInt(row.harga_public).toLocaleString('id-ID')}
- Karyawan : Rp ${parseInt(row.harga_karyawan).toLocaleString('id-ID')}
`
},
width: 200
},
{
title:"Kategori",
field:"jenis_menu",
},
{
title: "Kategori Menu",
field: "master_menu_id",
formatter: function (value, row) {
if (row?.apakah_someday) {
return `Sameday`;
}
return `Menu Normal`;
}
},
{
title: "Waktu Makan",
field: "master_menu_id",
formatter: function (value, row) {
if (row?.apakah_menu_siang && row?.apakah_menu_sore) {
return `Makan Siang & Sore`;
} else if (row?.apakah_menu_siang) {
return `Makan Siang`;
} else if (row?.apakah_menu_sore) {
return `Makan Sore`;
} else {
return `-`;
}
},
width: 250
},
{
title:"Tanggal Tersedia",
field:"master_menu_id",
formatter: function(value, row){
if(row.apakah_someday) return 'Senin - Minggu'
let tglAvlb = '';
tglAvlb = row?.tgl ? row?.tgl.map(item => item?.tgl_harian).join(', ') : '-';
return tglAvlb;
}
},
],
rowStyle: function(row, index) {
if (!row.status) {
return {
classes: 'row-disabled'
};
}
return {};
}
});
// Tambahkan event listener pada elemen induk (misalnya, body)
document.body.addEventListener('click', function(event) {
if (event.target.type === 'checkbox' && event.target.id === 'switchActiveMenu') {
const isChecked = event.target.checked;
const masterMenuId = event.target.closest('.form-check').getAttribute('data-master_menu_id');
toggleActiveMenu(masterMenuId, isChecked);
}
});
// Fungsi untuk menangani aktivasi atau deaktivasi menu
function toggleActiveMenu(masterMenuId, isChecked) {
fetch(`/dashboard/menu/switch/${masterMenuId}/${isChecked}`, {
headers: {
'X-CSRF-TOKEN': document.querySelector('input[name="_token"]').value,
},
})
.then(response => {
if (!response.ok) {
throw new Error('Network response was not ok');
}
return response.json();
})
.then(data => {
Swal.fire({
icon: 'success',
title: 'Berhasil',
text: 'Status Menu diperbarui',
timer: 1500,
showConfirmButton: false,
backdrop: true,
});
datatableMasterMenu.bootstrapTable('refresh');
})
.catch(err => {
console.error('Error:', err);
Swal.fire({
icon: 'error',
title: 'Gagal',
text: err.message || 'Terjadi kesalahan pada server.',
});
});
}