Uploaded image for project: 'Magnolia UI'
  1. Magnolia UI
  2. MGNLUI-5402

Re-implement the basic horizontal/vertical layout options for v8 composite field items

    XMLWordPrintable

Details

    • Improvement
    • Resolution: Obsolete
    • Neutral
    • None
    • None
    • None
    • None

    Description

      In V8, the layout property is there for the composite field, but associates with PlainFormLayoutDefinition, which unfortunately gives no layout config option.

      If users migrate and leave there their original layout setting (e.g. layout: vertical (horizontal was default)), the instance won't like it due to the fact that info.magnolia.ui.framework.layout.LayoutDefinition seems to be called, but is used for different purposes:

      2019-10-01 09:34:17,185 WARN agnolia.config.source.yaml.YamlConfigurationSource: 
      Severity type: MAJOR 
      Title: contacts-v8/subApps/detail/form/properties/address/layout: [Definition resolution] - Source data processing problem 
      Problem details: Failed to instantiate an object of type [interface info.magnolia.ui.framework.layout.LayoutDefinition] due to [Failed to create instance of [interface info.magnolia.ui.framework.layout.LayoutDefinition]], null is returned

      https://git.magnolia-cms.com/projects/PLATFORM/repos/ui.pub/browse/magnolia-ui-framework/src/main/java/info/magnolia/ui/field/CompositeFieldDefinition.java:

       

      @Data
      @FieldType("compositeField")
      public class CompositeFieldDefinition<T> extends ConfiguredComplexPropertyDefinition<T> implements FormDefinition<T> {
      private Class<EditorView<T>> implementationClass = (Class) FormView.class;
      private List<EditorPropertyDefinition> properties = new ArrayList<>();
      private LayoutDefinition layout = new PlainFormLayoutDefinition();
      }
      

       

       

      Before V8, users could easily configure the layout of field in a composition

                  fields:
                    compo-vertical:
                      fieldType: composite
                      label: compo-vertical
                      layout: vertical
                      fields:
                        compoV-1:
                          fieldType: text
                          label: compoV-1 
                          placeholder: compoV-1
                        compoV-2:
                          fieldType: text
                          label: compoV-2
                          placeholder: compoV-2
                    compo-horizontal:
                      fieldType: composite
                      label: compo-horizontal-default
                      fields:
                        compoH-1:
                          fieldType: text
                          label: compoH-1 
                          placeholder: compoH-1 
                        compoH-2:
                          fieldType: text
                          label: compoH-2
                          placeholder: compoH-2 

      to get:

      Checklists

        Acceptance criteria

        Attachments

          Issue Links

            Activity

              People

                Unassigned Unassigned
                mdrapela Martin Drápela
                Votes:
                0 Vote for this issue
                Watchers:
                2 Start watching this issue

                Dates

                  Created:
                  Updated:
                  Resolved:

                  Checklists

                    Task DoD