From 5e90431a0af8fcd53fd3d50643938e1488c15f99 Mon Sep 17 00:00:00 2001 From: torqdev <67965755+torqdev@users.noreply.github.com> Date: Tue, 31 Jan 2023 10:39:03 -0400 Subject: [PATCH] Bugfix/advanced relation defaults (#14178) * change advanced relation store model * support more types * remove testing stuff * fix tolowercase call on possible null * allow null booleans * change instatiation type * Update bundles/AdminBundle/Resources/public/js/pimcore/object/tags/advancedManyToManyRelation.js Co-authored-by: robertSt7 <104770750+robertSt7@users.noreply.github.com> --------- Co-authored-by: Cameron Jenkins Co-authored-by: cameronfromtorq <105230931+cameronfromtorq@users.noreply.github.com> Co-authored-by: robertSt7 <104770750+robertSt7@users.noreply.github.com> --- .../tags/advancedManyToManyObjectRelation.js | 22 ++++++++++----- .../object/tags/advancedManyToManyRelation.js | 27 +++++++++++++------ 2 files changed, 35 insertions(+), 14 deletions(-) diff --git a/bundles/AdminBundle/Resources/public/js/pimcore/object/tags/advancedManyToManyObjectRelation.js b/bundles/AdminBundle/Resources/public/js/pimcore/object/tags/advancedManyToManyObjectRelation.js index 22e2e5b7b96..c0c863af004 100644 --- a/bundles/AdminBundle/Resources/public/js/pimcore/object/tags/advancedManyToManyObjectRelation.js +++ b/bundles/AdminBundle/Resources/public/js/pimcore/object/tags/advancedManyToManyObjectRelation.js @@ -45,19 +45,29 @@ pimcore.object.tags.advancedManyToManyObjectRelation = Class.create(pimcore.obje var visibleFields = Ext.isString(this.fieldConfig.visibleFields) ? this.fieldConfig.visibleFields.split(",") : []; this.visibleFields = visibleFields; - fields.push("id"); - fields.push("index"); - fields.push("inheritedFields"); - fields.push("metadata"); + fields.push({name: "id"}); + fields.push({name: "index"}); + fields.push({name: "inheritedFields"}); + fields.push({name: "metadata"}); var i; for (i = 0; i < visibleFields.length; i++) { - fields.push(visibleFields[i]); + fields.push({name: visibleFields[i]}); } for (i = 0; i < this.fieldConfig.columns.length; i++) { - fields.push(this.fieldConfig.columns[i].key); + let defaultValue = null; + switch(this.fieldConfig.columns[i].type.toLowerCase()){ + case "bool": + defaultValue = this.fieldConfig.columns[i].value ? (this.fieldConfig.columns[i].value).toLowerCase() == "true" : null; + break; + case "text": + case "number": + defaultValue = this.fieldConfig.columns[i].value; + break; + } + fields.push({name: this.fieldConfig.columns[i].key, defaultValue: defaultValue}); } var modelName = 'ObjectsMultipleRelations'; diff --git a/bundles/AdminBundle/Resources/public/js/pimcore/object/tags/advancedManyToManyRelation.js b/bundles/AdminBundle/Resources/public/js/pimcore/object/tags/advancedManyToManyRelation.js index 602ad11508b..93c5ea984be 100644 --- a/bundles/AdminBundle/Resources/public/js/pimcore/object/tags/advancedManyToManyRelation.js +++ b/bundles/AdminBundle/Resources/public/js/pimcore/object/tags/advancedManyToManyRelation.js @@ -40,20 +40,31 @@ pimcore.object.tags.advancedManyToManyRelation = Class.create(pimcore.object.tag var fields = []; - fields.push("id"); - fields.push("path"); - fields.push("inheritedFields"); - fields.push("metadata"); - fields.push("type"); - fields.push("subtype"); + fields.push({name: "id"}); + fields.push({name:"path"}); + fields.push({name:"inheritedFields"}); + fields.push({name:"metadata"}); + fields.push({name:"type"}); + fields.push({name:"subtype"}); var i; for (i = 0; i < this.fieldConfig.columns.length; i++) { - fields.push(this.fieldConfig.columns[i].key); + let defaultValue = null; + switch(this.fieldConfig.columns[i].type.toLowerCase()){ + case "bool": + case "columnbool": + defaultValue = this.fieldConfig.columns[i].value ? (this.fieldConfig.columns[i].value).toLowerCase() == "true" : null; + break; + case "text": + case "number": + defaultValue = this.fieldConfig.columns[i].value; + break; + } + fields.push({name: this.fieldConfig.columns[i].key, defaultValue: defaultValue}); } - fields.push("rowId"); + fields.push({name: "rowId"}); var modelName = 'ObjectsMultihrefMetadataEntry'; if (!Ext.ClassManager.isCreated(modelName)) {