mirror of
https://github.com/TryGhost/Ghost.git
synced 2025-01-08 04:03:12 +03:00
41 lines
1.1 KiB
JavaScript
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;
|