Skip to content

Commit

Permalink
Merge remote-tracking branch 'refs/remotes/origin/master'
Browse files Browse the repository at this point in the history
  • Loading branch information
skublik committed Mar 17, 2022
2 parents aaf1d32 + 86b547c commit bd46573
Show file tree
Hide file tree
Showing 68 changed files with 1,236 additions and 654 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -203,9 +203,20 @@ protected boolean getContainerReadability(ItemWrapper<?, ?> wrapper) {

private ItemVisibility getContainerVisibility(ItemWrapper<?, ?> wrapper) {
if (wrapper instanceof PrismContainerWrapper) {
if (((PrismContainerWrapper) wrapper).isVirtual()) {
PrismContainerWrapper pcw = (PrismContainerWrapper) wrapper;
if (pcw.isVirtual()) {
return ItemVisibility.AUTO;
}

ItemPath path = pcw.getPath();
if (path != null ) {
path = path.namedSegmentsOnly();

if (path.startsWith(ItemPath.create(AssignmentHolderType.F_ASSIGNMENT, AssignmentType.F_EXTENSION))) {
return ItemVisibility.AUTO;
}
}

return ItemVisibility.HIDDEN;
}
return ItemVisibility.AUTO;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,26 +42,33 @@ public void register() {
return wrapper.getParent() instanceof ProfilingClassLoggerContainerValueWrapperImpl && wrapper.getItemName().equals(ClassLoggerConfigurationType.F_LEVEL);
}

//FIXME model
@Override
protected InputPanel getPanel(PrismPropertyPanelContext<LoggingLevelType> panelCtx) {
DropDownChoicePanel<ProfilingLevel> dropDownProfilingLevel = new DropDownChoicePanel<>(panelCtx.getComponentId(), new Model<ProfilingLevel>() {
DropDownChoicePanel<ProfilingLevel> dropDownProfilingLevel = new DropDownChoicePanel<>(panelCtx.getComponentId(), new ProfilingLevelModel(panelCtx),
WebComponentUtil.createReadonlyModelFromEnum(ProfilingLevel.class), new EnumChoiceRenderer<>(), true);

private static final long serialVersionUID = 1L;
return dropDownProfilingLevel;
}

@Override
public ProfilingLevel getObject() {
return ProfilingLevel.fromLoggerLevelType(panelCtx.getRealValueModel().getObject());
}
private static class ProfilingLevelModel extends Model<ProfilingLevel> {

@Override
public void setObject(ProfilingLevel object) {
super.setObject(object);
panelCtx.getRealValueModel().setObject(ProfilingLevel.toLoggerLevelType(object));
}
private static final long serialVersionUID = 1L;

}, WebComponentUtil.createReadonlyModelFromEnum(ProfilingLevel.class), new EnumChoiceRenderer<>(), true);
private PrismPropertyPanelContext<LoggingLevelType> panelCtx;

return dropDownProfilingLevel;
public ProfilingLevelModel(PrismPropertyPanelContext<LoggingLevelType> panelCtx) {
this.panelCtx = panelCtx;
}

@Override
public ProfilingLevel getObject() {
return ProfilingLevel.fromLoggerLevelType(panelCtx.getRealValueModel().getObject());
}

@Override
public void setObject(ProfilingLevel object) {
super.setObject(object);
panelCtx.getRealValueModel().setObject(ProfilingLevel.toLoggerLevelType(object));
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -177,9 +177,30 @@ protected void savePerformed(AjaxRequestTarget target) {
AbstractPageObjectDetails.this.savePerformed(target);
}

@Override
protected boolean hasUnsavedChanges(AjaxRequestTarget target) {
return AbstractPageObjectDetails.this.hasUnsavedChanges(target);
}
};
}

protected boolean hasUnsavedChanges(AjaxRequestTarget target) {
OperationResult result = new OperationResult(OPERATION_SAVE);

try {
Collection<ObjectDelta<? extends ObjectType>> deltas = objectDetailsModels.collectDeltas(result);

return !deltas.isEmpty();
} catch (Throwable ex) {
result.recordFatalError(getString("pageAdminObjectDetails.message.cantCreateObject"), ex);
LoggingUtils.logUnexpectedException(LOGGER, "Couldn't compute delta changes", ex);
showResult(result);
target.add(getFeedbackPanel());

return true;
}
}

public void savePerformed(AjaxRequestTarget target) {
OperationResult result = new OperationResult(OPERATION_SAVE);
saveOrPreviewPerformed(target, result, false);
Expand All @@ -189,8 +210,6 @@ public Collection<ObjectDeltaOperation<? extends ObjectType>> saveOrPreviewPerfo
return saveOrPreviewPerformed(target, result, previewOnly, null);
}

// private ObjectDelta<O> delta;

public Collection<ObjectDeltaOperation<? extends ObjectType>> saveOrPreviewPerformed(AjaxRequestTarget target, OperationResult result, boolean previewOnly, Task task) {

PrismObjectWrapper<O> objectWrapper = getModelWrapperObject();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -145,6 +145,11 @@ protected void refresh(AjaxRequestTarget target) {
protected void savePerformed(AjaxRequestTarget target) {
PageAssignmentHolderDetails.this.savePerformed(target);
}

@Override
protected boolean hasUnsavedChanges(AjaxRequestTarget target) {
return PageAssignmentHolderDetails.this.hasUnsavedChanges(target);
}
};
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@

import java.util.Iterator;

import com.evolveum.midpoint.gui.api.page.PageBase;
import com.evolveum.midpoint.gui.api.util.WebComponentUtil;

import com.evolveum.midpoint.model.api.ModelAuthorizationAction;
Expand Down Expand Up @@ -206,27 +207,67 @@ private boolean isForcedPreview() {
return objectDetails != null && DetailsPageSaveMethodType.FORCED_PREVIEW.equals(objectDetails.getSaveMethod());
}

private void backPerformed(AjaxRequestTarget target) {
protected boolean hasUnsavedChanges(AjaxRequestTarget target) {
return false;
}

protected void backPerformed(AjaxRequestTarget target) {
PageBase page = getPageBase();

if (!hasUnsavedChanges(target)) {
backPerformedConfirmed();
return;
}

ConfirmationPanel confirmationPanel = new ConfirmationPanel(page.getMainPopupBodyId(),
page.createStringResource("OperationalButtonsPanel.confirmBack")) {

private static final long serialVersionUID = 1L;

@Override
public void yesPerformed(AjaxRequestTarget target) {
backPerformedConfirmed();
}

};

page.showMainPopup(confirmationPanel, target);
}

protected void backPerformedConfirmed() {
getPageBase().redirectBack();
}

private void editRawPerformed(AjaxRequestTarget ajaxRequestTarget) {
ConfirmationPanel confirmationPanel = new ConfirmationPanel(getPageBase().getMainPopupBodyId(),
private void editRawPerformed(AjaxRequestTarget target) {
PageBase page = getPageBase();

if (!hasUnsavedChanges(target)) {
editRawPerformedConfirmed();
return;
}

ConfirmationPanel confirmationPanel = new ConfirmationPanel(page.getMainPopupBodyId(),
getPageBase().createStringResource("AbstractObjectMainPanel.confirmEditXmlRedirect")) {

private static final long serialVersionUID = 1L;

@Override
public void yesPerformed(AjaxRequestTarget target) {
PageParameters parameters = new PageParameters();
PrismObject<O> object = getPrismObject();
parameters.add(PageDebugView.PARAM_OBJECT_ID, object.getOid());
parameters.add(PageDebugView.PARAM_OBJECT_TYPE, object.getCompileTimeClass().getSimpleName());
getPageBase().navigateToNext(PageDebugView.class, parameters);
editRawPerformed(target);
}

};

getPageBase().showMainPopup(confirmationPanel, ajaxRequestTarget);
page.showMainPopup(confirmationPanel, target);
}

protected void editRawPerformedConfirmed() {
PageParameters parameters = new PageParameters();
PrismObject<O> object = getPrismObject();
parameters.add(PageDebugView.PARAM_OBJECT_ID, object.getOid());
parameters.add(PageDebugView.PARAM_OBJECT_TYPE, object.getCompileTimeClass().getSimpleName());

getPageBase().navigateToNext(PageDebugView.class, parameters);
}

private void deletePerformed(AjaxRequestTarget target) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
import java.util.LinkedHashMap;
import java.util.Map;

import com.evolveum.midpoint.gui.impl.page.admin.AbstractPageObjectDetails;
import com.evolveum.midpoint.model.api.authentication.CompiledObjectCollectionView;

import com.evolveum.midpoint.authentication.api.util.AuthUtil;
Expand Down Expand Up @@ -58,6 +59,7 @@ public abstract class PageFocusDetails<F extends FocusType, FDM extends FocusDet
private static final Trace LOGGER = TraceManager.getTrace(PageFocusDetails.class);

private static final String ID_PROGRESS_PANEL_FRAGMENT = "progressPanelFragment";

private static final String ID_PROGRESS_PANEL = "progressPanel";

private boolean saveOnConfigure;
Expand Down Expand Up @@ -123,6 +125,11 @@ protected void savePerformed(AjaxRequestTarget target) {
PageFocusDetails.this.savePerformed(target);
}

@Override
protected boolean hasUnsavedChanges(AjaxRequestTarget target) {
return PageFocusDetails.this.hasUnsavedChanges(target);
}

@Override
protected void previewPerformed(AjaxRequestTarget target) {
PageFocusDetails.this.previewPerformed(target);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@

import com.evolveum.midpoint.gui.api.model.LoadableModel;
import com.evolveum.midpoint.gui.api.prism.wrapper.PrismObjectWrapper;
import com.evolveum.midpoint.gui.impl.page.admin.AbstractPageObjectDetails;
import com.evolveum.midpoint.gui.impl.page.admin.assignmentholder.AssignmentHolderDetailsModel;

import com.evolveum.midpoint.gui.impl.page.admin.assignmentholder.PageAssignmentHolderDetails;
Expand Down Expand Up @@ -131,6 +132,11 @@ public void saveAndRunPerformed(AjaxRequestTarget target) {
protected void savePerformed(AjaxRequestTarget target) {
PageReport.this.savePerformed(target);
}

@Override
protected boolean hasUnsavedChanges(AjaxRequestTarget target) {
return PageReport.this.hasUnsavedChanges(target);
}
};
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
import java.util.Collection;

import com.evolveum.midpoint.gui.api.prism.wrapper.PrismObjectWrapper;
import com.evolveum.midpoint.gui.impl.page.admin.AbstractPageObjectDetails;
import com.evolveum.midpoint.gui.impl.page.admin.assignmentholder.PageAssignmentHolderDetails;
import com.evolveum.midpoint.gui.impl.page.admin.component.ResourceOperationalButtonsPanel;
import com.evolveum.midpoint.prism.PrismObject;
Expand Down Expand Up @@ -76,6 +77,11 @@ protected void refreshStatus(AjaxRequestTarget target) {
protected void savePerformed(AjaxRequestTarget target) {
PageResource.this.savePerformed(target);
}

@Override
protected boolean hasUnsavedChanges(AjaxRequestTarget target) {
return PageResource.this.hasUnsavedChanges(target);
}
};
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@

import com.evolveum.midpoint.gui.api.model.LoadableModel;
import com.evolveum.midpoint.gui.api.prism.wrapper.PrismObjectWrapper;
import com.evolveum.midpoint.gui.impl.page.admin.AbstractPageObjectDetails;
import com.evolveum.midpoint.gui.impl.page.admin.assignmentholder.AssignmentHolderDetailsModel;
import com.evolveum.midpoint.gui.impl.page.admin.assignmentholder.PageAssignmentHolderDetails;
import com.evolveum.midpoint.gui.impl.page.admin.component.AssignmentHolderOperationalButtonsPanel;
Expand Down Expand Up @@ -149,6 +150,11 @@ protected void savePerformed(AjaxRequestTarget target) {
protected boolean isDeleteButtonVisible() {
return false;
}

@Override
protected boolean hasUnsavedChanges(AjaxRequestTarget target) {
return PageBaseSystemConfiguration.this.hasUnsavedChanges(target);
}
};
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
import com.evolveum.midpoint.gui.api.model.LoadableModel;
import com.evolveum.midpoint.gui.api.prism.wrapper.PrismObjectWrapper;
import com.evolveum.midpoint.gui.api.util.WebModelServiceUtils;
import com.evolveum.midpoint.gui.impl.page.admin.AbstractPageObjectDetails;
import com.evolveum.midpoint.gui.impl.page.admin.assignmentholder.PageAssignmentHolderDetails;
import com.evolveum.midpoint.gui.impl.page.admin.component.TaskOperationalButtonsPanel;
import com.evolveum.midpoint.prism.PrismObject;
Expand Down Expand Up @@ -154,6 +155,10 @@ protected void savePerformed(AjaxRequestTarget target) {
PageTask.this.savePerformed(target);
}

@Override
protected boolean hasUnsavedChanges(AjaxRequestTarget target) {
return PageTask.this.hasUnsavedChanges(target);
}
};
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -120,6 +120,7 @@ protected void collectObjectsForPreview(Map<PrismObject<UserType>, ModelContext<
@Override
protected UserOperationalButtonsPanel createButtonsPanel(String id, LoadableModel<PrismObjectWrapper<UserType>> wrapperModel) {
return new UserOperationalButtonsPanel(id, wrapperModel, getObjectDetailsModels().getDelegationsModel(), getObjectDetailsModels().getExecuteOptionsModel(), getObjectDetailsModels().isSelfProfile()) {

private static final long serialVersionUID = 1L;

@Override
Expand All @@ -136,6 +137,10 @@ protected void previewPerformed(AjaxRequestTarget target) {
PageUser.this.previewPerformed(target);
}

@Override
protected boolean hasUnsavedChanges(AjaxRequestTarget target) {
return PageUser.this.hasUnsavedChanges(target);
}
};
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1241,6 +1241,13 @@
</xsd:appinfo>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="activityEvent">
<xsd:annotation>
<xsd:appinfo>
<jaxb:typesafeEnumMember name="ACTIVITY_EVENT"/>
</xsd:appinfo>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="customEvent">
<xsd:annotation>
<xsd:appinfo>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,8 @@ public ScriptExpression createScriptExpression(
//cache cleanup method

String language = getLanguage(expressionType);
ScriptExpression expression = new ScriptExpression(getEvaluator(language, shortDesc), expressionType);
ScriptEvaluator evaluator = getEvaluator(language, shortDesc);
ScriptExpression expression = new ScriptExpression(evaluator, expressionType);
expression.setPrismContext(prismContext);
expression.setOutputDefinition(outputDefinition);
expression.setObjectResolver(objectResolver);
Expand All @@ -137,7 +138,11 @@ public ScriptExpression createScriptExpression(
// the duality of Expression and ScriptExpression ... maybe the ScriptExpression is unnecessary abstraction
// and it should be removed.
expression.setExpressionProfile(expressionProfile);
expression.setScriptExpressionProfile(processScriptExpressionProfile(expressionProfile, language, shortDesc));
expression.setScriptExpressionProfile(
processScriptExpressionProfile(
expressionProfile,
evaluator.getLanguageUrl(), // We need "normalized" language URI here
shortDesc));

return expression;
}
Expand Down

0 comments on commit bd46573

Please sign in to comment.