Ghost/core/client/app/validators/base.js
Austin Burdine d0c151be70 adds inline errors to validation
closes #5336
- creates gh-form-group component to handle form group status
- refactors current validation methods to work on a per-property basis
- adds gh-error-message component to render error message
- removes (comments out) tests that pertain to the old notifications until the new inline validation is added
2015-07-05 14:02:06 -04:00

41 lines
1.1 KiB
JavaScript

import Ember from 'ember';
/**
* Base validator that all validators should extend
* Handles checking of individual properties or the entire model
*/
var BaseValidator = Ember.Object.extend({
properties: [],
passed: false,
/**
* When passed a model and (optionally) a property name,
* checks it against a list of validation functions
* @param {Ember.Object} model Model to validate
* @param {string} prop Property name to check
* @return {boolean} True if the model passed all (or one) validation(s),
* false if not
*/
check: function (model, prop) {
var self = this;
this.set('passed', true);
if (prop && this[prop]) {
this[prop](model);
} else {
this.get('properties').forEach(function (property) {
if (self[property]) {
self[property](model);
}
});
}
return this.get('passed');
},
invalidate: function () {
this.set('passed', false);
}
});
export default BaseValidator;