Skip to content

Commit

Permalink
Fix LocaleContext issues on dialogs on root context (regression issue)
Browse files Browse the repository at this point in the history
  • Loading branch information
eschleb committed Apr 2, 2024
1 parent 00582e9 commit 42abb65
Showing 1 changed file with 19 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,11 @@
import info.magnolia.i18nsystem.I18nizer;
import info.magnolia.ui.UIComponent;
import info.magnolia.ui.ValueContext;
import info.magnolia.ui.api.action.ActionExecutionException;
import info.magnolia.ui.api.i18n.I18NAuthoringSupport;
import info.magnolia.ui.contentapp.action.CloseActionDefinition;
import info.magnolia.ui.contentapp.action.CommitActionDefinition;
import info.magnolia.ui.datasource.jcr.JcrDatasource;
import info.magnolia.ui.dialog.DialogDefinition;
import info.magnolia.ui.dialog.DialogDefinitionRegistry;
import info.magnolia.ui.dialog.FormDialogDefinition;
Expand All @@ -28,23 +30,40 @@
public class OpenDialogAction extends info.magnolia.ui.dialog.actions.OpenDialogAction<Node> {
private final NodeNameValidatorDefinition nodeNameValidatorDefinition;
private final Definition definition;
private final ValueContext<Node> valueContext;
private final JcrDatasource jcrDatasource;

@Inject
public OpenDialogAction(
final Definition definition,
final LocaleContext localeContext,
final ValueContext<Node> valueContext,
final JcrDatasource jcrDatasource,
final UIComponent parentView,
final I18NAuthoringSupport<Node> i18NAuthoringSupport,
final DialogDefinitionRegistry dialogDefinitionRegistry,
final I18nizer i18nizer
) {
super(definition, localeContext, valueContext, parentView, i18NAuthoringSupport, dialogDefinitionRegistry, i18nizer);
this.definition = definition;
this.valueContext = valueContext;
this.jcrDatasource = jcrDatasource;
this.nodeNameValidatorDefinition = new NodeNameValidatorDefinition();
this.nodeNameValidatorDefinition.setMode(definition.getMode());
}

@Override
public void execute() throws ActionExecutionException {
try {
if (valueContext.getSingle().isEmpty()) {
valueContext.set(jcrDatasource.getRoot());
}
super.execute();
} catch (Exception e) {
throw new ActionExecutionException(e);
}
}

@Override
protected DialogDefinition getDialogDefinition(final DialogDefinitionRegistry dialogDefinitionRegistry, final I18nizer i18nizer) {
final DialogDefinition dialogDefinition = dialogDefinitionRegistry.getProvider(getDefinition().getDialogId()).get();
Expand Down

0 comments on commit 42abb65

Please sign in to comment.