diff --git a/ayanova/src/api/gzvalidate.js b/ayanova/src/api/gzvalidate.js index c22836f3..3aa3a402 100644 --- a/ayanova/src/api/gzvalidate.js +++ b/ayanova/src/api/gzvalidate.js @@ -32,6 +32,14 @@ function isInt(value) { return (x | 0) === x; } +//////////////////////////////////// +// isNumber +// +//FROM HERE: https://stackoverflow.com/a/1830632/8939 +function isNumber(n) { + return !isNaN(parseFloat(n)) && isFinite(n); +} + //////////////////////////////////// // Get control from ref // @@ -185,6 +193,35 @@ export default { // "ErrorFieldValueNotInteger": "Value must be an integer" var err = locale.get("ErrorFieldValueNotInteger"); + return err; + }, + /////////////////////////////// + // DECIMAL + // Basically anything that can be a number is valid + Decimal(v, ref) { + + //TODO: Handle commas and spaces in numbers + //as per locale rules for numbers + + var ctrl = getControl(v, ref); + if(typeof ctrl == 'undefined'){ + return false; + } + + var value = getControlValue(ctrl); + if (isEmpty(value)) { + return false; + } + + if(isNumber(value)){ + return false; + } + + + + // "ErrorFieldValueNotDecimal": "Value must be a number" + var err = locale.get("ErrorFieldValueNotDecimal"); + return err; } }; diff --git a/ayanova/src/api/locale.js b/ayanova/src/api/locale.js index 38d62bbf..16726d89 100644 --- a/ayanova/src/api/locale.js +++ b/ayanova/src/api/locale.js @@ -68,7 +68,8 @@ export default { "ErrorFieldLengthExceeded", "ErrorStartDateAfterEndDate", "ErrorRequiredFieldEmpty", - "ErrorFieldValueNotInteger" + "ErrorFieldValueNotInteger", + "ErrorFieldValueNotDecimal" ], decimalValidate(required) { return { required: required, decimal: [2, this.formats.decimalSeparator] }; diff --git a/ayanova/src/views/inventory-widget-edit.vue b/ayanova/src/views/inventory-widget-edit.vue index 91b22f2f..5bf85c6b 100644 --- a/ayanova/src/views/inventory-widget-edit.vue +++ b/ayanova/src/views/inventory-widget-edit.vue @@ -39,6 +39,7 @@ :label="this.$gzlocale.get('WidgetDollarAmount')" ref="dollarAmount" required + :rules="[this.$gzv.Decimal(this,'dollarAmount'),this.$gzv.Required(this,'dollarAmount')]" >