mirror of
https://github.com/strapi/strapi.git
synced 2025-08-21 23:28:58 +00:00
Merge pull request #2994 from Getriax/TRIM_MODEL
Trim content builder model attributes
This commit is contained in:
commit
b31d36b99d
@ -6,7 +6,12 @@ const _ = require('lodash');
|
|||||||
const generator = require('strapi-generate');
|
const generator = require('strapi-generate');
|
||||||
const { fromJS, List, Map } = require('immutable');
|
const { fromJS, List, Map } = require('immutable');
|
||||||
const Manager = require('../utils/Manager.js');
|
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 = {
|
module.exports = {
|
||||||
appearance: async (attributes, model, plugin) => {
|
appearance: async (attributes, model, plugin) => {
|
||||||
@ -369,8 +374,9 @@ module.exports = {
|
|||||||
});
|
});
|
||||||
|
|
||||||
Object.assign(attributesNotConfigurable, attrs);
|
Object.assign(attributesNotConfigurable, attrs);
|
||||||
|
const trimmedNotConfigurableAttributes = deepTrimObject(attributesNotConfigurable);
|
||||||
|
|
||||||
return [attributesNotConfigurable, errors];
|
return [trimmedNotConfigurableAttributes, errors];
|
||||||
},
|
},
|
||||||
|
|
||||||
clearRelations: (model, source, force) => {
|
clearRelations: (model, source, force) => {
|
||||||
|
@ -44,7 +44,7 @@ const removeColsLine = (manager, list) => {
|
|||||||
const reorderList = (manager, list) => {
|
const reorderList = (manager, list) => {
|
||||||
const array = createArrayOfLastEls(manager, list);
|
const array = createArrayOfLastEls(manager, list);
|
||||||
const lines = [];
|
const lines = [];
|
||||||
|
|
||||||
array.forEach((item, i) => {
|
array.forEach((item, i) => {
|
||||||
const { elements } = getElementsOnALine(manager, i, list);
|
const { elements } = getElementsOnALine(manager, i, list);
|
||||||
lines.push(elements);
|
lines.push(elements);
|
||||||
@ -57,7 +57,7 @@ const reorderList = (manager, list) => {
|
|||||||
return acc.concat(line);
|
return acc.concat(line);
|
||||||
}, [])
|
}, [])
|
||||||
.filter(a => a !== undefined);
|
.filter(a => a !== undefined);
|
||||||
|
|
||||||
return List(flattenDeep(reordered));
|
return List(flattenDeep(reordered));
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -65,11 +65,31 @@ const escapeNewlines = (content, placeholder = '\n') => {
|
|||||||
return content.replace(/[\r\n]+/g, placeholder);
|
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 = {
|
module.exports = {
|
||||||
createArrayOfLastEls,
|
createArrayOfLastEls,
|
||||||
createManager,
|
createManager,
|
||||||
getElementsOnALine,
|
getElementsOnALine,
|
||||||
removeColsLine,
|
removeColsLine,
|
||||||
reorderList,
|
reorderList,
|
||||||
escapeNewlines
|
escapeNewlines,
|
||||||
};
|
deepTrimObject
|
||||||
|
};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user