Initial commit.

This commit is contained in:
Andreas Baldeau 2014-05-12 20:08:19 +02:00
commit 0335f5aa93
1168 changed files with 261999 additions and 0 deletions

View file

@ -0,0 +1,36 @@
'use strict';
angular.module('ffffng').factory('Constraints', function () {
return {
token:{
regex: /^[0-9a-fA-F]{16}$/,
optional: false
},
node: {
hostname: {
regex: /^[-a-zA-Z0-9_]{1,32}$/,
optional: false
},
key: {
regex: /^([a-fA-F0-9]{64})$/,
optional: true
},
email: {
regex: /^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/,
optional: false
},
nickname: {
regex: /^[-a-zA-Z0-9_ äöüÄÖÜß]{1,64}$/,
optional: false
},
mac: {
regex: /^([a-fA-F0-9]{12}|([a-fA-F0-9]{2}:){5}[a-fA-F0-9]{2})$/,
optional: false
},
coords: {
regex: /^(-?[0-9]{1,3}(\.[0-9]{1,15})? -?[0-9]{1,3}(\.[0-9]{1,15})?)$/,
optional: true
}
}
};
});

View file

@ -0,0 +1,32 @@
'use strict';
angular.module('ffffng').factory('Validator', function (_) {
var isValid = function (constraint, acceptUndefined, value) {
if (value === undefined) {
return acceptUndefined || constraint.optional;
}
var trimmed = value.trim();
return (trimmed === '' && constraint.optional) || trimmed.match(constraint.regex);
};
var areValid = function (constraints, acceptUndefined, values) {
var fields = Object.keys(constraints);
for (var i = 0; i < fields.length; i ++) {
var field = fields[i];
if (!isValid(constraints[field], acceptUndefined, values[field])) {
return false;
}
}
return true;
};
return {
forConstraint: function (constraint, acceptUndefined) {
return _.partial(isValid, constraint, acceptUndefined);
},
forConstraints: function (constraints, acceptUndefined) {
return _.partial(areValid, constraints, acceptUndefined);
}
};
});