Optimized locale handling in productamountpicker / set initial value

This commit is contained in:
Bernd Bestel 2026-04-12 22:54:16 +02:00
parent ebcc39905c
commit 503ee5d5d7
No known key found for this signature in database
GPG Key ID: 71BD34C0D4891300

View File

@ -1,7 +1,7 @@
Grocy.Components.ProductAmountPicker = {}; Grocy.Components.ProductAmountPicker = {};
Grocy.Components.ProductAmountPicker.AllowAnyQuEnabled = false; Grocy.Components.ProductAmountPicker.AllowAnyQuEnabled = false;
Grocy.Components.ProductAmountPicker.Reload = function(productId, destinationQuId, forceInitialDisplayQu = false) Grocy.Components.ProductAmountPicker.Reload = function (productId, destinationQuId, forceInitialDisplayQu = false)
{ {
var conversionsForProduct = FindAllObjectsInArrayByPropertyValue(Grocy.QuantityUnitConversionsResolved, 'product_id', productId); var conversionsForProduct = FindAllObjectsInArrayByPropertyValue(Grocy.QuantityUnitConversionsResolved, 'product_id', productId);
@ -39,7 +39,9 @@ Grocy.Components.ProductAmountPicker.Reload = function(productId, destinationQuI
if (!Grocy.Components.ProductAmountPicker.InitialValueSet) if (!Grocy.Components.ProductAmountPicker.InitialValueSet)
{ {
var convertedAmount = ($("#display_amount").val() * $("#qu_id option:selected").attr("data-qu-factor")).toLocaleString({ minimumFractionDigits: 0, maximumFractionDigits: Grocy.UserSettings.stock_decimal_places_amounts }); var amount = Number.parseFloat($("#display_amount").val());
var factor = Number.parseFloat($("#qu_id option:selected").attr("data-qu-factor"));
var convertedAmount = (amount * factor).toLocaleString("en", { minimumFractionDigits: 0, maximumFractionDigits: Grocy.UserSettings.stock_decimal_places_amounts });
$("#display_amount").val(convertedAmount); $("#display_amount").val(convertedAmount);
Grocy.Components.ProductAmountPicker.InitialValueSet = true; Grocy.Components.ProductAmountPicker.InitialValueSet = true;
@ -62,12 +64,12 @@ Grocy.Components.ProductAmountPicker.Reload = function(productId, destinationQuI
$(".input-group-productamountpicker").trigger("change"); $(".input-group-productamountpicker").trigger("change");
} }
Grocy.Components.ProductAmountPicker.SetQuantityUnit = function(quId) Grocy.Components.ProductAmountPicker.SetQuantityUnit = function (quId)
{ {
$("#qu_id").val(quId); $("#qu_id").val(quId);
} }
Grocy.Components.ProductAmountPicker.AllowAnyQu = function(keepInitialQu = false) Grocy.Components.ProductAmountPicker.AllowAnyQu = function (keepInitialQu = false)
{ {
Grocy.Components.ProductAmountPicker.AllowAnyQuEnabled = true; Grocy.Components.ProductAmountPicker.AllowAnyQuEnabled = true;
@ -92,14 +94,14 @@ Grocy.Components.ProductAmountPicker.AllowAnyQu = function(keepInitialQu = false
$(".input-group-productamountpicker").trigger("change"); $(".input-group-productamountpicker").trigger("change");
} }
Grocy.Components.ProductAmountPicker.Reset = function() Grocy.Components.ProductAmountPicker.Reset = function ()
{ {
$("#qu_id").find("option").remove(); $("#qu_id").find("option").remove();
$("#qu-conversion-info").addClass("d-none"); $("#qu-conversion-info").addClass("d-none");
$("#qu-display_amount-info").val(""); $("#qu-display_amount-info").val("");
} }
$(".input-group-productamountpicker").on("change", function() $(".input-group-productamountpicker").on("change", function ()
{ {
var selectedQuName = $("#qu_id option:selected").text(); var selectedQuName = $("#qu_id option:selected").text();
var quFactor = $("#qu_id option:selected").attr("data-qu-factor"); var quFactor = $("#qu_id option:selected").attr("data-qu-factor");
@ -126,7 +128,7 @@ $(".input-group-productamountpicker").on("change", function()
$("#amount").val(destinationAmount.toFixed(n).replace(/0*$/g, '')).trigger("change"); $("#amount").val(destinationAmount.toFixed(n).replace(/0*$/g, '')).trigger("change");
}); });
$("#display_amount").on("keyup", function() $("#display_amount").on("keyup", function ()
{ {
$(".input-group-productamountpicker").trigger("change"); $(".input-group-productamountpicker").trigger("change");
}); });