let currentPumpData; let selectedFuelType; let fuelTypeWarnSent; // Fuel Consumption Chart Dialog let fuelChart, speedChart, consumptionChart; let toggleChartFocusShortcut; let chartTimestampsIndex = 1; let chartTimestamps = [ 15, 30, 60, 90, 120, 150, 180 ]; let isRecording; window.addEventListener("message", async function(event) { const item = event.data; if (item.data) { currentPumpData = item.data; } if (item.resourceName) { Utils.setResourceName(item.resourceName); } if (item.utils) { await Utils.loadLanguageModules(item.utils); Utils.post("setNuiVariablesLoaded", null, "setNuiVariablesLoaded"); } if (item.type === "copyToClipboard") { const el = document.createElement("textarea"); el.value = item.text; document.body.appendChild(el); el.select(); document.execCommand("copy"); document.body.removeChild(el); } if (item.openMainUI) { if (currentPumpData.isElectric) { $("#electric-time-to-recharge").html(`${Utils.translate("electricInterface.chargerAmount.timeToRechargeText")} `); $("#electric-charger-type-title").text(Utils.translate("electricInterface.chargerType.title")); $("#electric-charger-type-fast").text(Utils.translate("electricInterface.chargerType.fast.title")); $("#electric-charger-type-normal").text(Utils.translate("electricInterface.chargerType.normal.title")); $("#electric-charger-type-label-item-fast-price").text(Utils.translate("electricInterface.chargerType.pricePerKWh").format(Utils.currencyFormat(currentPumpData.pricePerLiter.electricfast))); $("#electric-charger-type-label-item-normal-price").text(Utils.translate("electricInterface.chargerType.pricePerKWh").format(Utils.currencyFormat(currentPumpData.pricePerLiter.electricnormal))); $("#electric-charger-type-label-item-fast-power").text(Utils.translate("electricInterface.chargerType.fast.power")); $("#electric-charger-type-label-item-normal-power").text(Utils.translate("electricInterface.chargerType.normal.power")); $("#electric-charger-continue-type-button").text(Utils.translate("electricInterface.continueButton")); $("#electric-charger-amount-title").text(Utils.translate("electricInterface.chargerAmount.title")); $("#electric-charger-amount-input").attr("placeholder", Utils.translate("electricInterface.chargerAmount.placeholder")); $("#electric-charger-continue-amount-button").text(Utils.translate("electricInterface.continueButton")); $("#electric-charger-payment-title").text(Utils.translate("electricInterface.chargerPayment.title")); $("#electric-charger-payment-bank").text(Utils.translate("electricInterface.chargerPayment.bank")); $("#electric-charger-payment-money").text(Utils.translate("electricInterface.chargerPayment.money")); if (currentPumpData.stationStock.electricfast == 0) { $("#electric-charger-fast-label-wrapper") .attr("data-tooltip", Utils.translate("electricInterface.outOfStock")) .attr("data-tooltip-location", "top"); $("#charger-type-fast").prop("disabled", true); } else { $("#electric-charger-fast-label-wrapper") .removeAttr("data-tooltip") .removeAttr("data-tooltip-location"); $("#charger-type-fast").prop("disabled", false); } if (currentPumpData.stationStock.electricnormal == 0) { $("#electric-charger-normal-label-wrapper") .attr("data-tooltip", Utils.translate("electricInterface.outOfStock")) .attr("data-tooltip-location", "top"); $("#charger-type-normal").prop("disabled", true); } else { $("#electric-charger-normal-label-wrapper") .removeAttr("data-tooltip") .removeAttr("data-tooltip-location"); $("#charger-type-normal").prop("disabled", false); } $(".electric-charger-type-container").css("display", ""); $(".electric-charger-amount-container").css("display", "none"); $(".electric-charger-payment-container").css("display", "none"); $("#electric-charger-container").fadeIn(200); } else { if (currentPumpData.pumpModel == "prop_gas_pump_1a" || currentPumpData.pumpModel == "prop_gas_pump_1b" || currentPumpData.pumpModel == "prop_gas_pump_1c" || currentPumpData.pumpModel == "prop_gas_pump_1d") { $("#gas-pump-container-image").attr("src", `images/${currentPumpData.pumpModel}.png`); } else { $("#gas-pump-container-image").attr("src", `images/prop_gas_pump_1b.png`); } fuelTypeWarnSent = false; changeSelectedFuelType(currentPumpData.currentFuelType); $(".vehicle-fuel").text(Utils.translate("pumpInterface.vehicleFuel").format(`${Utils.numberFormat(currentPumpData.vehicleFuel, 1)} / ${Utils.numberFormat(currentPumpData.vehicleTankSize, 0)}`)); $(".vehicle-fuel").attr("data-tooltip", Utils.translate("pumpInterface.vehicleFuelTooltip")); $(".bank-balance").text(Utils.currencyFormat(currentPumpData.bankBalance, 2)); $(".cash-balance").text(Utils.currencyFormat(currentPumpData.cashBalance, 2)); $(".fuel-type-button.regular").text(Utils.translate("pumpInterface.fuelTypes.regular")); $(".fuel-type-button.plus").text(Utils.translate("pumpInterface.fuelTypes.plus")); $(".fuel-type-button.premium").text(Utils.translate("pumpInterface.fuelTypes.premium")); $(".fuel-type-button.diesel").text(Utils.translate("pumpInterface.fuelTypes.diesel")); $(".confirm-button").text(Utils.translate("pumpInterface.confirm")); $("#confirm-refuel-payment-modal-title").text(Utils.translate("confirmRefuelModal.title")); $("#confirm-refuel-payment-modal-pay-bank").text(Utils.translate("confirmRefuelModal.paymentBank")); $("#confirm-refuel-payment-modal-pay-cash").text(Utils.translate("confirmRefuelModal.paymentCash")); $("#confirm-jerry-can-payment-modal-title").text(Utils.translate("confirmBuyJerryCanModal.title")); $("#confirm-jerry-can-payment-modal-desc").text(Utils.currencyFormat(currentPumpData.jerryCan.price, 2)); $("#confirm-jerry-can-payment-modal-pay-bank").text(Utils.translate("confirmBuyJerryCanModal.paymentBank")); $("#confirm-jerry-can-payment-modal-pay-cash").text(Utils.translate("confirmBuyJerryCanModal.paymentCash")); $("#confirm-fuel-type-modal-title").text(Utils.translate("confirmFuelChangeModal.title")); $("#confirm-fuel-type-modal-desc").text(Utils.translate("confirmFuelChangeModal.description")); $("#confirm-fuel-type-modal-confirm").text(Utils.translate("confirmation_modal_confirm_button")); $("#confirm-fuel-type-modal-cancel").text(Utils.translate("confirmation_modal_cancel_button")); if (!currentPumpData.jerryCan.enabled) { $(".gas-pump-interactive-button").css("display", "none"); } updateFuelAmountDisplay(true); $("#gas-pump-container").fadeIn(200); } } if (item.hideMainUI) { $("#gas-pump-container").fadeOut(200); $("#electric-charger-container").fadeOut(200); } if (item.showRefuelDisplay) { if (item.isElectric) { let percentageOfTankFilled = (item.currentDisplayFuelAmount / item.currentVehicleTankSize) * 100; $("#recharge-display-title").text(Utils.translate("rechargerDisplay.title")); $("#recharge-display-battery-level-span").text(`${Utils.numberFormat(percentageOfTankFilled, 0)}%`); $("#recharge-display-battery-liquid").css("width", `${percentageOfTankFilled}%`); $("#recharge-display-remaining-time-title").text(Utils.translate("rechargerDisplay.remainingTimeText")); updateRechargeDisplay((item.currentVehicleTankSize - item.currentDisplayFuelAmount), item.fuelTypePurchased); $("#recharge-display").fadeIn(200); } else { $("#refuel-display-pump-value").text(Utils.numberFormat(item.remainingFuelAmount, 2)); $("#refuel-display-car-value").text(`${Utils.numberFormat(item.currentDisplayFuelAmount, 2)}/${Utils.numberFormat(item.currentVehicleTankSize, 2)}`); $(".refuel-display-liters").text(Utils.translate("pumpRefuelDisplay.liters")); $("#refuel-display-car-label").text(Utils.translate("pumpRefuelDisplay.carTank")); $("#refuel-display-pump-label").text(Utils.translate("pumpRefuelDisplay.remaining")); $("#refuel-display").fadeIn(200); } } if (item.hideRefuelDisplay) { $("#refuel-display").fadeOut(200); $("#recharge-display").fadeOut(200); } if (item.showFuelConsumptionChart) { toggleChartFocusShortcut = item.focusShortcut; isRecording = item.isRecording; createFuelConsumptionChartObject(); openFuelConsumptionChart(); setFuelConsumptionChartPosition(item.position); updateFuelConsumptionChart({ fuel: null, speed: null, consumption: null }); } if (item.updateFuelConsumptionChart) { updateFuelConsumptionChart(item.fuelConsumptionData); } if (item.hideFuelConsumptionChart) { updateFuelConsumptionChart({ fuel: null, speed: null, consumption: null }); $("#chart-dialog").fadeOut(); // fuelChart.destroy(); // speedChart.destroy(); // consumptionChart.destroy(); } }); function updateRechargeDisplay(remainingFuelAmount, chargerType) { if (chargerType == "electricfast") chargerType = "fast"; if (chargerType == "electricnormal") chargerType = "normal"; if (chargerType && (chargerType === "fast" || chargerType === "normal")) { // Calculate the time to recharge based on remaining fuel amount and charger type's time per unit let timeToRecharge = remainingFuelAmount * currentPumpData.electric.chargeTypes[chargerType].time; // Convert time to minutes and seconds let timeToRechargeMinutes = Math.floor(timeToRecharge / 60); let timeToRechargeSeconds = timeToRecharge % 60; // Update the display with calculated time $("#recharge-display-remaining-time-value").text(Utils.translate("rechargerDisplay.remainingTimeValue").format(Utils.numberFormat(timeToRechargeMinutes, 0), Utils.numberFormat(timeToRechargeSeconds, 0))); } else { console.log("Invalid charger type or no charger type selected"); } } /*================= FUNCTIONS =================*/ function changeSelectedFuelType(fuelType) { if (fuelType == "regular" || fuelType == "plus" || fuelType == "premium" || fuelType == "diesel") { $(".fuel-type-button").removeClass("selected"); $(`.fuel-type-button.${fuelType}`).addClass("selected"); $(".price-per-liter").text(Utils.currencyFormat(currentPumpData.pricePerLiter[fuelType], 2)); $(".station-stock").text(Utils.translate("pumpInterface.stationStock").format(Utils.numberFormat(currentPumpData.stationStock[fuelType]))); selectedFuelType = fuelType; } else { console.log("Invalid fuel type chosen: " + fuelType); } } // Show the modal when confirmRefuel is called function confirmRefuel() { if (fuelTypeWarnSent == false && currentPumpData.currentFuelType != selectedFuelType && currentPumpData.vehicleFuel > 0) { fuelTypeWarnSent = true; $("#confirm-fuel-type-modal").fadeIn(); } else { let $input = $("#input-fuel-amount"); let fuelAmount = parseInt($input.val()); $("#confirm-refuel-payment-modal-desc").text(Utils.translate("confirmRefuelModal.description").format(fuelAmount, Utils.translate("pumpInterface.fuelTypes."+selectedFuelType), Utils.currencyFormat(fuelAmount * currentPumpData.pricePerLiter[selectedFuelType]))); $("#confirm-refuel-payment-modal").fadeIn(); } } // Empty vehicle's tank after user confirm fuel type change function changeVehicleFuelType() { closeModal(); Utils.post("changeVehicleFuelType", { selectedFuelType }); currentPumpData.vehicleFuel = 0; $(".vehicle-fuel").text(Utils.translate("pumpInterface.vehicleFuel").format(Utils.numberFormat(currentPumpData.vehicleFuel, 2))); } // Confirm the buy jerry can action function openBuyJerryCanModal() { closeModal(); $("#confirm-jerry-can-payment-modal").fadeIn(); } // Hide the modal function closeModal() { $(".modal").fadeOut(); } function confirmRefuelPayment(paymentMethod) { let $input = $("#input-fuel-amount"); let fuelAmount = parseInt($input.val()); Utils.post("confirmRefuel", { selectedFuelType, fuelAmount, paymentMethod }); closeModal(); } function confirmJerryCanPayment(paymentMethod) { Utils.post("confirmJerryCanPurchase", { paymentMethod }); closeModal(); } function increaseZoom() { // Get the current zoom level let currentZoom = parseFloat($("#gas-pump-container").css("zoom")) || 1; // Increase zoom by 5% let newZoom = currentZoom + 0.05; // Limit the zoom to a maximum of 1.4 (140%) if (newZoom > 1.4) { newZoom = 1.4; } // Apply the new zoom level $("#gas-pump-container").css("zoom", newZoom); } function decreaseZoom() { // Get the current zoom level let currentZoom = parseFloat($("#gas-pump-container").css("zoom")) || 1; // Decrease zoom by 5% let newZoom = currentZoom - 0.05; // Limit the zoom to a minimum of 0.8 (80%) if (newZoom < 0.8) { newZoom = 0.8; } // Apply the new zoom level $("#gas-pump-container").css("zoom", newZoom); } // Function to update the display with the 'L' suffix function updateFuelAmountDisplay(setToMax = false) { let $input = $("#input-fuel-amount"); let value = parseInt($input.val()); // Set value to 1 if it's not a positive number if (isNaN(value) || value <= 0) { value = 1; } // Don't let it purchase more L than the vehicle can hold in the tank if (setToMax || (!isNaN(value) && value > currentPumpData.vehicleTankSize - currentPumpData.vehicleFuel)) { value = Math.floor(currentPumpData.vehicleTankSize - currentPumpData.vehicleFuel); } $input.val(value + " L"); } // Pagination for electric chargers function chargerTypeContinue() { let chargerType = getSelectedChargerType(); if (chargerType && (chargerType == "fast" || chargerType == "normal")) { $("#electric-charger-amount-input").val(Math.floor(currentPumpData.vehicleTankSize - currentPumpData.vehicleFuel)); calculateTimeToRecharge(); $("#electric-charger-amount-type-selected").text(Utils.translate("electricInterface.chargerAmount.typeSelected").format(Utils.translate(`electricInterface.chargerType.${chargerType}.title`))); $(".electric-charger-type-container").css("display", "none"); $(".electric-charger-amount-container").css("display", ""); } } function chargerAmountContinue() { let $input = $("#electric-charger-amount-input"); let currentValue = parseInt($input.val()) || 0; let newWidthPercentage = ((currentPumpData.vehicleFuel / currentPumpData.vehicleTankSize) * 100) + ((currentValue / currentPumpData.vehicleTankSize) * 100); if (currentValue <= 0 || newWidthPercentage > 100) { return; } let chargerType = getSelectedChargerType(); $("#electric-charger-pay-button").text(Utils.translate("electricInterface.chargerPayment.payButton").format(Utils.currencyFormat(currentValue * currentPumpData.pricePerLiter["electric"+chargerType], 2))); $(".electric-charger-amount-container").css("display", "none"); $(".electric-charger-payment-container").css("display", ""); } function chargerAmountReturn() { $(".electric-charger-type-container").css("display", ""); $(".electric-charger-amount-container").css("display", "none"); $(".electric-charger-payment-container").css("display", "none"); } function confirmRecharge() { let $input = $("#electric-charger-amount-input"); let fuelAmount = parseInt($input.val()) || 0; Utils.post("confirmRefuel", { selectedFuelType: "electric" + getSelectedChargerType(), fuelAmount, paymentMethod: getSelectedElectricPaymentMethod() }); } function chargerPaymentReturn() { $(".electric-charger-type-container").css("display", "none"); $(".electric-charger-amount-container").css("display", ""); $(".electric-charger-payment-container").css("display", "none"); } function getSelectedChargerType() { const selectedInput = $("input[name='charger-type']:checked"); return selectedInput.length && !selectedInput.prop("disabled") ? selectedInput.val() : null; } function getSelectedElectricPaymentMethod() { const selectedInput = $("input[name='charger-payment']:checked"); return selectedInput.length ? selectedInput.val() : null; } function calculateTimeToRecharge() { let $input = $("#electric-charger-amount-input"); let currentValue = parseInt($input.val()); // Allow empty input temporarily; validate only non-empty values if ($input.val().trim() === "" || isNaN(currentValue) || currentValue <= 0) { currentValue = 0; } if (currentValue > 1000) { currentValue = 1000; $input.val(currentValue); } let chargerType = getSelectedChargerType(); if (chargerType && (chargerType == "fast" || chargerType == "normal")) { let timeToRecharge = currentValue * currentPumpData.electric.chargeTypes[chargerType].time; // Calculate minutes and seconds let timeToRechargeMinutes = Math.floor(timeToRecharge / 60); let timeToRechargeSeconds = timeToRecharge % 60; $("#electric-time-to-recharge-value").text(Utils.translate("electricInterface.chargerAmount.timeToRechargeValue").format(Utils.numberFormat(timeToRechargeMinutes, 0), Utils.numberFormat(timeToRechargeSeconds, 0))); let newWidthPercentage = ((currentPumpData.vehicleFuel / currentPumpData.vehicleTankSize) * 100) + ((currentValue / currentPumpData.vehicleTankSize) * 100); $("#electric-amount-progress-bar").css("width", newWidthPercentage + "%"); if (newWidthPercentage > 100) { $("#electric-amount-progress-bar").css("background", "red"); } else { $("#electric-amount-progress-bar").css("background", ""); } } else { console.log("No charger type selected"); } } /*=================== CHART DIALOG ===================*/ function openFuelConsumptionChart() { const $dialog = $("#chart-dialog"); $("#chart-dialog-title").text(Utils.translate("fuelConsumptionChart.title")); $("#chart-dialog-footer-text").text(Utils.translate("fuelConsumptionChart.footer.focus")); $("#stepper-chart-recording-input").text(Utils.translate("fuelConsumptionChart.footer.recordsLength").format(chartTimestamps[chartTimestampsIndex])); $("#start-stop-recording-label").text(Utils.translate("fuelConsumptionChart.footer.toggleRecording")); $("#start-stop-recording").prop("checked", isRecording); $dialog.css({ right: "", bottom: "", display: "flex", }).fadeIn(); $dialog.draggable({ handle: ".dialog-header", }).resizable({ minHeight: 450, minWidth: 300, maxHeight: $(window).height()*0.8, maxWidth: $(window).width()*0.8, }); speedChart.resize(); consumptionChart.resize(); fuelChart.resize(); } function setFuelConsumptionChartPosition(position) { const $dialog = $("#chart-dialog"); const windowWidth = $(window).width(); const dialogWidth = $dialog.outerWidth(); let top = 10; let left; // Horizontal position if (position === "left") { left = 10; } else { left = windowWidth - dialogWidth - 10; } $dialog.css({ top: `${top}px`, left: `${left}px`, }); } function updateFuelConsumptionChart(latestData) { const now = Date.now(); if (fuelChart && speedChart && consumptionChart) { fuelChart.data.datasets[0].data.push({ x: now, y: latestData.fuel }); speedChart.data.datasets[0].data.push({ x: now, y: latestData.speed }); consumptionChart.data.datasets[0].data.push({ x: now, y: latestData.consumption }); } fuelChart.update("quiet"); speedChart.update("quiet"); consumptionChart.update("quiet"); } function createFuelConsumptionChartObject() { if (fuelChart || speedChart || consumptionChart) { return; } Chart.defaults.color = "rgba(218, 218, 218, 0.73)"; Chart.overrides.line.spanGaps = false; const baseOptions = { responsive: true, maintainAspectRatio: false, elements: { point: { radius: 0 } }, animation: false, interaction: { mode: "index", intersect: false }, plugins: { legend: { position: "bottom", labels: { boxWidth: 3, boxHeight: 3 }, }, streaming: { frameRate: 10, }, }, scales: { x: { type: "realtime", realtime: { duration: 30000, refresh: 1000, delay: 1000, }, }, y: { beginAtZero: true, }, }, }; // Fuel Chart fuelChart = new Chart(document.getElementById("fuel-chart"), { type: "line", data: { datasets: [{ label: Utils.translate("fuelConsumptionChart.chartLabels.fuel"), data: [], borderColor: "#FFD800", cubicInterpolationMode: "monotone", }], }, options: { ...baseOptions, scales: { ...baseOptions.scales, y: { ...baseOptions.scales.y, suggestedMax: 100, title: { display: true, text: Utils.translate("fuelConsumptionChart.chartLabels.fuel") }, }, }, }, }); // Speed Chart speedChart = new Chart(document.getElementById("speed-chart"), { type: "line", data: { datasets: [{ label: Utils.translate("fuelConsumptionChart.chartLabels.speed"), data: [], borderColor: "#0026FF", cubicInterpolationMode: "monotone", }], }, options: { ...baseOptions, scales: { ...baseOptions.scales, y: { ...baseOptions.scales.y, suggestedMax: 140, title: { display: true, text: Utils.translate("fuelConsumptionChart.chartLabels.speed") }, }, }, }, }); // Consumption Chart consumptionChart = new Chart(document.getElementById("consumption-chart"), { type: "line", data: { datasets: [{ label: Utils.translate("fuelConsumptionChart.chartLabels.consumption"), data: [], borderColor: "#7F0000", cubicInterpolationMode: "monotone", }], }, options: { ...baseOptions, scales: { ...baseOptions.scales, y: { ...baseOptions.scales.y, suggestedMax: 0.3, title: { display: true, text: Utils.translate("fuelConsumptionChart.chartLabels.consumption") }, }, }, }, }); } /*================= LISTENERS =================*/ $(window).click(function(event) { // Close the modal when clicking outside of it if ($(event.target).is(".modal")) { closeModal(); } }); $(document).on("keydown", function(event) { // Handle press of Esc key if (event.key === "Escape" || event.keyCode === 27) { // Check if the modal is open by checking if it's visible if ($("#chart-dialog").is(":visible")) { closeFuelConsumptionChartUI(); } else if ($(".modal").is(":visible")) { closeModal(); } else { closeUI(); } } if (event.key === toggleChartFocusShortcut || event.key === "w" || event.key === "W" || event.key === "a" || event.key === "A" || event.key === "d" || event.key === "D" || event.key === "s" || event.key === "S") { // Check if the modal is open by checking if it's visible if ($("#chart-dialog").is(":visible")) { removeFocusFuelConsumptionChartUI(); } } }); $(document).ready(function() { // Handle the add button $(".refuel-add").click(function() { let $input = $("#input-fuel-amount"); let currentValue = parseInt($input.val()) || 0; if (currentValue < Math.floor(currentPumpData.vehicleTankSize - currentPumpData.vehicleFuel)) { $input.val((currentValue + 1) + " L"); } }); $(".recharge-add").click(function() { let $input = $("#electric-charger-amount-input"); let currentValue = parseInt($input.val()) || 0; if (currentValue < Math.floor(currentPumpData.vehicleTankSize - currentPumpData.vehicleFuel)) { $input.val((currentValue + 1)); calculateTimeToRecharge(); } }); // Handle the sub button $(".refuel-sub").click(function() { let $input = $("#input-fuel-amount"); let currentValue = parseInt($input.val()) || 0; if (currentValue > 1) { $input.val((currentValue - 1) + " L"); } }); $(".recharge-sub").click(function() { let $input = $("#electric-charger-amount-input"); let currentValue = parseInt($input.val()) || 0; if (currentValue > 1) { $input.val((currentValue - 1)); calculateTimeToRecharge(); } }); // Remove 'L' suffix on focus to allow numeric input, and add it back on blur $("#input-fuel-amount").on("focus", function() { $(this).val(parseInt($(this).val()) || 1); }).on("blur", function() { updateFuelAmountDisplay(); }); // Recalculate time when change input $("#electric-charger-amount-input").on("input", function() { calculateTimeToRecharge(); }); $("#electric-charger-amount-input").on("blur", function() { let $input = $(this); let currentValue = parseInt($input.val()); // If invalid, reset to 0 if (isNaN(currentValue) || currentValue <= 0) { $input.val(0); } }); // Handle chart buttons $("#start-stop-recording").change(function() { if ($(this).is(":checked")) { startRecordingGraph(); } else { stopRecordingGraph(); } }); $("#increase-chart-recording").click(function() { if (chartTimestampsIndex < chartTimestamps.length - 1) { chartTimestampsIndex++; $("#stepper-chart-recording-input").text(Utils.translate("fuelConsumptionChart.footer.recordsLength").format(chartTimestamps[chartTimestampsIndex])); changeRecordingIndexGraph(); } }); $("#decrease-chart-recording").click(function() { if (chartTimestampsIndex > 0) { chartTimestampsIndex--; $("#stepper-chart-recording-input").text(Utils.translate("fuelConsumptionChart.footer.recordsLength").format(chartTimestamps[chartTimestampsIndex])); changeRecordingIndexGraph(); } }); }); /*================= CALLBACKS =================*/ function closeUI(){ Utils.post("close",""); } function stopRecordingGraph(){ fuelChart.options.scales.x.realtime.pause = true; speedChart.options.scales.x.realtime.pause = true; consumptionChart.options.scales.x.realtime.pause = true; Utils.post("stopRecordingGraph",""); } function startRecordingGraph(){ fuelChart.options.scales.x.realtime.pause = false; speedChart.options.scales.x.realtime.pause = false; consumptionChart.options.scales.x.realtime.pause = false; Utils.post("startRecordingGraph",""); } function changeRecordingIndexGraph(){ fuelChart.options.scales.x.realtime.duration = chartTimestamps[chartTimestampsIndex] * 1000; speedChart.options.scales.x.realtime.duration = chartTimestamps[chartTimestampsIndex] * 1000; consumptionChart.options.scales.x.realtime.duration = chartTimestamps[chartTimestampsIndex] * 1000; Utils.post("changeRecordingIndexGraph",chartTimestampsIndex); } function closeFuelConsumptionChartUI(){ Utils.post("closeFuelConsumptionChartUI",""); } function removeFocusFuelConsumptionChartUI(){ Utils.post("removeFocusFuelConsumptionChartUI",""); }