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

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

      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:

        Acceptance criteria

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

                Created:
                Updated:
                Resolved: