From 3378a083c31f6ab7da004a10dce15dc3eef5fc95 Mon Sep 17 00:00:00 2001 From: Owen Leonard Date: Wed, 31 Jan 2024 16:47:34 +0000 Subject: [PATCH] Bug 35087: (follow-up) Accept only values which will be saved correctly This patch adds a regex (thanks to Katrin for the help) specific to the range of values which will be accepted by the discount column in the database which has the type "float(6,4)". The patch also removes the format() filter from the template so that values returned from the database won't be truncated: Using "format ('%.1f')", a value in the db of '9.009' would appear in the edit form as '9.0', a change which could be missed if the user was editing some other field in the vendor edit form. To test, apply the patch and clear your browser cache if necessary. - Go to Acquisitions -> Vendors -> Edit vendor. - Under "Ordering information," test entering various values in the "Discount" field. It should accept numbers with up to two digits before the decimal and up to three digits after the decimal: 9, 99, -99, 99.9, 0.99, 99.99, 99.999 - In each of these cases, confirm that a value accepted by the client-side validation is also accepted when you submit the form and is correctly displayed when you edit that vendor again. - It should not accept: 100, 100.001, 100.00001 - The error message has been updated to read, "Please enter a decimal number in the format: 0.0" Signed-off-by: Owen Leonard Signed-off-by: Sonia --- .../intranet-tmpl/prog/en/includes/validator-strings.inc | 1 - koha-tmpl/intranet-tmpl/prog/en/modules/acqui/supplier.tt | 2 +- koha-tmpl/intranet-tmpl/prog/js/staff-global.js | 4 +++- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/validator-strings.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/validator-strings.inc index 578b51da82..87dde3e610 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/includes/validator-strings.inc +++ b/koha-tmpl/intranet-tmpl/prog/en/includes/validator-strings.inc @@ -12,7 +12,6 @@ digits: _("Please enter only digits."), equalTo: _("Please enter the same value again."), number: _("Please add amount in valid format: 0.00"), - decimal_rate: $.validator.addMethod("decimal_rate", $.validator.methods.number, "Please add rate in valid format: 0.00"), maxlength: $.validator.format(_("Please enter no more than {0} characters.")), minlength: $.validator.format(_("Please enter at least {0} characters.")), rangelength: $.validator.format(_("Please enter a value between {0} and {1} characters long.")), diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/supplier.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/supplier.tt index eb0ed518d6..8f4470c722 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/supplier.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/supplier.tt @@ -347,7 +347,7 @@ [% END %]
  • - %
  • + %
  • days diff --git a/koha-tmpl/intranet-tmpl/prog/js/staff-global.js b/koha-tmpl/intranet-tmpl/prog/js/staff-global.js index 16ccb42df6..9d407327f0 100644 --- a/koha-tmpl/intranet-tmpl/prog/js/staff-global.js +++ b/koha-tmpl/intranet-tmpl/prog/js/staff-global.js @@ -119,7 +119,9 @@ $(document).ready(function() { number: true }); - jQuery.validator.addMethod("decimal_rate", jQuery.validator.methods.number, __("Please add rate in valid format: 0.00")); + jQuery.validator.addMethod("decimal_rate", function(value, element) { + return this.optional( element ) || /^[\-]?\d{0,2}(\.\d{0,3})*$/.test( value ); + }, __('Please enter a decimal number in the format: 0.0') ); jQuery.validator.addClassRules("rate", { decimal_rate: true -- 2.30.2