Merge pull request #2994 from Getriax/TRIM_MODEL

Trim content builder model attributes
This commit is contained in:
Jim LAURIE 2019-04-09 18:26:53 +02:00 committed by GitHub
commit b31d36b99d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 32 additions and 6 deletions

View File

@ -6,7 +6,12 @@ const _ = require('lodash');
const generator = require('strapi-generate');
const { fromJS, List, Map } = require('immutable');
const Manager = require('../utils/Manager.js');
const { createManager, removeColsLine, reorderList } = require('../utils/helpers.js');
const {
createManager,
removeColsLine,
reorderList,
deepTrimObject,
} = require('../utils/helpers.js');
module.exports = {
appearance: async (attributes, model, plugin) => {
@ -369,8 +374,9 @@ module.exports = {
});
Object.assign(attributesNotConfigurable, attrs);
const trimmedNotConfigurableAttributes = deepTrimObject(attributesNotConfigurable);
return [attributesNotConfigurable, errors];
return [trimmedNotConfigurableAttributes, errors];
},
clearRelations: (model, source, force) => {

View File

@ -65,11 +65,31 @@ const escapeNewlines = (content, placeholder = '\n') => {
return content.replace(/[\r\n]+/g, placeholder);
}
const deepTrimObject = attribute => {
if (Array.isArray(attribute)) {
return attribute.map(deepTrimObject);
}
if (typeof attribute === 'object') {
return Object.entries(attribute)
.reduce((acc, [key, value]) => {
const trimmedObject = deepTrimObject(value);
return { ...acc, [key]: trimmedObject };
}, {});
}
return typeof attribute === 'string'
? attribute.trim()
: attribute;
}
module.exports = {
createArrayOfLastEls,
createManager,
getElementsOnALine,
removeColsLine,
reorderList,
escapeNewlines
escapeNewlines,
deepTrimObject
};