nav tabs on admin dashboard

This commit is contained in:
2019-03-07 00:20:34 -06:00
parent f73d6ae228
commit e4f473f376
11661 changed files with 216240 additions and 1544253 deletions

View File

@@ -13,16 +13,17 @@ const ajv = new Ajv({
require("ajv-keywords")(ajv, ["instanceof"]);
require("../schemas/ajv.absolutePath")(ajv);
function validateSchema(schema, options) {
if(Array.isArray(options)) {
const errors = options.map((options) => validateObject(schema, options));
const validateSchema = (schema, options) => {
if (Array.isArray(options)) {
const errors = options.map(options => validateObject(schema, options));
errors.forEach((list, idx) => {
list.forEach(function applyPrefix(err) {
const applyPrefix = err => {
err.dataPath = `[${idx}]${err.dataPath}`;
if(err.children) {
if (err.children) {
err.children.forEach(applyPrefix);
}
});
};
list.forEach(applyPrefix);
});
return errors.reduce((arr, items) => {
return arr.concat(items);
@@ -30,22 +31,22 @@ function validateSchema(schema, options) {
} else {
return validateObject(schema, options);
}
}
};
function validateObject(schema, options) {
const validateObject = (schema, options) => {
const validate = ajv.compile(schema);
const valid = validate(options);
return valid ? [] : filterErrors(validate.errors);
}
};
function filterErrors(errors) {
const filterErrors = errors => {
let newErrors = [];
errors.forEach((err) => {
for (const err of errors) {
const dataPath = err.dataPath;
let children = [];
newErrors = newErrors.filter((oldError) => {
if(oldError.dataPath.includes(dataPath)) {
if(oldError.children) {
newErrors = newErrors.filter(oldError => {
if (oldError.dataPath.includes(dataPath)) {
if (oldError.children) {
children = children.concat(oldError.children.slice(0));
}
oldError.children = undefined;
@@ -54,13 +55,13 @@ function filterErrors(errors) {
}
return true;
});
if(children.length) {
if (children.length) {
err.children = children;
}
newErrors.push(err);
});
}
return newErrors;
}
};
module.exports = validateSchema;