diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/GuiStyleConstants.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/GuiStyleConstants.java index 35e05539a85..b89fa12deff 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/GuiStyleConstants.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/GuiStyleConstants.java @@ -139,4 +139,9 @@ public class GuiStyleConstants { public static final String DEFAULT_BG_COLOR = "#3c8dbc"; //blue-light theme + public static final String CLASS_PLUS_CIRCLE = "fa fa-plus-circle"; + public static final String CLASS_PLUS_CIRCLE_SUCCESS = CLASS_PLUS_CIRCLE + " text-success"; + public static final String CLASS_MINUS_CIRCLE = "fa fa-minus-circle"; + public static final String CLASS_MINUS_CIRCLE_DANGER = CLASS_MINUS_CIRCLE + " text-danger"; + public static final String CLASS_CIRCLE_FULL = "fa fa-circle"; } diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/prism/show/SceneItemLinePanel.html b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/prism/show/SceneItemLinePanel.html index ba7888cd7b8..0f8b065ab8a 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/prism/show/SceneItemLinePanel.html +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/prism/show/SceneItemLinePanel.html @@ -18,7 +18,13 @@ -
-
+ +
+
+ + +
+
+ diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/prism/show/SceneItemLinePanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/prism/show/SceneItemLinePanel.java index bc077a3656c..cc266beb600 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/prism/show/SceneItemLinePanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/prism/show/SceneItemLinePanel.java @@ -16,16 +16,20 @@ package com.evolveum.midpoint.web.component.prism.show; +import com.evolveum.midpoint.gui.api.GuiStyleConstants; import com.evolveum.midpoint.gui.api.component.BasePanel; import com.evolveum.midpoint.model.api.visualizer.SceneItemValue; import com.evolveum.midpoint.util.logging.Trace; import com.evolveum.midpoint.util.logging.TraceManager; +import com.evolveum.midpoint.web.component.data.column.ImagePanel; import com.evolveum.midpoint.web.component.util.VisibleEnableBehaviour; import org.apache.wicket.AttributeModifier; +import org.apache.wicket.behavior.AttributeAppender; import org.apache.wicket.markup.html.WebMarkupContainer; import org.apache.wicket.markup.html.basic.Label; import org.apache.wicket.model.AbstractReadOnlyModel; import org.apache.wicket.model.IModel; +import org.apache.wicket.model.Model; import org.apache.wicket.model.PropertyModel; /** @@ -36,8 +40,10 @@ public class SceneItemLinePanel extends BasePanel { private static final String ID_NAME_CONTAINER = "nameContainer"; private static final String ID_NAME = "name"; private static final String ID_OLD_VALUE_CONTAINER = "oldValueContainer"; + private static final String ID_OLD_VALUE_IMAGE = "oldValueImage"; private static final String ID_OLD_VALUE = "oldValue"; private static final String ID_NEW_VALUE_CONTAINER = "newValueContainer"; + private static final String ID_NEW_VALUE_IMAGE = "newValueImage"; private static final String ID_NEW_VALUE = "newValue"; private static final Trace LOGGER = TraceManager.getTrace(SceneItemLinePanel.class); @@ -83,6 +89,20 @@ public boolean isVisible() { new PropertyModel(getModel(), SceneItemLineDto.F_OLD_VALUE)); sivp.setRenderBodyOnly(true); oldValueCell.add(sivp); + + ImagePanel oldValueImagePanel = new ImagePanel(ID_OLD_VALUE_IMAGE, Model.of(GuiStyleConstants.CLASS_MINUS_CIRCLE_DANGER), + createStringResource("SceneItemLinePanel.removedValue")); + oldValueImagePanel.add(new VisibleEnableBehaviour(){ + private static final long serialVersionUID = 1L; + + @Override + public boolean isVisible(){ + return getModelObject().getOldValue() != null && + getModelObject().getOldValue().getSourceValue() != null; + } + }); + oldValueCell.add(oldValueImagePanel); + add(oldValueCell); WebMarkupContainer newValueCell = new WebMarkupContainer(ID_NEW_VALUE_CONTAINER); @@ -102,6 +122,30 @@ public String getObject() { return !getModelObject().isDelta() && getModelObject().isDeltaScene() ? "center" : null; } })); + + ImagePanel newValueImagePanel = new ImagePanel(ID_NEW_VALUE_IMAGE, + !getModelObject().isDelta() && getModelObject().isDeltaScene() ? + Model.of(GuiStyleConstants.CLASS_CIRCLE_FULL) : + Model.of(GuiStyleConstants.CLASS_PLUS_CIRCLE_SUCCESS), + !getModelObject().isDelta() && getModelObject().isDeltaScene() ? + createStringResource("SceneItemLinePanel.unchangedValue") + : createStringResource("SceneItemLinePanel.addedValue")); + newValueImagePanel.add(new VisibleEnableBehaviour(){ + private static final long serialVersionUID = 1L; + + @Override + public boolean isVisible(){ + return getModelObject().getNewValue() != null && + getModelObject().getNewValue().getSourceValue() != null; + } + }); + newValueImagePanel.add(new AttributeAppender("style", + !getModelObject().isDelta() && getModelObject().isDeltaScene() ? + "float: left; margin-right: 5px; width: 30%; position: absolute;" + : "float: left; margin-right: 5px;")); + newValueCell.add(newValueImagePanel); + add(newValueCell); } + } diff --git a/gui/admin-gui/src/main/resources/localization/Midpoint.properties b/gui/admin-gui/src/main/resources/localization/Midpoint.properties index a99be7490a5..d718ab3488b 100644 --- a/gui/admin-gui/src/main/resources/localization/Midpoint.properties +++ b/gui/admin-gui/src/main/resources/localization/Midpoint.properties @@ -3090,6 +3090,9 @@ ScenePanel.item=Item ScenePanel.oldValue=Old value ScenePanel.newValue=New value ScenePanel.value=Value +SceneItemLinePanel.removedValue=Removed value +SceneItemLinePanel.addedValue=Added value +SceneItemLinePanel.unchangedValue=Unchanged value operation.com.evolveum.midpoint.web.page.admin.resources.ResourceContentTabPanel.changeOwner=Change owner (GUI) TaskSummaryPanel.progressWithTotalKnown=Progress: {0} out of {1} TaskSummaryPanel.progressWithTotalUnknown=Progress: {0} diff --git a/infra/schema/src/main/java/com/evolveum/midpoint/schema/constants/SchemaConstants.java b/infra/schema/src/main/java/com/evolveum/midpoint/schema/constants/SchemaConstants.java index b8a07be500c..6fef4fdd946 100644 --- a/infra/schema/src/main/java/com/evolveum/midpoint/schema/constants/SchemaConstants.java +++ b/infra/schema/src/main/java/com/evolveum/midpoint/schema/constants/SchemaConstants.java @@ -117,6 +117,7 @@ public abstract class SchemaConstants { public static final QName C_CONNECTOR_CONNECTOR_TYPE = new QName(NS_C, "connectorType"); public static final QName C_SHADOW = new QName(NS_C, "shadow"); public static final QName C_SHADOW_TYPE = new QName(NS_C, "ShadowType"); + public static final QName C_ORG_TYPE = new QName(NS_C, "OrgType"); public static final QName C_ATTRIBUTES = new QName(NS_C, "attributes"); public static final QName C_ASSOCIATION = new QName(NS_C, "association"); public static final QName C_CREDENTIALS_TYPE = new QName(NS_C, "CredentialsType");