From 6fcaf96806e27aafff0445b9087415cde58c4fb9 Mon Sep 17 00:00:00 2001 From: Jim LAURIE Date: Fri, 7 Sep 2018 15:59:59 +0200 Subject: [PATCH 1/2] Clean layout on content tyep delete fix #1903 --- .../controllers/ContentTypeBuilder.js | 12 ++++++++++++ .../services/ContentTypeBuilder.js | 9 ++++----- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/packages/strapi-plugin-content-type-builder/controllers/ContentTypeBuilder.js b/packages/strapi-plugin-content-type-builder/controllers/ContentTypeBuilder.js index f87fd5fcd9..078a9d545e 100755 --- a/packages/strapi-plugin-content-type-builder/controllers/ContentTypeBuilder.js +++ b/packages/strapi-plugin-content-type-builder/controllers/ContentTypeBuilder.js @@ -183,6 +183,18 @@ module.exports = { return ctx.badRequest(null, [{ messages: removeModelErrors }]); } + const pluginStore = strapi.store({ + environment: '', + type: 'plugin', + name: 'content-manager' + }); + + const schema = await pluginStore.get({ key: 'schema' }); + + delete schema.layout[model]; + + await pluginStore.set({ key: 'schema', value: schema }); + ctx.send({ ok: true }); strapi.reload(); diff --git a/packages/strapi-plugin-content-type-builder/services/ContentTypeBuilder.js b/packages/strapi-plugin-content-type-builder/services/ContentTypeBuilder.js index 6910be9dc8..cd30672ba6 100755 --- a/packages/strapi-plugin-content-type-builder/services/ContentTypeBuilder.js +++ b/packages/strapi-plugin-content-type-builder/services/ContentTypeBuilder.js @@ -42,7 +42,7 @@ module.exports = { const attrToRemoveInfos = manager.attrToRemoveInfos; // Retrieve the removed item infos const arrayOfLastLineElements = manager.arrayOfEndLineElements; const isRemovingAFullWidthNode = attrToRemoveInfos.bootstrapCol === 12; - + if (isRemovingAFullWidthNode) { const currentNodeLine = _.findIndex(arrayOfLastLineElements, ['index', attrToRemoveInfos.index]); // Used only to know if removing a full size element on the first line if (currentNodeLine === 0) { @@ -55,7 +55,7 @@ module.exports = { const previousLineRangeIndexes = firstElementOnLine === lastElementOnLine ? [firstElementOnLine] : _.range(firstElementOnLine, lastElementOnLine); const elementsOnLine = manager.getElementsOnALine(previousLineRangeIndexes); const previousLineColNumber = manager.getLineSize(elementsOnLine); - + if (previousLineColNumber >= 10) { newList = newList .delete(index); @@ -65,7 +65,7 @@ module.exports = { newList = newList .delete(index) .insert(index, colsToAdd[0]); - + if (colsToAdd.length > 1) { newList = newList .insert(index, colsToAdd[1]); @@ -84,7 +84,7 @@ module.exports = { newList = newList .delete(attrToRemoveInfos.index); } else { - const random = Math.floor(Math.random() * 1000); + const random = Math.floor(Math.random() * 1000); newList = newList .delete(attrToRemoveInfos.index) .insert(rightBoundIndex, `__col-md-${attrToRemoveInfos.bootstrapCol}__${random}`); @@ -96,7 +96,6 @@ module.exports = { const lastManager = createManager(state, newList, keys, 0, fromJS(layout.attributes)); newList = reorderList(lastManager, lastManager.getLayout()); }); - // Delete them from the available fields fieldsToRemove.forEach(field => { From 145f22ee1e62190f3cd2da95d6a670844b285069 Mon Sep 17 00:00:00 2001 From: Jim LAURIE Date: Fri, 7 Sep 2018 17:02:32 +0200 Subject: [PATCH 2/2] Update random --- .../services/ContentTypeBuilder.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/strapi-plugin-content-type-builder/services/ContentTypeBuilder.js b/packages/strapi-plugin-content-type-builder/services/ContentTypeBuilder.js index cd30672ba6..7070ab93fd 100755 --- a/packages/strapi-plugin-content-type-builder/services/ContentTypeBuilder.js +++ b/packages/strapi-plugin-content-type-builder/services/ContentTypeBuilder.js @@ -84,7 +84,7 @@ module.exports = { newList = newList .delete(attrToRemoveInfos.index); } else { - const random = Math.floor(Math.random() * 1000); + const random = Math.random().toString(36).substring(7); newList = newList .delete(attrToRemoveInfos.index) .insert(rightBoundIndex, `__col-md-${attrToRemoveInfos.bootstrapCol}__${random}`);