Upgrading to Magnolia 6.3.1 and later

If you are upgrading to 6.3.x for the first time, you must also read Upgrading to Magnolia 6.3. The information in this page applies to 6.3.1 and later.

The $type: “filteringWorkbench” property on the workbench configuration, introduced in 6.3.0 for the Pages and Assets apps, is deprecated in 6.3.1 and later.

In 6.3.1 and later, in-app search and filter functionality becomes the default for all browser subapps as part of the standard workbench definition.

This change has the following impact on your browser subapps:

  • The search field is enabled by default in all apps. If your custom browser subapp doesn’t support search, disable the search field by setting the searchEnabled property to false.

  • If you don’t have workbench filters configured, the system:

    • Converts combobox fields used as filters in column headers into dropdown filters.

    • Converts all text fields into the default search field. For example, in the Pages app the Name (previously Page) and Title column fields become searchable using the default search field.

      Pages app conversion of column headers to search and filters

  • If you have workbench filters defined and an existing filterComponent definition in a column definition, the column filter remains as it is. No conversion is executed. Column filter and workbench filter definitions can be defined and used at the same time for the time being even though the filterComponent is deprecated.

  • Only one view type can be displayed in a browser subapp.

    The search field and filters are applied to the first view type configured in your app. The view type switcher disappears. If you want to change the view displayed, change the order of the view types defined in your .yaml config (or remove the view types you don’t want).

  • The Name column has changed: the titleColumn column type is replaced by componentColumn (info.magnolia.ui.contentapp.configuration.column.ComponentColumnDefinition) that supports two rows in the column. Therefore content type-based apps are automatically created with the componentColumn type.

    • No default or fallback icon is provided anymore for nodes.

    • The icon configuration has changed.

      Click to see examples of configuration updates for displaying icons in columns

      Example of a custom Events app events.yaml
             contentViews:
              tree:
                columns:
                  name:
      # new in 6.3.1+:
                    nodeTypeToComponents:
                      mgnl:folder:
                        icon: icon-folder
                        showPath: true
                      event:
                        icon: icon-datepicker
                        showPath: true
      #  6.2.x and 6.3.0:
                    #nodeTypeToIcon:
                      #event: icon-datepicker
      Example of the Marketing Tags app marketing-tags/apps/marketing-tags.yaml
      # new in 6.3.1+:
                columns:
                  name:
                    nodeTypeToComponents:
                      mgnl:marketing-tag:
                        icon: icon-tag
                        showPath: true
      
      # 6.2.x and 6.3.0:
                 #columns:
                   #name:
                    #nodeTypeToIcon:
                       #mgnl:marketing-tag: icon-tag
               #list:
                 #columns:
                   #name:
                     #nodeTypeToIcon:
                       #mgnl:marketing-tag: icon-tag
  • If you have customized browser subapps, you must adapt your configuration by updating your custom data provider for search to function.

    Below is an example (migration of the Resource Files app) of how to adapt your configuration.

    1. In the info.magnolia.resources.app.data.ResourceFilteringDataProvider class, the filtering logic is unwrapped.

      Click to see the link to a GitHub diff

    2. In the resources/resources-app/apps/resources.yaml definition, shown in the tabs, the filterComponent properties under contentViews are removed and replaced by filters under workbench.

      Click to see the tabs

      • 6.3 Resource Files app definition

      • 6.2 Resource Files app definition

      ...
          workbench:
            filters:
              - name: overridden
                icon: icon-logs-settings
                $type: dropdown
                visible: true
                datasource:
                  $type: optionListDatasource
                  options:
                    true:
                      value: true
                    false:
                      value: false
              - name: origin
                icon: icon-language-app
                $type: dropdown
                filterOperator: STARTS_WITH
                textInputAllowed: true
                emptySelectionAllowed: true
                visible: true
                datasource:
                  class: info.magnolia.resources.app.data.ResourceOriginDataSourceDefinition
              - name: status
                icon: icon-spinner-full
                $type: dropdown
                filterOperator: STARTS_WITH
                textInputAllowed: true
                emptySelectionAllowed: true
                visible: true
                datasource:
                  $type: optionListDatasource
                  options:
                    - name: 0
                      label: Not activated
                      value: 0
                    - name: 1
                      label: Modified
                      value: 1
                    - name: 2
                      label: Activated
                      value: 2
            contentViews:
              - name: views
                $type: treeView
                rowStyleGenerator: info.magnolia.resources.app.row.ResourceStatusRowStyleGenerator
                multiSelect: false
                columns:
                  name:
                    class: info.magnolia.resources.app.column.ResourceNameColumnDefinition
                  overridden:
                    class: info.magnolia.resources.app.column.IsOverridingColumnDefinition
                    editor:
                      field:
                        $type: checkBoxField
                  origin:
                    class: info.magnolia.resources.app.column.ResourceOriginColumnDefinition
                  type:
                    class: info.magnolia.resources.app.column.ResourceTypeColumnDefinition
                  status:
                    class: info.magnolia.resources.app.column.ResourceStatusColumnDefinition
      ...
      ...
          workbench:
            contentViews:
              - name: views
                $type: treeView
                rowStyleGenerator: info.magnolia.resources.app.row.ResourceStatusRowStyleGenerator
                multiSelect: false
                columns:
                  name:
                    class: info.magnolia.resources.app.column.ResourceNameColumnDefinition
                    filterComponent:
                      $type: textField
                  overridden:
                    class: info.magnolia.resources.app.column.IsOverridingColumnDefinition
                    editor:
                      field:
                        $type: checkBoxField
                    filterComponent:
                      $type: checkBoxField
                  origin:
                    class: info.magnolia.resources.app.column.ResourceOriginColumnDefinition
                    filterComponent:
                      $type: comboBoxField
                      emptySelectionAllowed: true
                      textInputAllowed: true
                      filteringMode: STARTSWITH
                      datasource:
                        class: info.magnolia.resources.app.data.ResourceOriginDataSourceDefinition
                  type:
                    class: info.magnolia.resources.app.column.ResourceTypeColumnDefinition
                    filterComponent:
                      $type: textField
                  status:
                    class: info.magnolia.resources.app.column.ResourceStatusColumnDefinition
                    filterComponent:
                      $type: comboBoxField
                      emptySelectionAllowed: true
                      datasource:
                        $type: optionListDatasource
                        options:
                          - name: 0
                            label: Not activated
                            value: 0
                          - name: 1
                            label: Modified
                            value: 1
                          - name: 2
                            label: Activated
                            value: 2
      ...
    3. Don’t forget to add the i18n properties for your filters.

      Click to see an example

      ...
      # filters
      resources.browser.filters.overridden.label = Overrides
      resources.browser.filters.overridden.options.true = True
      resources.browser.filters.overridden.options.false = False
      resources.browser.filters.origin.label = Origin
      resources.browser.filters.status.label = Status
      ...
Magnolia has adapted the customized Definitions, JCR Browser, Marketing Tags, and Resource Files apps to use the default configuration. The following 5UI-based apps remain unchanged: Campaign Publisher, Content Translation, Groovy, Configuration, and Passwords apps.
Feedback

DX Core

×

Location

This widget lets you know where you are on the docs site.

You are currently perusing through the DX Core docs.

Main doc sections

DX Core Headless PaaS Legacy Cloud Incubator modules