diff --git a/Build/Sources/App.js b/Build/Sources/App.js index a0dd2fc5b..eabc3e5a2 100644 --- a/Build/Sources/App.js +++ b/Build/Sources/App.js @@ -8,6 +8,7 @@ import defaultAuthor from "./initialValues/author"; import defaultModule from "./initialValues/module"; import defaultPlugin from "./initialValues/plugin"; import convertModulesToNodes from "./helper/converter/convertModulesToNodes"; +import convertRelationsToReactFlowRelations from "./helper/converter/convertRelationsToReactFlowRelations"; export const NodesContext = createContext([]); export const EdgesContext = createContext([]); @@ -238,8 +239,7 @@ function App() { // Instead the modules could be handed into the nodes but needs to be converted to the correct format. This could be a lot of work. const working = JSON.parse(extension.working); - console.log("working inside handleOpenExtension:"); - console.log(working); + console.log("working inside handleOpenExtension: ", working); // Sets properties. setProperties(prev => ({...prev, ...working.properties})); @@ -259,14 +259,19 @@ function App() { // let modules = convertModuleToNode(working.modules); let modules = convertModulesToNodes(working.modules); // Check if nodes or edges are available, and update them. - console.log("modules"); - console.log(modules); - console.log(working.nodes); + let edges = convertRelationsToReactFlowRelations(working.wires, modules); + + // console.log("41:" + JSON.stringify(working.modules, null, 2)); + console.log("42:" + JSON.stringify(working.edges, null, 2)); + setNodes(modules ? modules: []); - setEdges(working.edges ? working.edges : []); + setEdges(edges ? edges : []); + console.log("modulesLength: " + (modules ? modules.length : 0)) + console.log("working edgesLength: " + (working.edges ? working.edges.length : 0)) + console.log("edgesLength: " + (edges ? edges.length : 0)) // Set the custom model node index depending on the amount of nodes. - setCustomModelNodeIndex(working.nodes ? working.nodes.length : 0); + setCustomModelNodeIndex(modules ? modules.length : 0); } diff --git a/Build/Sources/components/ActionButtonsComponent.jsx b/Build/Sources/components/ActionButtonsComponent.jsx index 54e82d899..5999af3eb 100644 --- a/Build/Sources/components/ActionButtonsComponent.jsx +++ b/Build/Sources/components/ActionButtonsComponent.jsx @@ -50,13 +50,13 @@ export const ActionButtonsComponent = (props) => { properties.push( { "allowedFileTypes": "", - "propertyDescription": property.description, - "excludeField": property.excludeField, - "propertyIsL10nModeExclude": property.isl10nModeExlude, - "propertyIsNullable": property.isNullable, - "propertyIsRequired": property.isRequired, - "propertyType": property.type, + "propertyDescription": property.propertyDescription, + "propertyIsExcludeField": property.propertyIsExcludeField, + "propertyIsL10nModeExclude": property.propertyIsL10nModeExclude, + "propertyIsNullable": property.propertyIsNullable, + "propertyIsRequired": property.propertyIsRequired, "propertyName": property.propertyName, + "propertyType": property.propertyType, "typeSelect": { "selectboxValues": property.typeSelect?.selectboxValues || "", "renderType": property.typeSelect?.renderType || "selectSingle", @@ -106,7 +106,7 @@ export const ActionButtonsComponent = (props) => { { "foreignRelationClass": relation.foreignRelationClass || "", "lazyLoading": relation.lazyLoading || false, - "propertyIsExcludeField": relation.propertyIsExcludeField || false, + "excludeField": relation.excludeField || false, "relationDescription": relation.relationDescription || "", "relationName": relation.relationName || "", "relationType": relation.relationType || "anyToMany", @@ -182,13 +182,11 @@ export const ActionButtonsComponent = (props) => { return { "src": { "moduleId": modules.findIndex(node => node.name === nodes[sourceIndex].data.label), - "moduleName": nodes[sourceIndex].data.label, "terminal": `relationWire_${relationIndex}`, "uid": edge.id }, "tgt": { "moduleId": modules.findIndex(node => node.name === nodes[targetIndex].data.label), - "moduleName": nodes[targetIndex].data.label, "terminal": "SOURCES", "uid": edge.source } @@ -223,9 +221,9 @@ export const ActionButtonsComponent = (props) => { "plugins": props.plugins, "vendorName": props.properties.vendorName }, - "wires": wires, + "wires": wires /*"nodes": nodes,*/ - "edges": edges + /*"edges": edges*/ }; let payload = { @@ -300,8 +298,8 @@ export const ActionButtonsComponent = (props) => { // error = null, if no error occurs // success = true, when the request was successful // result with the array of extensions - console.log("available extensions"); - console.log(extensions); + // console.log("available extensions"); + // console.log(extensions); if(extensions.error !== null && extensions.success === false) { console.log("fetching failed"); diff --git a/Build/Sources/components/ReactFlow/CustomModelNode.jsx b/Build/Sources/components/ReactFlow/CustomModelNode.jsx index 57f31f9f7..f45c086f8 100644 --- a/Build/Sources/components/ReactFlow/CustomModelNode.jsx +++ b/Build/Sources/components/ReactFlow/CustomModelNode.jsx @@ -30,14 +30,15 @@ export const CustomModelNode = (props) => { propertyName: '', propertyType: '', propertyDescription: '', - isRequired: false, - isNullable: false, - isExcludeField: false, - isl10nModeExlude: false, + propertyIsRequired: false, + propertyIsNullable: false, + propertyIsExcludeField: false, + propertyIsL10nModeExclude: false, typeSelect: { selectboxValues: "", renderType: "selectSingle", foreignTable: "", + whereClause: "", }, typeText: { enableRichtext: false, @@ -76,14 +77,15 @@ export const CustomModelNode = (props) => { propertyName: '', propertyType: '', propertyDescription: '', - isRequired: false, - isNullable: false, - excludeField: false, - isl10nModeExlude: false, + propertyIsRequired: false, + propertyIsNullable: false, + propertyIsExcludeField: false, + propertyIsL10nModeExclude: false, typeSelect: { selectboxValues: "", renderType: "selectSingle", foreignTable: "", + whereClause: "", }, typeText: { enableRichtext: false, @@ -483,7 +485,7 @@ export const CustomModelNode = (props) => { updateProperty(index, "propertyType", value); }} /> - {property.type === 'Text' &&( { updateProperty(index, "typeText.enableRichtext", value); }} />)} - {(property.type === 'Integer' || property.type === 'Float') &&( + {(property.propertyType === 'Integer' || property.propertyType === 'Float') &&(
{ )}
)} - {(property.type === 'Integer' || property.type === 'Float') && (property.typeNumber?.enableSlider) && + {(property.propertyType === 'Integer' || property.propertyType === 'Float') && (property.typeNumber?.enableSlider) &&
{ }} />
- }{((property.type === 'Integer' || property.type === 'Float') && (property.typeNumber?.enableSlider && property.typeNumber?.setRange)) && + }{((property.propertyType === 'Integer' || property.propertyType === 'Float') && (property.typeNumber?.enableSlider && property.typeNumber?.setRange)) &&
{ />
} - {property.type === 'DateTime' &&( { updateProperty(index, "typeDateTime.formatDateTime", value); }} />)} - {property.type === 'Select' &&( { updateProperty(index, "typeSelect.selectboxValues", value); }} />)} - {property.type === 'Select' &&( { updateProperty(index, "typeSelect.renderType", value); }} />)} - {property.type === 'Select' && { updateProperty(index, "typeSelect.foreignTable", value); }} />} - {property.type === 'Select' && { updateProperty(index, "typeSelect.whereClause", value); }} />} - {property.type === 'Select' && { updateProperty(index, "size", value); }} />} - {property.type === 'Text' && !property.typeText?.enableRichtext && { updateProperty(index, "rows", value); }} />} - {(property.type === 'Select' || property.type === 'File') && (
+ {(property.propertyType === 'Select' || property.propertyType === 'File') && (
{ }} />
)} - {(property.type === 'File') && (
+ {(property.propertyType === 'File') && (
{ }} />
)} - {property.type === 'Boolean' &&( { updateProperty(index, "typeBoolean.renderType", value); }} />)} - {property.type === 'Boolean' && ( { updateProperty(index, "typeBoolean.booleanValues", value); }} />)} - {property.type === 'Password' &&( { updateProperty(index, "typePassword.renderPasswordGenerator", value); }} />) } - {property.type === 'ColorPicker' &&( { onChange={(value) => { updateProperty(index, "typeColor.setValuesColorPicker", value); }} />)} - {(property.type === 'ColorPicker' && property.typeColor?.setValuesColorPicker) &&( { }} /> { - updateProperty(index, "isRequired", value); + updateProperty(index, "propertyIsRequired", value); }} /> { isAdvancedOptionsVisible && ( { - updateProperty(index, "isNullable", value); + updateProperty(index, "propertyIsNullable", value); }} /> )} { isAdvancedOptionsVisible && ( { - updateProperty(index, "excludeField", value); + updateProperty(index, "propertyIsExcludeField", value); }} /> )} { isAdvancedOptionsVisible && ( { - updateProperty(index, "isl10nModeExlude", value); + updateProperty(index, "propertyIsL10nModeExclude", value); }} /> )}
@@ -776,7 +778,7 @@ export const CustomModelNode = (props) => { props.data.relations.map((relation, index) => { return (
-{/*
+                                {/*                                
                                     {JSON.stringify(index, null, 2)}
                                 

relation

@@ -834,11 +836,11 @@ export const CustomModelNode = (props) => { }} /> { - updateRelation(index, "isExcludeField", value); + updateRelation(index, "excludeField", value); }} /> { - if (validation?.isRequired && value?.trim() === '') { + if (validation?.propertyIsRequired && value?.trim() === '') { setValidationErrors(prevState => ({...prevState, [identifier]: true})); return false; } diff --git a/Build/Sources/components/forms/textarea/TextareaComponent.jsx b/Build/Sources/components/forms/textarea/TextareaComponent.jsx index 948826074..01d42b9c7 100644 --- a/Build/Sources/components/forms/textarea/TextareaComponent.jsx +++ b/Build/Sources/components/forms/textarea/TextareaComponent.jsx @@ -24,11 +24,11 @@ const TextareaComponent = ({label = '', placeholder, identifier = '', initialVal return null; // Rückgabewert null, wenn keine Validierung vorhanden ist } - if(!validation?.isRequired) { + if(!validation?.propertyIsRequired) { return true; } - if (validation?.isRequired && value?.trim() === '') { + if (validation?.propertyIsRequired && value?.trim() === '') { setValidationErrors(prevState => ({...prevState, [identifier]: true})); return false; } diff --git a/Build/Sources/components/jsonstring-11.json b/Build/Sources/components/jsonstring-11.json deleted file mode 100644 index e69de29bb..000000000 diff --git a/Build/Sources/components/jsonstring-112.json b/Build/Sources/components/jsonstring-112.json deleted file mode 100644 index e69de29bb..000000000 diff --git a/Build/Sources/components/jsonstring-v12.json b/Build/Sources/components/jsonstring-v12.json deleted file mode 100644 index e69de29bb..000000000 diff --git a/Build/Sources/components/jsonstring-v122.json b/Build/Sources/components/jsonstring-v122.json deleted file mode 100644 index 764a0cd43..000000000 --- a/Build/Sources/components/jsonstring-v122.json +++ /dev/null @@ -1 +0,0 @@ -{"id":4,"method":"saveWiring","name":"Test","params":{"language":"extbaseModeling","working":"{\"modules\":[{\"config\":{\"position\":[481.10227262733883,2.9610739963837034]},\"name\":\"Foos\",\"value\":{\"actionGroup\":{\"_default0_index\":false,\"_default1_list\":false,\"_default2_show\":false,\"_default3_new_create\":false,\"_default4_edit_update\":false,\"_default5_delete\":false,\"customActions\":[]},\"name\":\"Foos\",\"objectsettings\":{\"addDeletedField\":true,\"addHiddenField\":true,\"addStarttimeEndtimeFields\":true,\"aggregateRoot\":false,\"categorizable\":false,\"description\":\"\",\"mapToTable\":\"\",\"parentClass\":\"\",\"sorting\":false,\"type\":\"Entity\",\"uid\":\"1173301976935\"},\"propertyGroup\":{\"properties\":[]},\"relationGroup\":{\"relations\":[{\"foreignRelationClass\":\"\",\"lazyLoading\":true,\"propertyIsExcludeField\":true,\"relationDescription\":\"\",\"relationName\":\"rel\",\"relationType\":\"zeroToOne\",\"relationWire\":\"[wired]\",\"renderType\":\"selectSingle\",\"uid\":\"dd71d893-8fa0-49b9-9aef-e230627803e3\"}]}}},{\"config\":{\"position\":[880.6535299657737,298.42529023958286]},\"name\":\"Bar\",\"value\":{\"actionGroup\":{\"_default0_index\":false,\"_default1_list\":false,\"_default2_show\":false,\"_default3_new_create\":false,\"_default4_edit_update\":false,\"_default5_delete\":false,\"customActions\":[]},\"name\":\"Bar\",\"objectsettings\":{\"addDeletedField\":true,\"addHiddenField\":true,\"addStarttimeEndtimeFields\":true,\"aggregateRoot\":false,\"categorizable\":false,\"description\":\"\",\"mapToTable\":\"\",\"parentClass\":\"\",\"sorting\":false,\"type\":\"Entity\",\"uid\":\"1173301976935\"},\"propertyGroup\":{\"properties\":[]},\"relationGroup\":{\"relations\":[]}}}],\"properties\":{\"backendModules\":[],\"description\":\"\",\"emConf\":{\"category\":\"backend\",\"custom_category\":\"\",\"dependsOn\":\"\",\"disableLocalization\":false,\"disableVersioning\":false,\"generateDocumentationTemplate\":false,\"generateEditorConfig\":true,\"generateEmptyGitRepository\":true,\"sourceLanguage\":\"en\",\"state\":\"alpha\",\"targetVersion\":\"12.4.0-12.4.99\",\"version\":\"1.0.0\"},\"extensionKey\":\"test\",\"name\":\"Test\",\"originalExtensionKey\":\"\",\"originalVendorName\":\"\",\"persons\":[],\"plugins\":[],\"vendorName\":\"Test\"},\"wires\":[]}"},"version":"json-rpc-2.0"} diff --git a/Build/Sources/components/listWirings.json b/Build/Sources/components/listWirings.json deleted file mode 100644 index d3187bd24..000000000 --- a/Build/Sources/components/listWirings.json +++ /dev/null @@ -1,192 +0,0 @@ -[ - { - "name": "test", - "storagePath": "/var/www/html/Packages/", - "working": { - "modules": [ - { - "config": { - "position": [ - 450, - 136 - ] - }, - "name": "Bar", - "value": { - "actionGroup": { - "_default0_index": false, - "_default1_list": false, - "_default2_show": false, - "_default3_new_create": false, - "_default4_edit_update": false, - "_default5_delete": false, - "customActions": [] - }, - "name": "Bar", - "objectsettings": { - "addDeletedField": true, - "addHiddenField": true, - "addStarttimeEndtimeFields": true, - "aggregateRoot": false, - "categorizable": false, - "description": "", - "mapToTable": "", - "parentClass": "", - "sorting": false, - "type": "Entity", - "uid": "1173301976935" - }, - "propertyGroup": { - "properties": [ - { - "allowedFileTypes": "", - "maxItems": "1", - "propertyDescription": "", - "propertyIsL10nModeExclude": false, - "propertyIsNullable": false, - "propertyIsRequired": false, - "propertyName": "Bla", - "propertyType": "RichText", - "uid": "0a12e0d1-fdf1-451c-8fc2-95db85c36a9e" - } - ] - }, - "relationGroup": { - "relations": [] - } - } - }, - { - "config": { - "position": [ - 126, - 10 - ] - }, - "name": "Foo", - "value": { - "actionGroup": { - "_default0_index": false, - "_default1_list": false, - "_default2_show": false, - "_default3_new_create": false, - "_default4_edit_update": false, - "_default5_delete": false, - "customActions": [] - }, - "name": "Foo", - "objectsettings": { - "addDeletedField": true, - "addHiddenField": true, - "addStarttimeEndtimeFields": true, - "aggregateRoot": false, - "categorizable": false, - "description": "", - "mapToTable": "", - "parentClass": "", - "sorting": false, - "type": "Entity", - "uid": "1173301976935" - }, - "propertyGroup": { - "properties": [] - }, - "relationGroup": { - "relations": [ - { - "foreignRelationClass": "", - "lazyLoading": true, - "propertyIsExcludeField": true, - "relationDescription": "", - "relationName": "Rel", - "relationType": "zeroToOne", - "relationWire": "[wired]", - "renderType": "selectSingle", - "uid": "b61beaae-b7fa-445e-9b51-62e3b0e8eedc", - "advancedSettings": { - "relationType": "zeroToOne", - "renderType": "selectSingle", - "propertyIsExcludeField": true, - "lazyLoading": true, - "relationDescription": "", - "foreignRelationClass": "" - } - } - ] - } - } - } - ], - "properties": { - "backendModules": [], - "description": "", - "emConf": { - "category": "backend", - "custom_category": "", - "dependsOn": "", - "disableLocalization": false, - "disableVersioning": false, - "generateDocumentationTemplate": false, - "generateEditorConfig": false, - "generateEmptyGitRepository": true, - "sourceLanguage": "en", - "state": "alpha", - "targetVersion": "12.4.0-12.4.99", - "version": "1.0.0" - }, - "extensionKey": "test", - "name": "Test", - "originalExtensionKey": "test", - "originalVendorName": "Test", - "persons": [], - "plugins": [], - "vendorName": "Test" - }, - "wires": [ - { - "src": { - "moduleId": 1, - "terminal": "relationWire_0", - "uid": "reactflow__edge-dndnode_4-dndnode_3" - }, - "tgt": { - "moduleId": 0, - "terminal": "SOURCES", - "uid": "dndnode_4" - } - } - ], - "storagePath": "/var/www/html/Packages/", - "log": { - "last_modified": "2023-10-19 01:39", - "extension_builder_version": "dev-typo3-12-reactjs", - "be_user": " (1)" - } - } - }, - { - "name":"demoextensionv11", - "storagePath":"/var/www/html/Packages/", - "working":"{\"modules\":[{\"config\":{\"position\":[682,140]},\"name\":\"New Model Object\",\"value\":{\"actionGroup\":{\"_default0_index\":true,\"_default1_list\":true,\"_default2_show\":true,\"_default3_new_create\":true,\"_default4_edit_update\":true,\"_default5_delete\":true,\"customActions\":[\"test\",\"foo\",\"bar\"]},\"name\":\"Product\",\"objectsettings\":{\"addDeletedField\":true,\"addHiddenField\":true,\"addStarttimeEndtimeFields\":true,\"aggregateRoot\":true,\"categorizable\":true,\"description\":\"Lorem Ipsum Dolor Sit Amit\",\"mapToTable\":\"\",\"parentClass\":\"\",\"sorting\":true,\"type\":\"Entity\",\"uid\":\"1173301976935\"},\"propertyGroup\":{\"properties\":[{\"allowedFileTypes\":\"\",\"maxItems\":\"1\",\"propertyDescription\":\"\",\"propertyIsExcludeField\":true,\"propertyIsL10nModeExclude\":false,\"propertyIsNullable\":false,\"propertyIsRequired\":false,\"propertyName\":\"titelll\",\"propertyType\":\"String\",\"uid\":\"1357067104948\"},{\"allowedFileTypes\":\"\",\"maxItems\":\"1\",\"propertyDescription\":\"\",\"propertyIsExcludeField\":true,\"propertyIsL10nModeExclude\":false,\"propertyIsNullable\":false,\"propertyIsRequired\":false,\"propertyName\":\"image\",\"propertyType\":\"File\",\"uid\":\"1001056457269\"},{\"allowedFileTypes\":\"\",\"maxItems\":\"1\",\"propertyDescription\":\"\",\"propertyIsExcludeField\":true,\"propertyIsL10nModeExclude\":false,\"propertyIsNullable\":false,\"propertyIsRequired\":false,\"propertyName\":\"pages\",\"propertyType\":\"Integer\",\"uid\":\"1317692161560\"}]},\"relationGroup\":{\"relations\":[{\"foreignRelationClass\":\"\",\"lazyLoading\":false,\"propertyIsExcludeField\":true,\"relationDescription\":\"\",\"relationName\":\"author\",\"relationType\":\"zeroToOne\",\"relationWire\":\"[wired]\",\"renderType\":\"selectSingle\",\"uid\":\"905857860343\",\"advancedSettings\":{\"relationType\":\"zeroToOne\",\"renderType\":\"selectSingle\",\"propertyIsExcludeField\":true,\"lazyLoading\":false,\"relationDescription\":\"\",\"foreignRelationClass\":\"\"}}]}}},{\"config\":{\"position\":[370,514]},\"name\":\"New Model Object\",\"value\":{\"actionGroup\":{\"_default0_index\":false,\"_default1_list\":false,\"_default2_show\":false,\"_default3_new_create\":false,\"_default4_edit_update\":false,\"_default5_delete\":false,\"customActions\":[]},\"name\":\"Author\",\"objectsettings\":{\"addDeletedField\":true,\"addHiddenField\":true,\"addStarttimeEndtimeFields\":true,\"aggregateRoot\":true,\"categorizable\":false,\"description\":\"\",\"mapToTable\":\"\",\"parentClass\":\"\",\"sorting\":false,\"type\":\"Entity\",\"uid\":\"971676471092\"},\"propertyGroup\":{\"properties\":[]},\"relationGroup\":{\"relations\":[]}}},{\"config\":{\"position\":[901,329]},\"name\":\"New Model Object\",\"value\":{\"actionGroup\":{\"_default0_index\":false,\"_default1_list\":false,\"_default2_show\":false,\"_default3_new_create\":false,\"_default4_edit_update\":false,\"_default5_delete\":false,\"customActions\":[]},\"name\":\"Test\",\"objectsettings\":{\"addDeletedField\":true,\"addHiddenField\":true,\"addStarttimeEndtimeFields\":true,\"aggregateRoot\":false,\"categorizable\":false,\"description\":\"\",\"mapToTable\":\"\",\"parentClass\":\"\",\"sorting\":false,\"type\":\"Entity\",\"uid\":\"1533087399859\"},\"propertyGroup\":{\"properties\":[]},\"relationGroup\":{\"relations\":[{\"foreignRelationClass\":\"\",\"lazyLoading\":false,\"propertyIsExcludeField\":true,\"relationDescription\":\"\",\"relationName\":\"author\",\"relationType\":\"zeroToOne\",\"relationWire\":\"[wired]\",\"renderType\":\"selectSingle\",\"uid\":\"966207119111\",\"advancedSettings\":{\"relationType\":\"zeroToOne\",\"renderType\":\"selectSingle\",\"propertyIsExcludeField\":true,\"lazyLoading\":false,\"relationDescription\":\"\",\"foreignRelationClass\":\"\"}}]}}},{\"config\":{\"position\":[82,261]},\"name\":\"New Model Object\",\"value\":{\"actionGroup\":{\"_default0_index\":false,\"_default1_list\":false,\"_default2_show\":false,\"_default3_new_create\":false,\"_default4_edit_update\":false,\"_default5_delete\":false,\"customActions\":[]},\"name\":\"Foo\",\"objectsettings\":{\"addDeletedField\":true,\"addHiddenField\":true,\"addStarttimeEndtimeFields\":true,\"aggregateRoot\":false,\"categorizable\":false,\"description\":\"\",\"mapToTable\":\"\",\"parentClass\":\"\",\"sorting\":false,\"type\":\"Entity\",\"uid\":\"333458384440\"},\"propertyGroup\":{\"properties\":[]},\"relationGroup\":{\"relations\":[{\"foreignRelationClass\":\"\",\"lazyLoading\":false,\"propertyIsExcludeField\":true,\"relationDescription\":\"\",\"relationName\":\"rasd\",\"relationType\":\"zeroToOne\",\"relationWire\":\"[wired]\",\"renderType\":\"selectSingle\",\"uid\":\"1336729212119\",\"advancedSettings\":{\"relationType\":\"zeroToOne\",\"renderType\":\"selectSingle\",\"propertyIsExcludeField\":true,\"lazyLoading\":false,\"relationDescription\":\"\",\"foreignRelationClass\":\"\"}}]}}}],\"properties\":{\"backendModules\":[],\"description\":\"Demo Extension from EB v12\",\"emConf\":{\"category\":\"plugin\",\"custom_category\":\"\",\"dependsOn\":\"typo3 => 11.5.0-11.5.99\\n\",\"disableLocalization\":true,\"disableVersioning\":true,\"generateDocumentationTemplate\":false,\"generateEditorConfig\":true,\"generateEmptyGitRepository\":true,\"sourceLanguage\":\"en\",\"state\":\"alpha\",\"targetVersion\":\"11.5.0-11.5.99\",\"version\":\"1.0.0\"},\"extensionKey\":\"demoextensionv11\",\"name\":\"Demo Extension v11\",\"originalExtensionKey\":\"demoextensionv11\",\"originalVendorName\":\"Treupo\",\"persons\":[],\"plugins\":[],\"vendorName\":\"Treupo\"},\"wires\":[{\"src\":{\"moduleId\":0,\"terminal\":\"relationWire_0\",\"uid\":\"905857860343\"},\"tgt\":{\"moduleId\":1,\"terminal\":\"SOURCES\",\"uid\":\"971676471092\"}},{\"src\":{\"moduleId\":2,\"terminal\":\"relationWire_0\",\"uid\":\"966207119111\"},\"tgt\":{\"moduleId\":1,\"terminal\":\"SOURCES\",\"uid\":\"971676471092\"}},{\"src\":{\"moduleId\":3,\"terminal\":\"relationWire_0\",\"uid\":\"1336729212119\"},\"tgt\":{\"moduleId\":0,\"terminal\":\"SOURCES\",\"uid\":\"1173301976935\"}}],\"storagePath\":\"\\/var\\/www\\/html\\/Packages\\/\",\"log\":{\"last_modified\":\"2023-07-25 07:42\",\"extension_builder_version\":\"dev-typo3-12-reactjs\",\"be_user\":\" (1)\"}}" - }, - { - "name":"system_notes", - "storagePath":"/var/www/html/Packages/", - "working":"{\"modules\":[],\"properties\":{\"backendModules\":[],\"description\":\"\",\"emConf\":{\"category\":\"backend\",\"custom_category\":\"\",\"dependsOn\":\"\",\"disableLocalization\":false,\"disableVersioning\":false,\"generateDocumentationTemplate\":true,\"generateEditorConfig\":true,\"generateEmptyGitRepository\":true,\"sourceLanguage\":\"en\",\"state\":\"alpha\",\"targetVersion\":\"12.4.0-12.4.99\",\"version\":\"1.0.0\"},\"extensionKey\":\"system_notes\",\"name\":\"Test\",\"originalExtensionKey\":\"system_notes\",\"originalVendorName\":\"Treupo\",\"persons\":[],\"plugins\":[],\"vendorName\":\"Treupo\"},\"wires\":[],\"storagePath\":\"\\/var\\/www\\/html\\/Packages\\/\",\"log\":{\"last_modified\":\"2023-07-09 09:28\",\"extension_builder_version\":\"dev-typo3-12-reactjs\",\"be_user\":\" (1)\"}}" - }, - { - "name":"Extensionkex", - "storagePath":"/var/www/html/Packages/", - "working":"{\"modules\":[{\"config\":{\"position\":[254,56]},\"name\":\"Test\",\"value\":{\"actionGroup\":{\"_default0_index\":true,\"_default1_list\":true,\"_default2_show\":true,\"_default3_new_create\":false,\"_default4_edit_update\":false,\"_default5_delete\":false,\"customActions\":[]},\"name\":\"Test\",\"objectsettings\":{\"addDeletedField\":true,\"addHiddenField\":true,\"addStarttimeEndtimeFields\":true,\"aggregateRoot\":false,\"categorizable\":false,\"description\":\"\",\"mapToTable\":\"\",\"parentClass\":\"\",\"sorting\":false,\"type\":\"Entity\",\"uid\":\"1173301976935\"},\"propertyGroup\":{\"properties\":[{\"allowedFileTypes\":\"\",\"maxItems\":\"1\",\"propertyDescription\":\"\",\"propertyIsL10nModeExclude\":false,\"propertyIsNullable\":true,\"propertyIsRequired\":true,\"propertyName\":\"Name\",\"propertyType\":\"RichText\",\"uid\":\"3aef8866-548c-41d2-bb83-b84a41cf8b0c\"}]},\"relationGroup\":{\"relations\":[]}}},{\"config\":{\"position\":[726,129]},\"name\":\"Zwei\",\"value\":{\"actionGroup\":{\"_default0_index\":true,\"_default1_list\":false,\"_default2_show\":false,\"_default3_new_create\":true,\"_default4_edit_update\":false,\"_default5_delete\":false,\"customActions\":[]},\"name\":\"Zwei\",\"objectsettings\":{\"addDeletedField\":true,\"addHiddenField\":true,\"addStarttimeEndtimeFields\":true,\"aggregateRoot\":false,\"categorizable\":false,\"description\":\"\",\"mapToTable\":\"\",\"parentClass\":\"\",\"sorting\":false,\"type\":\"Entity\",\"uid\":\"1173301976935\"},\"propertyGroup\":{\"properties\":[]},\"relationGroup\":{\"relations\":[]}}}],\"properties\":{\"backendModules\":[{\"actions\":{\"controllerActionCombinations\":\"\"},\"description\":\"\",\"key\":\"\",\"mainModule\":\"\",\"name\":\"\",\"tabLabel\":\"\",\"id\":\"0.969830190542815\"}],\"description\":\"\",\"emConf\":{\"category\":\"backend\",\"custom_category\":\"\",\"dependsOn\":\"\",\"disableLocalization\":false,\"disableVersioning\":false,\"generateDocumentationTemplate\":false,\"generateEditorConfig\":true,\"generateEmptyGitRepository\":false,\"sourceLanguage\":\"en\",\"state\":\"alpha\",\"targetVersion\":\"12.4.0-12.4.99\",\"version\":\"1.0.0\"},\"extensionKey\":\"Extensionkex\",\"name\":\"Testextension\",\"originalExtensionKey\":\"Extensionkex\",\"originalVendorName\":\"Treupo\",\"persons\":[],\"plugins\":[],\"vendorName\":\"Treupo\"},\"wires\":[],\"storagePath\":\"\\/var\\/www\\/html\\/Packages\\/\",\"log\":{\"last_modified\":\"2023-10-17 03:08\",\"extension_builder_version\":\"dev-typo3-12-reactjs\",\"be_user\":\" (1)\"}}" - }, - { - "name":"demo_extension", - "storagePath":"/var/www/html/Packages/", - "working":"{\"modules\":[],\"properties\":{\"backendModules\":[],\"description\":\"This is a demo extension\",\"emConf\":{\"category\":\"custom\",\"custom_category\":\"\",\"dependsOn\":\"TYPO3 12\",\"disableLocalization\":true,\"disableVersioning\":true,\"generateDocumentationTemplate\":true,\"generateEditorConfig\":false,\"generateEmptyGitRepository\":true,\"sourceLanguage\":\"en\",\"state\":\"beta\",\"targetVersion\":\"1.0.0.0-1.0.0.99\",\"version\":\"1.0.0\"},\"extensionKey\":\"demo_extension\",\"name\":\"Demo Extension\",\"originalExtensionKey\":\"demo_extension\",\"originalVendorName\":\"Treupo\",\"persons\":[],\"plugins\":[],\"vendorName\":\"Treupo\"},\"wires\":[],\"storagePath\":\"\\/var\\/www\\/html\\/Packages\\/\",\"log\":{\"last_modified\":\"2023-10-20 03:50\",\"extension_builder_version\":\"dev-typo3-12-reactjs\",\"be_user\":\" (1)\"}}" - }, - { - "name":"mybooks", - "storagePath":"/var/www/html/Packages/", - "working":"{\"modules\":[{\"config\":{\"position\":[140,89]},\"name\":\"Book\",\"value\":{\"actionGroup\":{\"_default0_index\":true,\"_default1_list\":true,\"_default2_show\":true,\"_default3_new_create\":true,\"_default4_edit_update\":true,\"_default5_delete\":true,\"customActions\":[]},\"name\":\"Book\",\"objectsettings\":{\"addDeletedField\":true,\"addHiddenField\":true,\"addStarttimeEndtimeFields\":true,\"aggregateRoot\":false,\"categorizable\":false,\"description\":\"\",\"mapToTable\":\"\",\"parentClass\":\"\",\"sorting\":false,\"type\":\"Entity\",\"uid\":\"1173301976935\"},\"propertyGroup\":{\"properties\":[{\"allowedFileTypes\":\"\",\"maxItems\":\"1\",\"propertyDescription\":\"\",\"propertyIsL10nModeExclude\":false,\"propertyIsNullable\":false,\"propertyIsRequired\":false,\"propertyName\":\"title\",\"propertyType\":\"String\",\"uid\":\"2693a021-1401-4bc8-92d8-73f219f8677d\"},{\"allowedFileTypes\":\"\",\"maxItems\":\"1\",\"propertyDescription\":\"\",\"propertyIsL10nModeExclude\":false,\"propertyIsNullable\":false,\"propertyIsRequired\":false,\"propertyName\":\"description\",\"propertyType\":\"RichText\",\"uid\":\"0d156b90-5639-41f4-8222-b70b25ceb27e\"},{\"allowedFileTypes\":\"\",\"maxItems\":\"1\",\"propertyDescription\":\"\",\"propertyIsL10nModeExclude\":false,\"propertyIsNullable\":false,\"propertyIsRequired\":false,\"propertyName\":\"pages\",\"propertyType\":\"Integer\",\"uid\":\"55354482-76c6-426b-98f2-3b649ee94896\"},{\"allowedFileTypes\":\"\",\"maxItems\":\"1\",\"propertyDescription\":\"\",\"propertyIsL10nModeExclude\":false,\"propertyIsNullable\":false,\"propertyIsRequired\":false,\"propertyName\":\"publicationdate\",\"propertyType\":\"Date\",\"uid\":\"f58cde23-1ac2-44c3-9c82-1ef1b5ef24dd\"}]},\"relationGroup\":{\"relations\":[{\"foreignRelationClass\":\"\",\"lazyLoading\":true,\"propertyIsExcludeField\":true,\"relationDescription\":\"\",\"relationName\":\"author\",\"relationType\":\"zeroToMany\",\"relationWire\":\"[wired]\",\"renderType\":\"selectSingle\",\"uid\":\"99b32d71-ea80-4db1-85d0-d1bfe844a488\",\"advancedSettings\":{\"relationType\":\"zeroToMany\",\"renderType\":\"selectSingle\",\"propertyIsExcludeField\":true,\"lazyLoading\":true,\"relationDescription\":\"\",\"foreignRelationClass\":\"\"}}]}}},{\"config\":{\"position\":[745,229]},\"name\":\"Publisher\",\"value\":{\"actionGroup\":{\"_default0_index\":true,\"_default1_list\":true,\"_default2_show\":true,\"_default3_new_create\":true,\"_default4_edit_update\":true,\"_default5_delete\":true,\"customActions\":[]},\"name\":\"Publisher\",\"objectsettings\":{\"addDeletedField\":true,\"addHiddenField\":true,\"addStarttimeEndtimeFields\":true,\"aggregateRoot\":false,\"categorizable\":false,\"description\":\"\",\"mapToTable\":\"\",\"parentClass\":\"\",\"sorting\":false,\"type\":\"Entity\",\"uid\":\"1173301976935\"},\"propertyGroup\":{\"properties\":[{\"allowedFileTypes\":\"\",\"maxItems\":\"1\",\"propertyDescription\":\"\",\"propertyIsL10nModeExclude\":false,\"propertyIsNullable\":false,\"propertyIsRequired\":false,\"propertyName\":\"name\",\"propertyType\":\"String\",\"uid\":\"ee7205e2-6cf5-4712-9693-8d824fbb2375\"},{\"allowedFileTypes\":\"\",\"maxItems\":\"1\",\"propertyDescription\":\"\",\"propertyIsL10nModeExclude\":false,\"propertyIsNullable\":false,\"propertyIsRequired\":false,\"propertyName\":\"logo\",\"propertyType\":\"File\",\"uid\":\"f0b99c29-57a2-46a8-993e-e609fd073d6b\"}]},\"relationGroup\":{\"relations\":[]}}},{\"config\":{\"position\":[461,404]},\"name\":\"Author\",\"value\":{\"actionGroup\":{\"_default0_index\":true,\"_default1_list\":true,\"_default2_show\":true,\"_default3_new_create\":true,\"_default4_edit_update\":true,\"_default5_delete\":true,\"customActions\":[]},\"name\":\"Author\",\"objectsettings\":{\"addDeletedField\":true,\"addHiddenField\":true,\"addStarttimeEndtimeFields\":true,\"aggregateRoot\":false,\"categorizable\":false,\"description\":\"\",\"mapToTable\":\"\",\"parentClass\":\"\",\"sorting\":false,\"type\":\"Entity\",\"uid\":\"1173301976935\"},\"propertyGroup\":{\"properties\":[{\"allowedFileTypes\":\"\",\"maxItems\":\"1\",\"propertyDescription\":\"\",\"propertyIsL10nModeExclude\":false,\"propertyIsNullable\":false,\"propertyIsRequired\":false,\"propertyName\":\"firstname\",\"propertyType\":\"String\",\"uid\":\"511381c8-9f73-417a-a21c-3a9421d5b331\"},{\"allowedFileTypes\":\"\",\"maxItems\":\"1\",\"propertyDescription\":\"\",\"propertyIsL10nModeExclude\":false,\"propertyIsNullable\":false,\"propertyIsRequired\":false,\"propertyName\":\"lastname\",\"propertyType\":\"String\",\"uid\":\"82ad470f-1c18-48c8-8c22-ad8872b2b30c\"},{\"allowedFileTypes\":\"\",\"maxItems\":\"1\",\"propertyDescription\":\"\",\"propertyIsL10nModeExclude\":false,\"propertyIsNullable\":false,\"propertyIsRequired\":false,\"propertyName\":\"city\",\"propertyType\":\"String\",\"uid\":\"de147ff8-925b-480b-b8db-4a6d1d2de249\"}]},\"relationGroup\":{\"relations\":[]}}}],\"properties\":{\"backendModules\":[{\"actions\":{\"controllerActionCombinations\":\"\",\"controllerActionsCachable\":\"Book => list, new, show, create, edit, update, delete\"},\"description\":\"Module for editing the books\",\"key\":\"books\",\"mainModule\":\"web\",\"name\":\"Books\",\"tabLabel\":\"Books\",\"id\":\"0.5633048444289948\"}],\"description\":\"Testextension for testing the extension_builder\",\"emConf\":{\"category\":\"plugin\",\"custom_category\":\"\",\"dependsOn\":\"typo3 => 12.4.0-12.4.99\\nnews => 11.2.0\",\"disableLocalization\":false,\"disableVersioning\":false,\"generateDocumentationTemplate\":true,\"generateEditorConfig\":true,\"generateEmptyGitRepository\":true,\"sourceLanguage\":\"de\",\"state\":\"beta\",\"targetVersion\":\"12.4.0-12.4.99\",\"version\":\"0.0.1\"},\"extensionKey\":\"mybooks\",\"name\":\"MyBooks\",\"originalExtensionKey\":\"mybooks\",\"originalVendorName\":\"Treupo\",\"persons\":[{\"company\":\"Wacon\",\"email\":\"info@treupo.de\",\"name\":\"Philipp Kuhlmay\",\"role\":\"Developer\",\"id\":\"0.41020161805050526\"},{\"company\":\"Cool company\",\"email\":\"info@treupo.de\",\"name\":\"John Doe\",\"role\":\"Developer\",\"id\":\"0.1433716572239263\"}],\"plugins\":[{\"actions\":{\"controllerActionCombinations\":\"\",\"noncacheableActions\":\"\"},\"description\":\"My list of all the books\",\"key\":\"booklist\",\"name\":\"Book list\",\"id\":\"0.19825226043478694\",\"controllerActionsCachable\":\"Book => list, show\",\"controllerActionsNonCachable\":\"Book => new, edit, delete\"}],\"vendorName\":\"Treupo\"},\"wires\":[{\"src\":{\"moduleId\":0,\"terminal\":\"relationWire_0\",\"uid\":\"reactflow__edge-dndnode_0-dndnode_2\"},\"tgt\":{\"moduleId\":2,\"terminal\":\"SOURCES\",\"uid\":\"dndnode_0\"}}],\"storagePath\":\"\\/var\\/www\\/html\\/Packages\\/\",\"log\":{\"last_modified\":\"2023-10-20 02:43\",\"extension_builder_version\":\"dev-typo3-12-reactjs\",\"be_user\":\" (1)\"}}" - } -] diff --git a/Build/Sources/helper/converter/convertModulesToNodes.js b/Build/Sources/helper/converter/convertModulesToNodes.js index 8ca46c2c6..bc995baad 100644 --- a/Build/Sources/helper/converter/convertModulesToNodes.js +++ b/Build/Sources/helper/converter/convertModulesToNodes.js @@ -1,53 +1,13 @@ function convertModulesToNodes(modules) { - // needed for the node - /* - { - id, - type, - position: { - x, - y - }, - data: { - label, - objectType, - isAggregateRoot, - enableSorting, - addDeletedField, - addHiddenField, - addStarttimeEndtimeFields, - enableCategorization, - description, - mapToExistingTable, - extendExistingModelClass, - actions: { - actionIndex, - actionList, - actionShow, - actionNewCreate, - actionEditUpdate, - actionDelete - }, - customActions -> Array, - properties -> Array, - relations -> Array - }, - positionAbsolute: { - x, - y - } - } - */ - for (let i = 0; i < modules.length; i++) { - console.log(`Element ${i}:`, modules[i]); + // console.log(`Element ${i}:`, modules[i]); // Hier kannst du auf einzelne Eigenschaften des aktuellen Objekts zugreifen, z.B.: - console.log(`Name: ${modules[i].name}`); + // console.log(`Name: ${modules[i].name}`); // Und weitere Verarbeitungen für jedes Objekt im Array durchführen... } - console.log('convertModuleToNodes'); - console.log(modules); + // console.log('convertModuleToNodes'); + // console.log(modules); let result = modules.map((item, index) => ({ id: `dndnode_${index}`, @@ -93,8 +53,8 @@ function convertModulesToNodes(modules) { dragging: false })); - console.log('result'); - console.log(result); + // console.log('result'); + // console.log(result); return result; } @@ -112,48 +72,3 @@ function getModelName(item) { } export default convertModulesToNodes; - -/* -{ - "id": "dndnode_0", - "type": "customModel", - "position": { - "x": 550, - "y": 131 - }, - "data": { - "label": "Testmodule", - "objectType": "", - "isAggregateRoot": true, - "enableSorting": false, - "addDeletedField": true, - "addHiddenField": true, - "addStarttimeEndtimeFields": true, - "enableCategorization": false, - "description": "", - "mapToExistingTable": "", - "extendExistingModelClass": "", - "actions": { - "actionIndex": true, - "actionList": true, - "actionShow": false, - "actionNewCreate": false, - "actionEditUpdate": false, - "actionDelete": false - }, - "customActions": [], - "properties": [], - "relations": [] - }, - "dragHandle": ".drag-handle", - "draggable": true, - "width": 300, - "height": 257, - "selected": true, - "positionAbsolute": { - "x": 550, - "y": 131 - }, - "dragging": false -} - */ diff --git a/Build/Sources/helper/converter/convertRelationsToReactFlowRelations.js b/Build/Sources/helper/converter/convertRelationsToReactFlowRelations.js new file mode 100644 index 000000000..c40cfb59a --- /dev/null +++ b/Build/Sources/helper/converter/convertRelationsToReactFlowRelations.js @@ -0,0 +1,78 @@ +// from +// "wires": [ +// { +// "src": { +// "moduleId": 0, ➡️ array Index von Modul innerhalb von modules +// "terminal": "relationWire_0", ➡️ irrelevant +// "uid": "reactflow__edge-dndnode_0rel-dndnode_0-364bc27b-ad04-42e3-a548-792a8e54efcf-dndnode_1cmn-dndnode_1" => edges.id +// }, +// "tgt": { +// "moduleId": 1, ➡️ array Index von Modul innerhalb von modules +// "terminal": "SOURCES", ➡️ irrelevant +// "uid": "dndnode_0" +// } +// } +// ] + +// to +// "edges": [ +// { +// "source": "dndnode_0", +// "sourceHandle": "rel-dndnode_0-364bc27b-ad04-42e3-a548-792a8e54efcf", +// "target": "dndnode_1", +// "targetHandle": "cmn-dndnode_1", +// "id": "reactflow__edge-dndnode_0rel-dndnode_0-364bc27b-ad04-42e3-a548-792a8e54efcf-dndnode_1cmn-dndnode_1" +// } +function convertRelationsToReactFlowRelations(wires, modules) { + console.log("relations wires: ", wires); + + const edges = wires.map(wire => { + console.log("wire", wire); + + if (!wire.src || !wire.tgt) { + console.error('Fehler: Einige Wire-Objekte haben keine vollständigen src oder tgt Daten.', wire); + return null; + } + + // Finden der entsprechenden Module anhand der moduleId + const sourceModule = modules[wire.src.moduleId]; + const targetModule = modules[wire.tgt.moduleId]; + + if (!sourceModule || !targetModule) { + console.error('Fehler: Modul nicht gefunden für moduleId', wire.src.moduleId, wire.tgt.moduleId); + return null; + } + + // Generierung der Source und Target IDs + const source = `dndnode_${wire.src.moduleId}`; + const target = `dndnode_${wire.tgt.moduleId}`; + + // Extraktion der Handle-Informationen + const srcUidParts = wire.src.uid?.split("-"); + const sourceHandle = srcUidParts.slice(1, 3).join('-'); + const targetHandle = wire.tgt.terminal?.toLowerCase(); + + // Generierung der Edge-Id aus der Quell-UID + const edgeId = wire.src.uid; + + // Überprüfen, ob alle benötigten Daten vorhanden sind + if (!source || !target || !sourceHandle || !targetHandle || !edgeId) { + console.error('Fehler: Nicht alle erforderlichen Daten konnten aus dem Wire-Objekt extrahiert werden.', wire); + return null; + } + + // Erstellen des Edge-Objekts + return { + id: edgeId, + source: source, + sourceHandle: sourceHandle, + target: target, + targetHandle: targetHandle + }; + }); + + console.log("edges from method: ", edges); + return edges.filter(edge => edge !== null); +} + +export default convertRelationsToReactFlowRelations; diff --git a/Build/Sources/initialValues/author.js b/Build/Sources/initialValues/author.js index 29fad5163..f4b63f94c 100644 --- a/Build/Sources/initialValues/author.js +++ b/Build/Sources/initialValues/author.js @@ -8,7 +8,7 @@ const defaultAuthor = { export const roles = [ "Developer", "testing master", - "Project Manager", + "Product Manager", "Designer", "Tester", "Documentation Writer", diff --git a/Build/Sources/initialValues/modelProperty.js b/Build/Sources/initialValues/modelProperty.js index e65dace9e..ccd0b99a6 100644 --- a/Build/Sources/initialValues/modelProperty.js +++ b/Build/Sources/initialValues/modelProperty.js @@ -1,15 +1,16 @@ const modelProperty = { - name: '', - type: '', - description: '', - isRequired: false, - isNullable: false, - isExcludeField: false, - isl10nModeExlude: false, + propertyName: '', + propertyType: '', + propertyDescription: '', + propertyIsRequired: false, + propertyIsNullable: false, + propertyIsExcludeField: false, + propertyIsL10nModeExclude: false, typeSelect: { selectboxValues: "", renderType: "selectSingle", foreignTable: "", + whereClause: "", }, typeText: { enableRichtext: false, diff --git a/Classes/Configuration/ExtensionBuilderConfigurationManager.php b/Classes/Configuration/ExtensionBuilderConfigurationManager.php index 34dc4495e..e82fde66f 100644 --- a/Classes/Configuration/ExtensionBuilderConfigurationManager.php +++ b/Classes/Configuration/ExtensionBuilderConfigurationManager.php @@ -277,8 +277,7 @@ protected function mapAdvancedMode(array $jsonConfig, bool $prepareForModeler = $fieldsToMap = [ 'relationType', 'renderType', - 'propertyIsExcludeField', - 'propertyIsExcludeField', + 'excludeField', 'lazyLoading', 'relationDescription', 'foreignRelationClass' diff --git a/Documentation/ChangeLog/12-0-0.rst b/Documentation/ChangeLog/12-0-0.rst index 527906d46..d7e7b5dd3 100644 --- a/Documentation/ChangeLog/12-0-0.rst +++ b/Documentation/ChangeLog/12-0-0.rst @@ -5,6 +5,9 @@ Version 12.0.0 ============== +Superfluous dashes in the settings.yaml +^^^^^^^^^^ + Because of some important changes it could be necessary to update your :file:`EXT:my_extension/Configuration/ExtensionBuilder/settings.yaml` file manually. Please remove the dashes, as they could cause some problems while saving the extension. @@ -30,3 +33,55 @@ Please remove the dashes, as they could cause some problems while saving the ext .. note:: We haven't implemented an Upgrade wizard for this. This might change in the future. Feel free to open an Pull-Request on `GitHub `__ for this. + +.. versionchanged:: v12.0.0-beta.3 + + Converting propertyIsExcludeField to excludeField + ^^^^^^^^^^ + + If you used a version prior to v12.0.0-beta.3, you might need to change the property `propertyIsExcludeField` to `excludeField` in your TCA ExtensionBuilder.json file manually. + +Converting propertyIsExcludeField to excludeField +^^^^^^^^^^ + +If you used a version prior to `v12.0.0-beta.3`, you might need to change the property `propertyIsExcludeField` for relations to `excludeField` in your TCA ExtensionBuilder.json file manually. + +Example: + +.. code-block:: json + :caption: EXT:your_ext/Configuration/ExtensionBuilder/settings.yaml + +.. code-block:: json + :caption: from: + + { + "nodes": [ + { + "data": { + "relations": [ + { + "propertyIsExcludeField": true + } + ] + } + } + ] + } + +.. code-block:: json + :caption: to: + + { + "nodes": [ + { + "data": { + "relations": [ + { + "excludeField": true + } + ] + } + } + ] + } + diff --git a/Documentation/screenshots.json b/Documentation/screenshots.json index f0dc2f4f2..10195c82f 100644 --- a/Documentation/screenshots.json +++ b/Documentation/screenshots.json @@ -172,7 +172,7 @@ {"action": "click", "link": "//div[text()='Blog']/ancestor::div[contains(@class, \"WireIt-Container\")][1]//div[contains(@class,'relations')]//div[contains(@class,'inputEx-ListField-childContainer')]/div[1]//div[contains(@class,'inputEx-Group-collapseImg')]"}, {"action": "selectOption", "option": "1:n", "select": "//div[text()='Blog']/ancestor::div[contains(@class, \"WireIt-Container\")][1]//div[contains(@class,'relations')]//div[contains(@class,'inputEx-ListField-childContainer')]/div[1]//select[@name='relationType']"}, {"action": "fillField", "value": "Assign posts to blog.", "field": "//div[text()='Blog']/ancestor::div[contains(@class, \"WireIt-Container\")][1]//div[contains(@class,'relations')]//div[contains(@class,'inputEx-ListField-childContainer')]/div[1]//textarea[@name='relationDescription']"}, - {"action": "uncheckOption", "option": "//div[text()='Blog']/ancestor::div[contains(@class, \"WireIt-Container\")][1]//div[contains(@class,'relations')]//div[contains(@class,'inputEx-ListField-childContainer')]/div[1]//input[@name='propertyIsExcludeField']/preceding-sibling::input"}, + {"action": "uncheckOption", "option": "//div[text()='Blog']/ancestor::div[contains(@class, \"WireIt-Container\")][1]//div[contains(@class,'relations')]//div[contains(@class,'inputEx-ListField-childContainer')]/div[1]//input[@name='excludeField']/preceding-sibling::input"}, {"action": "checkOption", "option": "//div[text()='Blog']/ancestor::div[contains(@class, \"WireIt-Container\")][1]//div[contains(@class,'relations')]//div[contains(@class,'inputEx-ListField-childContainer')]/div[1]//input[@name='lazyLoading']/preceding-sibling::input"}, {"action": "click", "link": "#modelingLayer"}, {"comment": "Capture only the body of the first relation instead of all relations, since there is no separate DOM element that contains all relations in an expanded state. Change this as soon as there is an appropriate DOM element."}, diff --git a/Resources/Private/CodeTemplates/Extbase/Configuration/Extbase/Persistence/Classes.phpt b/Resources/Private/CodeTemplates/Extbase/Configuration/Extbase/Persistence/Classes.phpt index e7d695256..61e0b52a0 100644 --- a/Resources/Private/CodeTemplates/Extbase/Configuration/Extbase/Persistence/Classes.phpt +++ b/Resources/Private/CodeTemplates/Extbase/Configuration/Extbase/Persistence/Classes.phpt @@ -6,7 +6,7 @@ return ['tableName' => '{domainObject.databaseTableName}', 'properties' => [ - '{property.name}' => [ + '{property.propertyName}' => [ 'fieldName' => '{property.fieldName}' ], ] diff --git a/Resources/Private/CodeTemplates/Extbase/Configuration/Icons.phpt b/Resources/Private/CodeTemplates/Extbase/Configuration/Icons.phpt index fb5426bb7..3cdc905a7 100644 --- a/Resources/Private/CodeTemplates/Extbase/Configuration/Icons.phpt +++ b/Resources/Private/CodeTemplates/Extbase/Configuration/Icons.phpt @@ -1,7 +1,7 @@ - '{extension.extensionKey}-plugin-{plugin.key}' => [ + '{extension.shortExtensionKey}_{plugin.key}' => [ 'provider' => \TYPO3\CMS\Core\Imaging\IconProvider\SvgIconProvider::class, 'source' => 'EXT:{extension.extensionKey}/Resources/Public/Icons/user_plugin_{plugin.key}.svg' ], diff --git a/Resources/Private/CodeTemplates/Extbase/Configuration/TCA/Overrides/tt_content.phpt b/Resources/Private/CodeTemplates/Extbase/Configuration/TCA/Overrides/tt_content.phpt index 01648c26e..a7b3c70ea 100644 --- a/Resources/Private/CodeTemplates/Extbase/Configuration/TCA/Overrides/tt_content.phpt +++ b/Resources/Private/CodeTemplates/Extbase/Configuration/TCA/Overrides/tt_content.phpt @@ -4,14 +4,14 @@ defined('TYPO3') || die(); \TYPO3\CMS\Extbase\Utility\ExtensionUtility::registerPlugin( '{extension.extensionName}', - '{extension.extensionKey}_{plugin.key}', + '{plugin.key}', '{plugin.name -> k:format.quoteString()}', - '{extension.extensionKey}-plugin-{plugin.key}' + '{extension.unprefixedShortExtensionKey}_{plugin.key}' ); -if (!is_array($GLOBALS['TCA']['tt_content']['types']['{extension.extensionKey}_{plugin.key}'] ?? false)) { - $GLOBALS['TCA']['tt_content']['types']['{extension.extensionKey}_{plugin.key}'] = []; +if (!is_array($GLOBALS['TCA']['tt_content']['types']['{extension.unprefixedShortExtensionKey}_{plugin.key}'] ?? false)) { + $GLOBALS['TCA']['tt_content']['types']['{extension.unprefixedShortExtensionKey}_{plugin.key}'] = []; } @@ -21,8 +21,8 @@ if (!is_array($GLOBALS['TCA']['tt_content']['types']['{extension.extensionKey}_{ 'CType', [ 'label' => '{plugin.name -> k:format.quoteString()}', - 'value' => '{extension.extensionKey}_{plugin.key}', - 'icon' => '{extension.extensionKey}-plugin-{plugin.key}', + 'value' => '{extension.unprefixedShortExtensionKey}_{plugin.key}', + 'icon' => '{extension.shortExtensionKey}_{plugin.key}', 'group' => '{extension.extensionKey}' ] ); @@ -31,10 +31,10 @@ if (!is_array($GLOBALS['TCA']['tt_content']['types']['{extension.extensionKey}_{ \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addPiFlexFormValue( '*', 'FILE:EXT:{extension.extensionKey}/Configuration/FlexForms/flexform_{plugin.key}.xml', - '{extension.extensionKey}_{plugin.key}' + '{extension.unprefixedShortExtensionKey}_{plugin.key}' ); -$GLOBALS['TCA']['tt_content']['types']['{extension.extensionKey}_{plugin.key}']['showitem'] = ' +$GLOBALS['TCA']['tt_content']['types']['{extension.unprefixedShortExtensionKey}_{plugin.key}']['showitem'] = ' --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:general, --palette--;;general, --palette--;;headers, diff --git a/Resources/Private/CodeTemplates/Extbase/Partials/Form/BooleanProperty.htmlt b/Resources/Private/CodeTemplates/Extbase/Partials/Form/BooleanProperty.htmlt index 872e43198..89cdc81c2 100644 --- a/Resources/Private/CodeTemplates/Extbase/Partials/Form/BooleanProperty.htmlt +++ b/Resources/Private/CodeTemplates/Extbase/Partials/Form/BooleanProperty.htmlt @@ -1 +1 @@ -f:form.checkbox property="{property.name}" id="{property.name}" class="form-check-input" value="1" \ No newline at end of file +f:form.checkbox property="{property.propertyName}" id="{property.propertyName}" class="form-check-input" value="1" \ No newline at end of file diff --git a/Resources/Private/CodeTemplates/Extbase/Partials/Form/ColorPickerProperty.htmlt b/Resources/Private/CodeTemplates/Extbase/Partials/Form/ColorPickerProperty.htmlt index 79fc56ff6..00d682cd6 100644 --- a/Resources/Private/CodeTemplates/Extbase/Partials/Form/ColorPickerProperty.htmlt +++ b/Resources/Private/CodeTemplates/Extbase/Partials/Form/ColorPickerProperty.htmlt @@ -1 +1 @@ -f:form.textfield type="color" property="{property.name}" id="{property.name}" class="form-control" \ No newline at end of file +f:form.textfield type="color" property="{property.propertyName}" id="{property.propertyName}" class="form-control" \ No newline at end of file diff --git a/Resources/Private/CodeTemplates/Extbase/Partials/Form/DateProperty.htmlt b/Resources/Private/CodeTemplates/Extbase/Partials/Form/DateProperty.htmlt index 51a23a0c5..3425983ad 100644 --- a/Resources/Private/CodeTemplates/Extbase/Partials/Form/DateProperty.htmlt +++ b/Resources/Private/CodeTemplates/Extbase/Partials/Form/DateProperty.htmlt @@ -1 +1 @@ -{namespace k=EBT\ExtensionBuilder\ViewHelpers}f:form.textfield property="{property.name}" id="{property.name}" class="form-control" value="{domainObject.name-> k:format.lowercaseFirst()}.{property.name}->f:format.date()" \ No newline at end of file +{namespace k=EBT\ExtensionBuilder\ViewHelpers}f:form.textfield property="{property.propertyName}" id="{property.propertyName}" class="form-control" value="{domainObject.name-> k:format.lowercaseFirst()}.{property.propertyName}->f:format.date()" \ No newline at end of file diff --git a/Resources/Private/CodeTemplates/Extbase/Partials/Form/DateTimeProperty.htmlt b/Resources/Private/CodeTemplates/Extbase/Partials/Form/DateTimeProperty.htmlt index 51a23a0c5..3425983ad 100644 --- a/Resources/Private/CodeTemplates/Extbase/Partials/Form/DateTimeProperty.htmlt +++ b/Resources/Private/CodeTemplates/Extbase/Partials/Form/DateTimeProperty.htmlt @@ -1 +1 @@ -{namespace k=EBT\ExtensionBuilder\ViewHelpers}f:form.textfield property="{property.name}" id="{property.name}" class="form-control" value="{domainObject.name-> k:format.lowercaseFirst()}.{property.name}->f:format.date()" \ No newline at end of file +{namespace k=EBT\ExtensionBuilder\ViewHelpers}f:form.textfield property="{property.propertyName}" id="{property.propertyName}" class="form-control" value="{domainObject.name-> k:format.lowercaseFirst()}.{property.propertyName}->f:format.date()" \ No newline at end of file diff --git a/Resources/Private/CodeTemplates/Extbase/Partials/Form/EmailProperty.htmlt b/Resources/Private/CodeTemplates/Extbase/Partials/Form/EmailProperty.htmlt index 5c9a5f273..1ca923d2f 100644 --- a/Resources/Private/CodeTemplates/Extbase/Partials/Form/EmailProperty.htmlt +++ b/Resources/Private/CodeTemplates/Extbase/Partials/Form/EmailProperty.htmlt @@ -1 +1 @@ -f:form.textfield type="email" property="{property.name}" id="{property.name}" class="form-control" \ No newline at end of file +f:form.textfield type="email" property="{property.propertyName}" id="{property.propertyName}" class="form-control" \ No newline at end of file diff --git a/Resources/Private/CodeTemplates/Extbase/Partials/Form/FloatProperty.htmlt b/Resources/Private/CodeTemplates/Extbase/Partials/Form/FloatProperty.htmlt index 1ab691821..4f4465e14 100644 --- a/Resources/Private/CodeTemplates/Extbase/Partials/Form/FloatProperty.htmlt +++ b/Resources/Private/CodeTemplates/Extbase/Partials/Form/FloatProperty.htmlt @@ -1 +1 @@ -f:form.textfield property="{property.name}" id="{property.name}" class="form-control" \ No newline at end of file +f:form.textfield property="{property.propertyName}" id="{property.propertyName}" class="form-control" \ No newline at end of file diff --git a/Resources/Private/CodeTemplates/Extbase/Partials/Form/InputLinkProperty.htmlt b/Resources/Private/CodeTemplates/Extbase/Partials/Form/InputLinkProperty.htmlt index e845fbebf..2f13497eb 100644 --- a/Resources/Private/CodeTemplates/Extbase/Partials/Form/InputLinkProperty.htmlt +++ b/Resources/Private/CodeTemplates/Extbase/Partials/Form/InputLinkProperty.htmlt @@ -1 +1 @@ -f:form.textfield property="{property.name}" id="{property.name}" \ No newline at end of file +f:form.textfield property="{property.propertyName}" id="{property.propertyName}" \ No newline at end of file diff --git a/Resources/Private/CodeTemplates/Extbase/Partials/Form/IntegerProperty.htmlt b/Resources/Private/CodeTemplates/Extbase/Partials/Form/IntegerProperty.htmlt index 1ab691821..4f4465e14 100644 --- a/Resources/Private/CodeTemplates/Extbase/Partials/Form/IntegerProperty.htmlt +++ b/Resources/Private/CodeTemplates/Extbase/Partials/Form/IntegerProperty.htmlt @@ -1 +1 @@ -f:form.textfield property="{property.name}" id="{property.name}" class="form-control" \ No newline at end of file +f:form.textfield property="{property.propertyName}" id="{property.propertyName}" class="form-control" \ No newline at end of file diff --git a/Resources/Private/CodeTemplates/Extbase/Partials/Form/NativeDateProperty.htmlt b/Resources/Private/CodeTemplates/Extbase/Partials/Form/NativeDateProperty.htmlt index 23e9dca92..623e56b20 100644 --- a/Resources/Private/CodeTemplates/Extbase/Partials/Form/NativeDateProperty.htmlt +++ b/Resources/Private/CodeTemplates/Extbase/Partials/Form/NativeDateProperty.htmlt @@ -1 +1 @@ -{namespace k=EBT\ExtensionBuilder\ViewHelpers}f:form.textfield property="{property.name}" id="{property.name}" class="form-control" value="{domainObject.name-> k:format.lowercaseFirst()}.{property.name}->f:format.date()" \ No newline at end of file +{namespace k=EBT\ExtensionBuilder\ViewHelpers}f:form.textfield property="{property.propertyName}" id="{property.propertyName}" class="form-control" value="{domainObject.name-> k:format.lowercaseFirst()}.{property.propertyName}->f:format.date()" \ No newline at end of file diff --git a/Resources/Private/CodeTemplates/Extbase/Partials/Form/NativeDateTimeProperty.htmlt b/Resources/Private/CodeTemplates/Extbase/Partials/Form/NativeDateTimeProperty.htmlt index 23e9dca92..623e56b20 100644 --- a/Resources/Private/CodeTemplates/Extbase/Partials/Form/NativeDateTimeProperty.htmlt +++ b/Resources/Private/CodeTemplates/Extbase/Partials/Form/NativeDateTimeProperty.htmlt @@ -1 +1 @@ -{namespace k=EBT\ExtensionBuilder\ViewHelpers}f:form.textfield property="{property.name}" id="{property.name}" class="form-control" value="{domainObject.name-> k:format.lowercaseFirst()}.{property.name}->f:format.date()" \ No newline at end of file +{namespace k=EBT\ExtensionBuilder\ViewHelpers}f:form.textfield property="{property.propertyName}" id="{property.propertyName}" class="form-control" value="{domainObject.name-> k:format.lowercaseFirst()}.{property.propertyName}->f:format.date()" \ No newline at end of file diff --git a/Resources/Private/CodeTemplates/Extbase/Partials/Form/NativeTimeProperty.htmlt b/Resources/Private/CodeTemplates/Extbase/Partials/Form/NativeTimeProperty.htmlt index c55fb1f75..76107d85c 100644 --- a/Resources/Private/CodeTemplates/Extbase/Partials/Form/NativeTimeProperty.htmlt +++ b/Resources/Private/CodeTemplates/Extbase/Partials/Form/NativeTimeProperty.htmlt @@ -1 +1 @@ -{namespace k=EBT\ExtensionBuilder\ViewHelpers}f:form.textfield property="{property.name}" class="form-control" value="{domainObject.name-> k:format.lowercaseFirst()}.{property.name}->f:format.date()" \ No newline at end of file +{namespace k=EBT\ExtensionBuilder\ViewHelpers}f:form.textfield property="{property.propertyName}" class="form-control" value="{domainObject.name-> k:format.lowercaseFirst()}.{property.propertyName}->f:format.date()" \ No newline at end of file diff --git a/Resources/Private/CodeTemplates/Extbase/Partials/Form/NoneProperty.htmlt b/Resources/Private/CodeTemplates/Extbase/Partials/Form/NoneProperty.htmlt index c999a7712..b2d4ac8ec 100644 --- a/Resources/Private/CodeTemplates/Extbase/Partials/Form/NoneProperty.htmlt +++ b/Resources/Private/CodeTemplates/Extbase/Partials/Form/NoneProperty.htmlt @@ -1 +1 @@ -f:form.textfield property="{property.name}" id="{property.name}" readonly="1" \ No newline at end of file +f:form.textfield property="{property.propertyName}" id="{property.propertyName}" readonly="1" \ No newline at end of file diff --git a/Resources/Private/CodeTemplates/Extbase/Partials/Form/PasswordProperty.htmlt b/Resources/Private/CodeTemplates/Extbase/Partials/Form/PasswordProperty.htmlt index 74265cf54..3f5069cac 100644 --- a/Resources/Private/CodeTemplates/Extbase/Partials/Form/PasswordProperty.htmlt +++ b/Resources/Private/CodeTemplates/Extbase/Partials/Form/PasswordProperty.htmlt @@ -1 +1 @@ -f:form.password property="{property.name}" id="{property.name}" class="form-control" \ No newline at end of file +f:form.password property="{property.propertyName}" id="{property.propertyName}" class="form-control" \ No newline at end of file diff --git a/Resources/Private/CodeTemplates/Extbase/Partials/Form/Relation_ManyToManyRelation.htmlt b/Resources/Private/CodeTemplates/Extbase/Partials/Form/Relation_ManyToManyRelation.htmlt index e845fbebf..2f13497eb 100644 --- a/Resources/Private/CodeTemplates/Extbase/Partials/Form/Relation_ManyToManyRelation.htmlt +++ b/Resources/Private/CodeTemplates/Extbase/Partials/Form/Relation_ManyToManyRelation.htmlt @@ -1 +1 @@ -f:form.textfield property="{property.name}" id="{property.name}" \ No newline at end of file +f:form.textfield property="{property.propertyName}" id="{property.propertyName}" \ No newline at end of file diff --git a/Resources/Private/CodeTemplates/Extbase/Partials/Form/Relation_ZeroToManyRelation.htmlt b/Resources/Private/CodeTemplates/Extbase/Partials/Form/Relation_ZeroToManyRelation.htmlt index e845fbebf..2f13497eb 100644 --- a/Resources/Private/CodeTemplates/Extbase/Partials/Form/Relation_ZeroToManyRelation.htmlt +++ b/Resources/Private/CodeTemplates/Extbase/Partials/Form/Relation_ZeroToManyRelation.htmlt @@ -1 +1 @@ -f:form.textfield property="{property.name}" id="{property.name}" \ No newline at end of file +f:form.textfield property="{property.propertyName}" id="{property.propertyName}" \ No newline at end of file diff --git a/Resources/Private/CodeTemplates/Extbase/Partials/Form/Relation_ZeroToOneRelation.htmlt b/Resources/Private/CodeTemplates/Extbase/Partials/Form/Relation_ZeroToOneRelation.htmlt index e845fbebf..2f13497eb 100644 --- a/Resources/Private/CodeTemplates/Extbase/Partials/Form/Relation_ZeroToOneRelation.htmlt +++ b/Resources/Private/CodeTemplates/Extbase/Partials/Form/Relation_ZeroToOneRelation.htmlt @@ -1 +1 @@ -f:form.textfield property="{property.name}" id="{property.name}" \ No newline at end of file +f:form.textfield property="{property.propertyName}" id="{property.propertyName}" \ No newline at end of file diff --git a/Resources/Private/CodeTemplates/Extbase/Partials/Form/RichTextProperty.htmlt b/Resources/Private/CodeTemplates/Extbase/Partials/Form/RichTextProperty.htmlt index a6063ce39..f6311fc36 100644 --- a/Resources/Private/CodeTemplates/Extbase/Partials/Form/RichTextProperty.htmlt +++ b/Resources/Private/CodeTemplates/Extbase/Partials/Form/RichTextProperty.htmlt @@ -1 +1 @@ -f:form.textarea property="{property.name}" id="{property.name}" cols="40" rows="15" class="form-control" \ No newline at end of file +f:form.textarea property="{property.propertyName}" id="{property.propertyName}" cols="40" rows="15" class="form-control" \ No newline at end of file diff --git a/Resources/Private/CodeTemplates/Extbase/Partials/Form/SelectProperty.htmlt b/Resources/Private/CodeTemplates/Extbase/Partials/Form/SelectProperty.htmlt index 4365e5879..76b0761c1 100644 --- a/Resources/Private/CodeTemplates/Extbase/Partials/Form/SelectProperty.htmlt +++ b/Resources/Private/CodeTemplates/Extbase/Partials/Form/SelectProperty.htmlt @@ -1 +1 @@ -f:form.textfield property="{property.name}" id="{property.name}" class="form-select" \ No newline at end of file +f:form.textfield property="{property.propertyName}" id="{property.propertyName}" class="form-select" \ No newline at end of file diff --git a/Resources/Private/CodeTemplates/Extbase/Partials/Form/SlugProperty.htmlt b/Resources/Private/CodeTemplates/Extbase/Partials/Form/SlugProperty.htmlt index 1ab691821..4f4465e14 100644 --- a/Resources/Private/CodeTemplates/Extbase/Partials/Form/SlugProperty.htmlt +++ b/Resources/Private/CodeTemplates/Extbase/Partials/Form/SlugProperty.htmlt @@ -1 +1 @@ -f:form.textfield property="{property.name}" id="{property.name}" class="form-control" \ No newline at end of file +f:form.textfield property="{property.propertyName}" id="{property.propertyName}" class="form-control" \ No newline at end of file diff --git a/Resources/Private/CodeTemplates/Extbase/Partials/Form/StringProperty.htmlt b/Resources/Private/CodeTemplates/Extbase/Partials/Form/StringProperty.htmlt index 1ab691821..4f4465e14 100644 --- a/Resources/Private/CodeTemplates/Extbase/Partials/Form/StringProperty.htmlt +++ b/Resources/Private/CodeTemplates/Extbase/Partials/Form/StringProperty.htmlt @@ -1 +1 @@ -f:form.textfield property="{property.name}" id="{property.name}" class="form-control" \ No newline at end of file +f:form.textfield property="{property.propertyName}" id="{property.propertyName}" class="form-control" \ No newline at end of file diff --git a/Resources/Private/CodeTemplates/Extbase/Partials/Form/TextProperty.htmlt b/Resources/Private/CodeTemplates/Extbase/Partials/Form/TextProperty.htmlt index 04526905a..029f09dc7 100644 --- a/Resources/Private/CodeTemplates/Extbase/Partials/Form/TextProperty.htmlt +++ b/Resources/Private/CodeTemplates/Extbase/Partials/Form/TextProperty.htmlt @@ -1 +1 @@ -f:form.textarea property="{property.name}" id="{property.name}" class="form-control" cols="40" rows="15" \ No newline at end of file +f:form.textarea property="{property.propertyName}" id="{property.propertyName}" class="form-control" cols="40" rows="15" \ No newline at end of file diff --git a/Resources/Private/CodeTemplates/Extbase/Partials/Form/TimeProperty.htmlt b/Resources/Private/CodeTemplates/Extbase/Partials/Form/TimeProperty.htmlt index 51a23a0c5..3425983ad 100644 --- a/Resources/Private/CodeTemplates/Extbase/Partials/Form/TimeProperty.htmlt +++ b/Resources/Private/CodeTemplates/Extbase/Partials/Form/TimeProperty.htmlt @@ -1 +1 @@ -{namespace k=EBT\ExtensionBuilder\ViewHelpers}f:form.textfield property="{property.name}" id="{property.name}" class="form-control" value="{domainObject.name-> k:format.lowercaseFirst()}.{property.name}->f:format.date()" \ No newline at end of file +{namespace k=EBT\ExtensionBuilder\ViewHelpers}f:form.textfield property="{property.propertyName}" id="{property.propertyName}" class="form-control" value="{domainObject.name-> k:format.lowercaseFirst()}.{property.propertyName}->f:format.date()" \ No newline at end of file diff --git a/Resources/Private/CodeTemplates/Extbase/Partials/Form/TimeSecProperty.htmlt b/Resources/Private/CodeTemplates/Extbase/Partials/Form/TimeSecProperty.htmlt index 51a23a0c5..3425983ad 100644 --- a/Resources/Private/CodeTemplates/Extbase/Partials/Form/TimeSecProperty.htmlt +++ b/Resources/Private/CodeTemplates/Extbase/Partials/Form/TimeSecProperty.htmlt @@ -1 +1 @@ -{namespace k=EBT\ExtensionBuilder\ViewHelpers}f:form.textfield property="{property.name}" id="{property.name}" class="form-control" value="{domainObject.name-> k:format.lowercaseFirst()}.{property.name}->f:format.date()" \ No newline at end of file +{namespace k=EBT\ExtensionBuilder\ViewHelpers}f:form.textfield property="{property.propertyName}" id="{property.propertyName}" class="form-control" value="{domainObject.name-> k:format.lowercaseFirst()}.{property.propertyName}->f:format.date()" \ No newline at end of file diff --git a/Resources/Private/CodeTemplates/Extbase/Partials/Property.htmlt b/Resources/Private/CodeTemplates/Extbase/Partials/Property.htmlt index 156ea0342..43bd96e7f 100644 --- a/Resources/Private/CodeTemplates/Extbase/Partials/Property.htmlt +++ b/Resources/Private/CodeTemplates/Extbase/Partials/Property.htmlt @@ -1,27 +1,27 @@ -{namespace k=EBT\ExtensionBuilder\ViewHelpers}{escaping off} +{namespace k=EBT\ExtensionBuilder\ViewHelpers}{escaping off} - f:for each="{domainObject.name -> k:format.lowercaseFirst()}.{property.name}" as="image" + f:for each="{domainObject.name -> k:format.lowercaseFirst()}.{property.propertyName}" as="image" f:image src="image.originalResource.publicUrl" width="200"/ /f:for - f:image src="{domainObject.name -> k:format.lowercaseFirst()}.{property.name}.originalResource.publicUrl" width="200"/ + f:image src="{domainObject.name -> k:format.lowercaseFirst()}.{property.propertyName}.originalResource.publicUrl" width="200"/ - f:for each="{domainObject.name -> k:format.lowercaseFirst()}.{property.name}" as="file" + f:for each="{domainObject.name -> k:format.lowercaseFirst()}.{property.propertyName}" as="file" file.originalResource.name /f:for - - {domainObject.name -> k:format.lowercaseFirst()}.{property.name}.originalResource.name + + {domainObject.name -> k:format.lowercaseFirst()}.{property.propertyName}.originalResource.name diff --git a/Resources/Private/CodeTemplates/Extbase/Partials/TCA/PropertiesDefinition.phpt b/Resources/Private/CodeTemplates/Extbase/Partials/TCA/PropertiesDefinition.phpt index 257f93b1f..560a41605 100644 --- a/Resources/Private/CodeTemplates/Extbase/Partials/TCA/PropertiesDefinition.phpt +++ b/Resources/Private/CodeTemplates/Extbase/Partials/TCA/PropertiesDefinition.phpt @@ -2,7 +2,7 @@ {escaping off} '{property.fieldName}' => [ - 'exclude' => truefalse, + 'exclude' => truefalse, 'l10n_mode' => 'exclude', 'label' => 'LLL:EXT:{domainObject.extension.extensionKey}/Resources/Private/Language/locallang_db.xlf:{property.labelNamespace}', 'description' => 'LLL:EXT:{domainObject.extension.extensionKey}/Resources/Private/Language/locallang_db.xlf:{property.descriptionNamespace}', diff --git a/Resources/Private/CodeTemplates/Extbase/Partials/TCA/ZeroToManyRelation.phpt b/Resources/Private/CodeTemplates/Extbase/Partials/TCA/ZeroToManyRelation.phpt index 65c7c142a..6c4e37af2 100644 --- a/Resources/Private/CodeTemplates/Extbase/Partials/TCA/ZeroToManyRelation.phpt +++ b/Resources/Private/CodeTemplates/Extbase/Partials/TCA/ZeroToManyRelation.phpt @@ -1,6 +1,6 @@ - + For files or images - + [ 'type' => 'select', 'renderType' => '{property.renderType}', diff --git a/Resources/Private/CodeTemplates/Extbase/Resources/Private/Backend/Partials/formFields.htmlt b/Resources/Private/CodeTemplates/Extbase/Resources/Private/Backend/Partials/formFields.htmlt index 8aedc84a1..d639c0ab3 100644 --- a/Resources/Private/CodeTemplates/Extbase/Resources/Private/Backend/Partials/formFields.htmlt +++ b/Resources/Private/CodeTemplates/Extbase/Resources/Private/Backend/Partials/formFields.htmlt @@ -2,7 +2,7 @@ -