ajax index
unknown
plain_text
a year ago
6.6 kB
6
Indexable
<script> // Variabel untuk menyimpan instance chart let myChart; let umpanElement = document.querySelector('.umpan'); let textElement = document.querySelector('.centered-text'); // Fungsi untuk membuat chart pertama kali function createChart(data) { var ctx1 = document.getElementById("chart-line").getContext("2d"); var gradientStroke1 = ctx1.createLinearGradient(0, 230, 0, 50); gradientStroke1.addColorStop(1, 'rgba(94, 114, 228, 0.2)'); gradientStroke1.addColorStop(0.2, 'rgba(94, 114, 228, 0.0)'); gradientStroke1.addColorStop(0, 'rgba(94, 114, 228, 0)'); myChart = new Chart(ctx1, { type: "bar", data: { labels: data.labels, datasets: [{ label: "Tikus", tension: 0.4, borderWidth: 1, borderColor: "#5e72e4", backgroundColor: "#5e72e4", borderWidth: 1, fill: true, data: data.values }], }, options: { responsive: true, maintainAspectRatio: false, plugins: { legend: { display: false, } }, interaction: { intersect: false, mode: 'index', }, scales: { y: { grid: { drawBorder: false, display: true, drawOnChartArea: true, drawTicks: false, borderDash: [5, 5] }, ticks: { display: true, padding: 20, color: '#ccc', font: { size: 16, family: "Open Sans", style: 'bold', lineHeight: 2 }, } }, x: { grid: { drawBorder: false, display: false, drawOnChartArea: false, drawTicks: false, borderDash: [5, 5] }, ticks: { display: true, color: '#ccc', padding: 20, font: { size: 16, family: "Open Sans", style: 'bold', lineHeight: 2 }, } }, }, }, }); } // Fungsi untuk memperbarui data pada chart function updateChart(data) { myChart.data.labels = data.labels; myChart.data.datasets[0].data = data.values; myChart.update(); } function fetchDataAndUpdateTikusTertangkap() { $.ajax({ url: '/tikus/public/getTikusTertangkapHariIni', type: 'GET', success: function (response) { let tikusTertangkap = response.tikus_tertangkap; $('#tikus-terjangkap-hari-ini').text(tikusTertangkap); } }); } // Fungsi untuk memanggil ajax dan update chart setiap 5 detik function fetchDataAndUpdateChart() { $.ajax({ url: '/tikus/public/getDataTikus', type: 'GET', success: function (response) { let tikusData = response.tikus; let labels = []; let dataValues = []; let today = new Date(); // Menghitung tanggal satu minggu yang lalu let oneWeekAgo = new Date(today.getTime() - (7 * 24 * 60 * 60 * 1000)); tikusData.forEach(function (tikus) { let tanggal = new Date(tikus.date); // Menyesuaikan zona waktu dengan Asia/Jakarta tanggal.setTime(tanggal.getTime() + (tanggal.getTimezoneOffset() * 60 * 1000)); if (tanggal >= oneWeekAgo && tanggal <= today) { let formattedDate = tanggal.getDate() + '-' + (tanggal.getMonth() + 1) + '-' + tanggal.getFullYear(); labels.push(formattedDate); dataValues.push(tikus.total); } }); // Membuat chart jika belum ada if (!myChart) { createChart({ labels, values: dataValues }); } else { // Memperbarui chart dengan data baru updateChart({ labels, values: dataValues }); } } }); } function updateUmpanHeightAndText(jarak) { let tinggiCm = Math.max(0, 10 - jarak); // Mengubah nilai dari 10 ke 0 cm let heightPercentage = tinggiCm * 10; // Mengonversi tinggi cm ke persen untuk elemen tangki // Mengubah tinggi background aqua umpanElement.style.height = heightPercentage + '%'; // Mengubah teks persentase menjadi teks dalam cm textElement.innerText = tinggiCm + ' cm'; } // function updateUmpanText(jarak) { // // Menghitung persentase tinggi berdasarkan jarak // } function fetchDataAndUpdateUmpan() { $.ajax({ url: '/tikus/public/getDataTangki', type: 'GET', success: function (response) { let jarak = response.jarak; // Mengambil nilai jarak dari respons updateUmpanHeightAndText(jarak); // Memanggil fungsi untuk mengubah tinggi dan teks } }); } function fetchDataAndUpdateCard() { $.ajax({ url: '/tikus/public/getTotalUmpan', type: 'GET', success: function (response) { let jarak = response.jarak; // Mengambil nilai jarak dari respons let jarakWithText = jarak + " M"; // Menambahkan teks "Meter" setelah nilai jarak $('#totalUmpan').text(jarakWithText); } }); } // Memanggil fungsi fetchDataAndUpdateChart setiap 5 detik setInterval(function () { fetchDataAndUpdateChart(); fetchDataAndUpdateTikusTertangkap(); fetchDataAndUpdateUmpan(); fetchDataAndUpdateCard(); }, 5000); // Memanggil fetchDataAndUpdateChart untuk pertama kali saat halaman dimuat fetchDataAndUpdateChart(); fetchDataAndUpdateTikusTertangkap(); fetchDataAndUpdateUmpan(); fetchDataAndUpdateCard(); </script>
Editor is loading...
Leave a Comment