From 3f853d0d5ef5a78912490864efcab169949fb52e Mon Sep 17 00:00:00 2001 From: "DESKTOP-T0O5CDB\\DESK-555BD" Date: Sat, 23 Nov 2024 11:31:48 -0700 Subject: [PATCH] Fuel Consumption label now updates based on fuel consumption unit selected. --- Views/Vehicle/_Gas.cshtml | 2 +- wwwroot/js/gasrecord.js | 66 +++++++++------------------------------ wwwroot/js/shared.js | 2 +- 3 files changed, 16 insertions(+), 54 deletions(-) diff --git a/Views/Vehicle/_Gas.cshtml b/Views/Vehicle/_Gas.cshtml index 9662f70..e290b45 100644 --- a/Views/Vehicle/_Gas.cshtml +++ b/Views/Vehicle/_Gas.cshtml @@ -68,7 +68,7 @@ @($"{translator.Translate(userLanguage, "Max Fuel Economy")}: {Model.GasRecords.Where(y => y.MilesPerGallon > 0)?.Min(x => x.MilesPerGallon).ToString("F") ?? "0"}") } } - @($"{translator.Translate(userLanguage, "Total Fuel Consumed")}: {Model.GasRecords.Sum(x => x.Gallons).ToString("F")}") + @($"{translator.Translate(userLanguage, "Total Fuel Consumed")}: {Model.GasRecords.Sum(x => x.Gallons).ToString("F")}") @($"{translator.Translate(userLanguage, "Total Cost")}: {Model.GasRecords.Sum(x => x.Cost).ToString(gasCostFormat)}") @foreach (string recordTag in recordTags) { diff --git a/wwwroot/js/gasrecord.js b/wwwroot/js/gasrecord.js index fa99ecb..25bf6d1 100644 --- a/wwwroot/js/gasrecord.js +++ b/wwwroot/js/gasrecord.js @@ -267,6 +267,7 @@ function convertGasConsumptionUnits(currentUnit, destinationUnit, save) { break; } } + updateMPGLabels(); } function convertFuelMileageUnits(currentUnit, destinationUnit, save) { @@ -281,31 +282,6 @@ function convertFuelMileageUnits(currentUnit, destinationUnit, save) { elem.innerText = globalFloatToString(convertedAmount.toFixed(2)); } }); - //update labels up top. - if ($("#averageFuelMileageLabel").length > 0) { - var newAverage = globalParseFloat($("#averageFuelMileageLabel").text().split(":")[1].trim()); - if (newAverage > 0) { - newAverage = 100 / newAverage; - var averageLabel = $("#averageFuelMileageLabel"); - averageLabel.text(`${averageLabel.text().split(':')[0]}: ${globalFloatToString(newAverage.toFixed(2))}`); - } - } - if ($("#minFuelMileageLabel").length > 0) { - var newMin = globalParseFloat($("#minFuelMileageLabel").text().split(":")[1].trim()); - if (newMin > 0) { - newMin = 100 / newMin; - var minLabel = $("#minFuelMileageLabel"); - minLabel.text(`${minLabel.text().split(':')[0]}: ${globalFloatToString(newMin.toFixed(2))}`); - } - } - if ($("#maxFuelMileageLabel").length > 0) { - var newMax = globalParseFloat($("#maxFuelMileageLabel").text().split(":")[1].trim()); - if (newMax > 0) { - newMax = 100 / newMax; - var maxLabel = $("#maxFuelMileageLabel"); - maxLabel.text(`${maxLabel.text().split(':')[0]}: ${globalFloatToString(newMax.toFixed(2))}`); - } - } sender.text(sender.text().replace(sender.attr("data-unit"), "km/l")); sender.attr("data-unit", "km/l"); if (save) { setDebounce(saveUserGasTabPreferences); } @@ -321,36 +297,13 @@ function convertFuelMileageUnits(currentUnit, destinationUnit, save) { elem.innerText = globalFloatToString(convertedAmount.toFixed(2)); } }); - if ($("#averageFuelMileageLabel").length > 0) { - var newAverage = globalParseFloat($("#averageFuelMileageLabel").text().split(":")[1].trim()); - if (newAverage > 0) { - newAverage = 100 / newAverage; - var averageLabel = $("#averageFuelMileageLabel"); - averageLabel.text(`${averageLabel.text().split(':')[0]}: ${globalFloatToString(newAverage.toFixed(2))}`); - } - } - if ($("#minFuelMileageLabel").length > 0) { - var newMin = globalParseFloat($("#minFuelMileageLabel").text().split(":")[1].trim()); - if (newMin > 0) { - newMin = 100 / newMin; - var minLabel = $("#minFuelMileageLabel"); - minLabel.text(`${minLabel.text().split(':')[0]}: ${globalFloatToString(newMin.toFixed(2))}`); - } - } - if ($("#maxFuelMileageLabel").length > 0) { - var newMax = globalParseFloat($("#maxFuelMileageLabel").text().split(":")[1].trim()); - if (newMax > 0) { - newMax = 100 / newMax; - var maxLabel = $("#maxFuelMileageLabel"); - maxLabel.text(`${maxLabel.text().split(':')[0]}: ${globalFloatToString(newMax.toFixed(2))}`); - } - } sender.text(sender.text().replace(sender.attr("data-unit"), "l/100km")); sender.attr("data-unit", "l/100km"); if (save) { setDebounce(saveUserGasTabPreferences); } break; } } + updateMPGLabels(); } function toggleGasFilter(sender) { filterTable('gas-tab-pane', sender); @@ -360,13 +313,17 @@ function updateMPGLabels() { var averageLabel = $("#averageFuelMileageLabel"); var minLabel = $("#minFuelMileageLabel"); var maxLabel = $("#maxFuelMileageLabel"); - if (averageLabel.length > 0 && minLabel.length > 0 && maxLabel.length > 0) { + var totalConsumedLabel = $("#totalFuelConsumedLabel"); + if (averageLabel.length > 0 && minLabel.length > 0 && maxLabel.length > 0 && totalConsumedLabel.length > 0) { var rowsToAggregate = $("[data-aggregated='true']").parent(":not('.override-hide')"); + var rowsUnaggregated = $("[data-aggregated='false']").parent(":not('.override-hide')"); var rowMPG = rowsToAggregate.children('[data-gas-type="fueleconomy"]').toArray().map(x => globalParseFloat(x.textContent)); var maxMPG = rowMPG.length > 0 ? rowMPG.reduce((a, b) => a > b ? a : b) : 0; var minMPG = rowMPG.length > 0 ? rowMPG.filter(x=>x>0).reduce((a, b) => a < b ? a : b) : 0; var totalMilesTraveled = rowMPG.length > 0 ? rowsToAggregate.children('[data-gas-type="mileage"]').toArray().map(x => globalParseFloat($(x).attr("data-gas-aggregate"))).reduce((a, b) => a + b) : 0; - var totalGasConsumed = rowMPG.length > 0 ? rowsToAggregate.children('[data-gas-type="consumption"]').toArray().map(x => globalParseFloat($(x).attr("data-gas-aggregate"))).reduce((a, b) => a + b) : 0; + var totalGasConsumed = rowMPG.length > 0 ? rowsToAggregate.children('[data-gas-type="consumption"]').toArray().map(x => globalParseFloat(x.textContent)).reduce((a, b) => a + b) : 0; + var totalUnaggregatedGasConsumed = rowsUnaggregated.length > 0 ? rowsUnaggregated.children('[data-gas-type="consumption"]').toArray().map(x => globalParseFloat(x.textContent)).reduce((a, b) => a + b) : 0; + var fullGasConsumed = totalGasConsumed + totalUnaggregatedGasConsumed; if (totalGasConsumed > 0) { var averageMPG = totalMilesTraveled / totalGasConsumed; if (!getGlobalConfig().useMPG && $("[data-gas='fueleconomy']").attr("data-unit") != 'km/l' && averageMPG > 0) { @@ -374,7 +331,12 @@ function updateMPGLabels() { } averageLabel.text(`${averageLabel.text().split(':')[0]}: ${globalFloatToString(averageMPG.toFixed(2))}`); } else { - averageLabel.text(`${averageLabel.text().split(':')[0]}: 0.00`); + averageLabel.text(`${averageLabel.text().split(':')[0]}: ${globalFloatToString('0.00')}`); + } + if (fullGasConsumed > 0) { + totalConsumedLabel.text(`${totalConsumedLabel.text().split(':')[0]}: ${globalFloatToString(fullGasConsumed.toFixed(2))}`); + } else { + totalConsumedLabel.text(`${totalConsumedLabel.text().split(':')[0]}: ${globalFloatToString('0.00')}`); } if (!getGlobalConfig().useMPG && $("[data-gas='fueleconomy']").attr("data-unit") != 'km/l') { maxLabel.text(`${maxLabel.text().split(':')[0]}: ${globalFloatToString(minMPG.toFixed(2))}`); diff --git a/wwwroot/js/shared.js b/wwwroot/js/shared.js index c8d0c1d..c99df7a 100644 --- a/wwwroot/js/shared.js +++ b/wwwroot/js/shared.js @@ -479,7 +479,7 @@ function updateAggregateLabels() { var sumLabel = $("[data-aggregate-type='sum']"); if (sumLabel.length > 0) { var labelsToSum = $("[data-record-type='cost']").parent(":not('.override-hide')").children("[data-record-type='cost']").toArray(); - var newSum = 0; + var newSum = "0.00"; if (labelsToSum.length > 0) { newSum = labelsToSum.map(x => globalParseFloat(x.textContent)).reduce((a, b,) => a + b).toFixed(2); }