From ca77ba6d1963f6aeab5320aa63ec41a29edba73f Mon Sep 17 00:00:00 2001 From: Bernd Bestel Date: Thu, 7 Apr 2022 07:26:06 +0200 Subject: [PATCH] Improved QU conversion validation messages (references #1844) --- migrations/0188.sql | 4 ++-- public/viewjs/quantityunitconversionform.js | 11 ++++++----- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/migrations/0188.sql b/migrations/0188.sql index 2112e5ad..b4990f12 100644 --- a/migrations/0188.sql +++ b/migrations/0188.sql @@ -35,7 +35,7 @@ SELECT CASE WHEN(( AND qu_id_purchase = NEW.to_qu_id AND qu_id_stock = NEW.from_qu_id ) - NOTNULL) THEN RAISE(ABORT, "QU constraint violation") END; + NOTNULL) THEN RAISE(ABORT, "QU conversion constraint violation") END; END; DROP TRIGGER quantity_unit_conversions_custom_unique_constraint_UPD; @@ -67,7 +67,7 @@ SELECT CASE WHEN(( AND qu_id_purchase = NEW.to_qu_id AND qu_id_stock = NEW.from_qu_id ) - NOTNULL) THEN RAISE(ABORT, "QU constraint violation") END; + NOTNULL) THEN RAISE(ABORT, "QU conversion constraint violation") END; END; CREATE TRIGGER qu_conversions_inverse_INS AFTER INSERT ON quantity_unit_conversions diff --git a/public/viewjs/quantityunitconversionform.js b/public/viewjs/quantityunitconversionform.js index c32599d2..e821e29c 100644 --- a/public/viewjs/quantityunitconversionform.js +++ b/public/viewjs/quantityunitconversionform.js @@ -110,12 +110,13 @@ $('.input-group-qu').on('change', function(e) { var fromQuId = $("#from_qu_id").val(); var toQuId = $("#to_qu_id").val(); - var factor = $('#factor').val(); + var factor = Number.parseFloat($('#factor').val()); if (fromQuId == toQuId) { - $("#to_qu_id").parent().find(".invalid-feedback").text(__t('This cannot be equal to %s', $("#from_qu_id option:selected").text())); - $("#to_qu_id")[0].setCustomValidity("error"); + var validationMessage = __t('This cannot be equal to %s', $("#from_qu_id option:selected").text()); + $("#to_qu_id").parent().find(".invalid-feedback").text(validationMessage); + $("#to_qu_id")[0].setCustomValidity(validationMessage); } else { @@ -124,10 +125,10 @@ $('.input-group-qu').on('change', function(e) if (fromQuId && toQuId) { - $('#qu-conversion-info').text(__t('This means 1 %1$s is the same as %2$s %3$s', $("#from_qu_id option:selected").text(), parseFloat((1 * factor)).toLocaleString({ minimumFractionDigits: 0, maximumFractionDigits: Grocy.UserSettings.stock_decimal_places_amounts }), __n((1 * factor).toLocaleString({ minimumFractionDigits: 0, maximumFractionDigits: Grocy.UserSettings.stock_decimal_places_amounts }), $("#to_qu_id option:selected").text(), $("#to_qu_id option:selected").data("plural-form"), true))); + $('#qu-conversion-info').text(__t('This means 1 %1$s is the same as %2$s %3$s', $("#from_qu_id option:selected").text(), (1.0 * factor).toLocaleString({ minimumFractionDigits: 0, maximumFractionDigits: Grocy.UserSettings.stock_decimal_places_amounts }), __n((1.0 * factor).toLocaleString({ minimumFractionDigits: 0, maximumFractionDigits: Grocy.UserSettings.stock_decimal_places_amounts }), $("#to_qu_id option:selected").text(), $("#to_qu_id option:selected").data("plural-form"), true))); $('#qu-conversion-info').removeClass('d-none'); $('#qu-conversion-inverse-info').removeClass('d-none'); - $('#qu-conversion-inverse-info').text(__t('This means 1 %1$s is the same as %2$s %3$s', $("#to_qu_id option:selected").text(), parseFloat((1 / factor)).toLocaleString({ minimumFractionDigits: 0, maximumFractionDigits: Grocy.UserSettings.stock_decimal_places_amounts }), __n((1 / factor).toString(), $("#from_qu_id option:selected").text(), $("#from_qu_id option:selected").data("plural-form"), true))); + $('#qu-conversion-inverse-info').text(__t('This means 1 %1$s is the same as %2$s %3$s', $("#to_qu_id option:selected").text(), (1.0 / factor).toLocaleString({ minimumFractionDigits: 0, maximumFractionDigits: Grocy.UserSettings.stock_decimal_places_amounts }), __n((1.0 / factor), $("#from_qu_id option:selected").text(), $("#from_qu_id option:selected").data("plural-form"), true))); } else {