Validate and correct resource location

This commit is contained in:
Misode
2020-05-23 17:31:48 +02:00
parent 6cf3809d48
commit 6680b240f7
7 changed files with 93 additions and 7 deletions
+19 -1
View File
@@ -49,7 +49,6 @@ function loadGenerator(generator) {
}
function loadVersion(generator, version) {
console.warn(generator, version);
return $.getJSON('../schemas/' + version + '.json', json => {
structure = json.root || json.roots.find(e => e.id === generator);
components = json.components;
@@ -287,6 +286,9 @@ function addToMap(el) {
if (!isValidMapKey(key, node[map])) {
return;
}
if ($field.attr('data-resource')) {
key = fixResource(key)
}
if (type === 'int' || type === 'float' || type === 'random' || type === 'range' || type === 'boundary') {
node[map][key] = 0;
} else if (type === 'boolean') {
@@ -413,6 +415,11 @@ function updateField(el) {
} else if (type === 'boolean') {
value = getBooleanValue(node[field], ($(el).val() === 'true'));
}
if ($field.attr('data-resource')) {
value = fixResource(value)
}
if (value === '') {
delete node[field];
} else {
@@ -424,6 +431,17 @@ function updateField(el) {
invalidated();
}
function fixResource(value) {
const test = /^([a-z0-9_.-]*:)?[a-z0-9/_.-]+$/;
if (value.match(test) === null) {
value = value.toLowerCase();
if (value.match(test) === null) {
value = value.replace(/[^a-z0-9_.-]/g, '')
}
}
return value;
}
function updateRangeType(el) {
let path = getPath(el);
let field = path.pop();