ORIENT/modules/system/assets/ui/js/inspector.validator.integer.js

47 lines
1.3 KiB
JavaScript

/*
* Inspector integer validator.
*/
+function ($) { "use strict";
var Base = $.oc.inspector.validators.baseNumber,
BaseProto = Base.prototype
var IntegerValidator = function(options) {
Base.call(this, options)
}
IntegerValidator.prototype = Object.create(BaseProto)
IntegerValidator.prototype.constructor = Base
IntegerValidator.prototype.isValid = function(value) {
if (!this.isScalar(value) || typeof value == 'boolean') {
this.throwError('The Integer Inspector validator can only be used with string values.')
}
if (value === undefined || value === null) {
return null
}
var string = $.trim(String(value))
if (string.length === 0) {
return null
}
var testResult = this.options.allowNegative ?
/^\-?[0-9]*$/.test(string) :
/^[0-9]*$/.test(string)
if (!testResult) {
var defaultMessage = this.options.allowNegative ?
'The value should be an integer.' :
'The value should be a positive integer.';
return this.getMessage(defaultMessage)
}
return this.doCommonChecks(parseInt(string))
}
$.oc.inspector.validators.integer = IntegerValidator
}(window.jQuery);