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 `` }, 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.', }); }); }