LP#1776757: (follow-up) keep input for amount as type "number"
authorGalen Charlton <gmc@equinoxinitiative.org>
Tue, 28 Jul 2020 14:43:25 +0000 (10:43 -0400)
committerGalen Charlton <gmc@equinoxinitiative.org>
Tue, 28 Jul 2020 14:45:30 +0000 (10:45 -0400)
Doing this preserves the form validation that ensures that
the user cannot submit the form with a non-numeric amount.

This does lose forcing the display of default amounts such as
"1.50" to two decimal places, but I'm figuring that form validation
takes priority pending a longer-term solution such as a custom
value validator or using ng-currency.

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Open-ILS/src/templates/staff/circ/share/t_bill_patron_dialog.tt2
Open-ILS/web/js/ui/default/staff/circ/services/billing.js

index 8769174..dd10c8b 100644 (file)
@@ -69,7 +69,7 @@
       <div class="form-group">
         <label for="bill-dialog-amount" class="control-label col-md-4">[% l('Amount:') %]</label>
         <div class="col-md-8">
-          <input type="string" min="0" step="any" class="form-control" 
+          <input type="number" min="0" step="any" class="form-control" 
             focus-me='focus' ng-required="true" id="bill-dialog-amount"
             ng-model="billArgs.amount"/>
         </div>
index 920de26..5826c12 100644 (file)
@@ -141,7 +141,7 @@ function($uibModal , $q , egCore) {
                     var type = billingTypes.filter(function(t) {
                         return t.id() == $scope.billArgs.billingType })[0];
                     if (type.default_price()) {
-                        $scope.billArgs.amount = parseFloat(type.default_price()).toFixed(2);
+                        $scope.billArgs.amount = parseFloat(type.default_price());
                     } else {
                         $scope.billArgs.amount = null;
                     }