[MAGNOLIA-6654] Decorating the definition of an app will cause the choose dialog to fail Created: 03/May/16  Updated: 09/Feb/17  Resolved: 27/Jun/16

Status: Closed
Project: Magnolia
Component/s: None
Affects Version/s: 5.4.6
Fix Version/s: 5.4.8, 5.5

Type: Bug Priority: Critical
Reporter: Jordie Diepeveen Assignee: Aleksandr Pchelintcev
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Mac OS 10.11.4, Safari, Java 8, Tomcat 8, IntelliJ 2016.1


Attachments: Text File error-log.txt    
Issue Links:
Cloners
is cloned by MAGNOLIA-6716 yaml decoration of existing jcr brows... Closed
dependency
depends upon MAGNOLIA-6693 Introduce proxy-based mutable wrapper... Closed
depends upon MGNLUI-3431 Replace usages of cloner in favor of ... Closed
Template:
Acceptance criteria:
Empty
Task DoD:
[ ]* Doc/release notes changes? Comment present?
[ ]* Downstream builds green?
[ ]* Solution information and context easily available?
[ ]* Tests
[ ]* FixVersion filled and not yet released
[ ]  Architecture Decision Record (ADR)
Bug DoR:
[ ]* Steps to reproduce, expected, and actual results filled
[ ]* Affected version filled
Release notes required:
Yes
Date of First Response:
Sprint: Basel 50, Basel 50
Story Points: 2

 Description   

Using e.g. the following definition decoration for the security app:

/my-module/decorations/security-app/apps/security.yaml

subApps:
  users:
    actions:
      editUser:
        # Set custom users dialog
        dialogName: 'my-module:apps/user'
      addUser:
        # Set custom users dialog
        dialogName: 'my-module:apps/user'

When using a LinkFieldDefinition:

subApps:
  detail:
    class: info.magnolia.ui.contentapp.detail.DetailSubAppDescriptor
    subAppClass: nl.trimm.portal.app.companies.CompanyDetailSubApp
    editor:
      nodeType:
        icon: icon-node-content
        name: mgnl:company
      form:
        tabs:
          - name: main
            fields:
            - name: contacts
              fields:
                - name: contacts
                  class: info.magnolia.ui.form.field.definition.MultiValueFieldDefinition
                  transformerClass: info.magnolia.ui.form.field.transformer.multi.MultiValueChildNodeTransformer
                  field:
                    class: info.magnolia.ui.form.field.definition.LinkFieldDefinition
                    targetWorkspace: users
                    appName: security
                    identifierToPathConverter:
                      class: info.magnolia.ui.form.field.converter.BaseIdentifierToPathConverter
                    label: empty

Clicking on the "Select new" button in the MultivalueField will trigger the following exception:
error-log.txt

It seems that it does not matter what is added to the decoration file. The "Select new" action always fails and even lets Magnolia crashes sometimes after.

Removing the definition decoration for the security app, will fix the "Select new" action again.
Adding the decorations directly into JCR will make the button action work.



 Comments   
Comment by Jordie Diepeveen [ 24/May/16 ]

The problem occurs with all apps being "enhanced" using the decorations: e.g.:

/my-module/decorations/contacts/apps/contact.yml:
subApps:
  detail:
    editor:
      form:
        tabs:
          - name: speaker
            fields:
              - name: speakerPage
                class: info.magnolia.ui.form.field.definition.LinkFieldDefinition
                targetWorkspace: website
                appName: pages
                identifierToPathConverter:
                  class: info.magnolia.ui.form.field.converter.BaseIdentifierToPathConverter

When using a simpel link field, the dialog will not open anymore.

form:
  tabs:
    - name: speaker
      fields:
        - name: speaker
          class: info.magnolia.ui.form.field.definition.LinkFieldDefinition
          targetWorkspace: contacts
          appName: contacts
          identifierToPathConverter:
            class: info.magnolia.ui.form.field.converter.BaseIdentifierToPathConverter
          contentPreviewDefinition:
            contentPreviewClass: info.magnolia.contacts.app.field.component.ContactPreviewComponent
          required: true
actions: !include /ttk/dialogs/common/actions.yml
Comment by Aleksandr Pchelintcev [ 07/Jun/16 ]

Hi jdiepeveen, thanks for reporting this - after a quick check I think I've found the problem, we will provide a fix as soon as possible.

Generated at Mon Feb 12 04:16:34 CET 2024 using Jira 9.4.2#940002-sha1:46d1a51de284217efdcb32434eab47a99af2938b.