reencode
reencode

Reputation: 237

Magnolia 5.5.5 ModalityLevel of Component Dialog

As it is written here https://documentation.magnolia-cms.com/display/DOCS56/Dialog+definition I assume there is a possibility for every dialog to insert the following line into the yaml:

modalityLevel: non-modal

If I do this to an existing Component-Dialog which could be quite complex (with tabs and so on) the console logs an error.

WARN  agnolia.config.source.yaml.YamlConfigurationSource: 1 major and 0 minor problems have been encountered

(Note: if I do modalityLevel: light it works..)

The reason I want to do this is to have more than one dialog opened at once. Is that possible in Magnolia 5.5.5 (or 5.6)?

Upvotes: 0

Views: 176

Answers (2)

Ducaz035
Ducaz035

Reputation: 3132

Okay there we go, after some investigation it turns out that the problem is within Magnolia. I have created the following issue https://jira.magnolia-cms.com/browse/MGNLUI-4328 for the problem. For now please ignore what the definition app says and we will fix it as soon as possible.

Cheers,

Upvotes: 2

Bradley Andersen
Bradley Andersen

Reputation: 311

FWIW, I get the same behavior on the current demo ...

It's defined here: info.magnolia.ui.api.overlay.OverlayLayer

 65     /**
 66      * The available levels of modality.
 67      * Determines how "modal" it is -
 68      * -STRONG creates a dark background that prevents clicks.
 69      * -LIGHT adds a border, creates a transparent background that prevents clicks.
 70      * -NON_MODAL does not prevent clicks.
 71      */
 72     public static enum ModalityLevel {
 73         STRONG("strong", "modality-strong"),
 74         LIGHT("light", "modality-light center-vertical"),
 75         NON_MODAL("non-modal", "modality-non-modal");

And it's used here:

info.magnolia.ui.framework.overlay.OverlayPresenter
216         final OverlayCloser closer = openOverlay(new ViewAdapter(shortcutPanel), ModalityLevel.NON_MODAL);
And it's used here:
info.magnolia.dam.app.assets.field.UploadAssetActionRenderer
155                 progressIndicatorCloseHandle = layer.openOverlay(new ViewAdapter(progressIndicator), ModalityLevel.NON_MODAL);

and etc.

So that seems like a false positive.

Interestingly, I don't see any tests for this ... for example, I see:

assertEquals("light", session.getProperty("/modules/ui-framework/dialogs/rename/modalityLevel").getString());
and
assertEquals("strong", session.getProperty("/modules/pages/dialogs/createPage/modalityLevel").getString());

but nothing with "non-modal"

I thought maybe the "-" character, but this appears, all else equal, to be valid yaml

--- 
modalityLevels: strong
modalityLeveln: non-modal
modalityLevell: light

Would have to dig deeper to see what is happening here.

UPDATE: if you change it to "non_modal", there's no longer an error in the definitions app.

Upvotes: 2

Related Questions