Skip to content

Commit

Permalink
adding duration panel for resource predefined activation mappings ite…
Browse files Browse the repository at this point in the history
…ms and separe configuration for mapping to two wizard step panels
  • Loading branch information
skublik committed Jul 14, 2023
1 parent e703c00 commit c036131
Show file tree
Hide file tree
Showing 77 changed files with 1,373 additions and 394 deletions.
11 changes: 11 additions & 0 deletions gui/admin-gui/src/frontend/js/midpoint-theme.js
Original file line number Diff line number Diff line change
Expand Up @@ -554,4 +554,15 @@ export default class MidPointTheme {
chart.draw(data)
});
}

/**
* used in SimulationModePanel.java
*
* @param compId
*/
initDropdownResize(panelId) {
var panel = $('#' + panelId);
panel.find("option.width-tmp-option").html(panel.find("select.resizing-select option:selected").text());
panel.find("select.resizing-select").width(panel.find("select.width-tmp-select").width());
}
}
16 changes: 16 additions & 0 deletions gui/admin-gui/src/frontend/scss/midpoint.scss
Original file line number Diff line number Diff line change
Expand Up @@ -1841,3 +1841,19 @@ th.debug-list-buttons {
background-color: $dark;
}
}

@each $color, $value in $theme-colors {
$backgroundValue: color-yiq($value);

.colored-form-#{$color}, .colored-form-#{$color}:hover, .colored-form-#{$color}:active, .colored-form-#{$color}:focus {
color: $value;
background-color: mix(#ffffff00, $value, 85%);
border-color: $value;

option {
background: $white;
color: $dark;
}
}

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

import com.evolveum.midpoint.gui.api.util.WebComponentUtil;
import com.evolveum.midpoint.gui.api.util.WebModelServiceUtils;
import com.evolveum.midpoint.prism.PrismObject;
import com.evolveum.midpoint.schema.GetOperationOptions;
Expand Down Expand Up @@ -69,7 +70,6 @@ public AutoCompleteTextPanel(String id, final IModel<T> model, Class<T> type,
this.strict = strict;
}


public AutoCompleteTextPanel(String id, final IModel<T> model, Class<T> type, IAutoCompleteRenderer<T> renderer) {
super(id);

Expand Down Expand Up @@ -137,19 +137,11 @@ protected LookupTableType getLookupTable() {

protected LookupTableType getLookupTable() {
if (lookupTableOid != null) {
Task task = getPageBase().createSimpleTask("Load lookup table");
OperationResult result = task.getResult();
Collection<SelectorOptions<GetOperationOptions>> options = WebModelServiceUtils
.createLookupTableRetrieveOptions(getPageBase().getSchemaService());
PrismObject<LookupTableType> prismLookupTable = WebModelServiceUtils.loadObject(LookupTableType.class, lookupTableOid, options, getPageBase(), task, result);
if (prismLookupTable != null) {
return prismLookupTable.asObjectable();
}
}
return WebComponentUtil.loadLookupTable(lookupTableOid, getPageBase());
}
return null;
}


@Override
public FormComponent<T> getBaseFormComponent() {
return (FormComponent<T>) get(ID_INPUT);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@
*/
package com.evolveum.midpoint.gui.api.factory;

import com.evolveum.midpoint.gui.api.prism.wrapper.PrismValueWrapper;

import org.apache.wicket.Component;
import org.apache.wicket.feedback.ComponentFeedbackMessageFilter;

Expand All @@ -14,7 +16,7 @@

public interface GuiComponentFactory<T extends ItemPanelContext<?, ?>> {

<IW extends ItemWrapper<?, ?>> boolean match(IW wrapper);
<IW extends ItemWrapper<?, ?>, VW extends PrismValueWrapper<?>> boolean match(IW wrapper, VW valueWrapper);

Component createPanel(T panelCtx);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ public interface GuiComponentRegistry extends Serializable {

void addToRegistry(GuiComponentFactory<?> factory);

<T extends ItemPanelContext<?, ?>> GuiComponentFactory<T> findValuePanelFactory(ItemWrapper<?, ?> itemWrapper);
<T extends ItemPanelContext<?, ?>> GuiComponentFactory<T> findValuePanelFactory(ItemWrapper<?, ?> parentItemWrapper, PrismValueWrapper<?> valueWrapper);

void registerWrapperPanel(QName typeName, Class<?> panelClass);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5851,4 +5851,17 @@ public static String createMappingIcon(PrismContainerDefinition<? extends Contai
}
return "fa fa-circle";
}

public static LookupTableType loadLookupTable(String lookupTableOid, PageBase pageBase) {
Task task = pageBase.createSimpleTask("Load lookup table");
OperationResult result = task.getResult();
Collection<SelectorOptions<GetOperationOptions>> options = WebModelServiceUtils
.createLookupTableRetrieveOptions(pageBase.getSchemaService());
PrismObject<LookupTableType> prismLookupTable =
WebModelServiceUtils.loadObject(LookupTableType.class, lookupTableOid, options, pageBase, task, result);
if (prismLookupTable != null) {
return prismLookupTable.asObjectable();
}
return null;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
import com.evolveum.midpoint.gui.api.page.PageBase;
import com.evolveum.midpoint.gui.api.prism.wrapper.ItemWrapper;
import com.evolveum.midpoint.gui.api.prism.wrapper.PrismPropertyWrapper;
import com.evolveum.midpoint.gui.impl.page.admin.resource.component.ToggleSimulationModePanel;
import com.evolveum.midpoint.gui.impl.page.admin.resource.component.SimulationModePanel;
import com.evolveum.midpoint.prism.Containerable;
import com.evolveum.midpoint.prism.PrismContainerDefinition;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ObjectType;
Expand All @@ -19,15 +19,15 @@
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.model.IModel;

public class ToggleSimulationModeColumn<C extends Containerable> extends PrismPropertyWrapperColumn<C, String> {
public class SimulationModeColumn<C extends Containerable> extends PrismPropertyWrapperColumn<C, String> {

public ToggleSimulationModeColumn(IModel<? extends PrismContainerDefinition<C>> mainModel, PageBase pageBase) {
public SimulationModeColumn(IModel<? extends PrismContainerDefinition<C>> mainModel, PageBase pageBase) {
super(mainModel, ObjectType.F_LIFECYCLE_STATE, ColumnType.VALUE, pageBase);
}

@Override
protected <IW extends ItemWrapper> Component createColumnPanel(String componentId, IModel<IW> rowModel) {
return new ToggleSimulationModePanel(componentId, (IModel<PrismPropertyWrapper<String>>) rowModel);
return new SimulationModePanel(componentId, (IModel<PrismPropertyWrapper<String>>) rowModel);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@
*/
package com.evolveum.midpoint.gui.impl.factory.panel;

import com.evolveum.midpoint.gui.api.prism.wrapper.PrismValueWrapper;

import jakarta.annotation.PostConstruct;

import com.evolveum.midpoint.gui.impl.component.input.expression.ExpressionPanel;
Expand Down Expand Up @@ -40,7 +42,7 @@ protected Panel getPanel(PrismPropertyPanelContext<ExpressionType> panelCtx) {
}

@Override
public <IW extends ItemWrapper<?, ?>> boolean match(IW wrapper) {
public <IW extends ItemWrapper<?, ?>, VW extends PrismValueWrapper<?>> boolean match(IW wrapper, VW valueWrapper) {
if (wrapper == null) {
return false;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,19 +6,12 @@
*/
package com.evolveum.midpoint.gui.impl.factory.panel;

import com.evolveum.midpoint.gui.api.component.path.ItemPathDto;
import com.evolveum.midpoint.gui.api.component.path.ItemPathPanel;
import com.evolveum.midpoint.gui.api.factory.AbstractGuiComponentFactory;
import com.evolveum.midpoint.gui.api.prism.wrapper.ItemWrapper;
import com.evolveum.midpoint.gui.api.prism.wrapper.PrismPropertyWrapper;
import com.evolveum.midpoint.gui.api.registry.GuiComponentRegistry;
import com.evolveum.midpoint.gui.api.prism.wrapper.PrismValueWrapper;
import com.evolveum.midpoint.gui.impl.util.GuiDisplayNameUtil;
import com.evolveum.midpoint.prism.PrismContext;
import com.evolveum.midpoint.prism.path.ItemName;
import com.evolveum.midpoint.prism.path.ItemPath;
import com.evolveum.midpoint.web.component.input.TextPanel;
import com.evolveum.midpoint.web.component.input.validator.NotNullValidator;
import com.evolveum.midpoint.web.component.prism.InputPanel;
import com.evolveum.midpoint.web.page.admin.configuration.component.EmptyOnBlurAjaxFormUpdatingBehaviour;
import com.evolveum.midpoint.xml.ns._public.common.common_3.*;
import com.evolveum.prism.xml.ns._public.types_3.ItemPathType;
Expand All @@ -35,8 +28,6 @@

import jakarta.annotation.PostConstruct;
import javax.xml.namespace.QName;
import java.io.Serializable;
import java.util.List;

/**
* @author katka
Expand All @@ -47,8 +38,8 @@ public class AssociationRefPanelFactory extends ItemPathPanelFactory {
private static final long serialVersionUID = 1L;

@Override
public <IW extends ItemWrapper<?, ?>> boolean match(IW wrapper) {
return super.match(wrapper)
public <IW extends ItemWrapper<?, ?>, VW extends PrismValueWrapper<?>> boolean match(IW wrapper, VW valueWrapper) {
return super.match(wrapper, valueWrapper)
&& wrapper.getPath().namedSegmentsOnly().equivalent(ItemPath.create(
ResourceType.F_SCHEMA_HANDLING,
SchemaHandlingType.F_OBJECT_TYPE,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,12 +20,9 @@
import com.evolveum.midpoint.schema.processor.*;
import com.evolveum.midpoint.util.DisplayableValue;
import com.evolveum.midpoint.util.QNameUtil;
import com.evolveum.midpoint.util.exception.ConfigurationException;
import com.evolveum.midpoint.util.exception.SchemaException;
import com.evolveum.midpoint.util.logging.Trace;
import com.evolveum.midpoint.util.logging.TraceManager;
import com.evolveum.midpoint.web.component.input.validator.NotNullValidator;
import com.evolveum.midpoint.web.component.prism.InputPanel;
import com.evolveum.midpoint.web.page.admin.configuration.component.EmptyOnBlurAjaxFormUpdatingBehaviour;
import com.evolveum.midpoint.xml.ns._public.common.common_3.*;
import com.evolveum.prism.xml.ns._public.types_3.ItemPathType;
Expand All @@ -50,7 +47,7 @@
import org.springframework.stereotype.Component;

import jakarta.annotation.PostConstruct;
import javax.xml.namespace.QName;

import java.io.Serializable;
import java.util.*;
import java.util.stream.Collectors;
Expand All @@ -73,7 +70,7 @@ public void register() {
}

@Override
public <IW extends ItemWrapper<?, ?>> boolean match(IW wrapper) {
public <IW extends ItemWrapper<?, ?>, VW extends PrismValueWrapper<?>> boolean match(IW wrapper, VW valueWrapper) {
return ItemPathType.COMPLEX_TYPE.equals(wrapper.getTypeName())
&& (wrapper.getPath().namedSegmentsOnly().equivalent(ItemPath.create(
ResourceType.F_SCHEMA_HANDLING,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
import com.evolveum.midpoint.gui.api.component.autocomplete.AutoCompleteReferenceRenderer;
import com.evolveum.midpoint.gui.api.factory.GuiComponentFactory;
import com.evolveum.midpoint.gui.api.prism.wrapper.ItemWrapper;
import com.evolveum.midpoint.gui.api.prism.wrapper.PrismValueWrapper;
import com.evolveum.midpoint.gui.api.registry.GuiComponentRegistry;
import com.evolveum.midpoint.schema.constants.SchemaConstants;
import com.evolveum.midpoint.util.QNameUtil;
Expand Down Expand Up @@ -44,7 +45,7 @@ public Integer getOrder() {
}

@Override
public <IW extends ItemWrapper<?, ?>> boolean match(IW wrapper) {
public <IW extends ItemWrapper<?, ?>, VW extends PrismValueWrapper<?>> boolean match(IW wrapper, VW valueWrapper) {
return QNameUtil.match(ObjectReferenceType.COMPLEX_TYPE, wrapper.getTypeName())
&& SchemaConstants.NS_REPORT_EXTENSION.equals(wrapper.getItemName().getNamespaceURI())
&& wrapper.getParent() == null;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,9 @@
package com.evolveum.midpoint.gui.impl.factory.panel;

import java.io.Serializable;

import com.evolveum.midpoint.gui.api.prism.wrapper.PrismValueWrapper;

import jakarta.annotation.PostConstruct;

import org.apache.wicket.markup.html.panel.Panel;
Expand All @@ -15,8 +18,6 @@
import com.evolveum.midpoint.gui.api.factory.AbstractGuiComponentFactory;
import com.evolveum.midpoint.gui.api.prism.wrapper.ItemWrapper;
import com.evolveum.midpoint.util.QNameUtil;
import com.evolveum.midpoint.web.page.admin.configuration.component.EmptyOnBlurAjaxFormUpdatingBehaviour;
import com.evolveum.midpoint.web.page.admin.configuration.component.EmptyOnChangeAjaxFormUpdatingBehavior;
import com.evolveum.midpoint.web.page.admin.reports.component.SimpleAceEditorPanel;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ExpressionType;

Expand All @@ -36,7 +37,7 @@ protected Panel getPanel(PrismPropertyPanelContext<ExpressionType> panelCtx) {
}

@Override
public <IW extends ItemWrapper<?, ?>> boolean match(IW wrapper) {
public <IW extends ItemWrapper<?, ?>, VW extends PrismValueWrapper<?>> boolean match(IW wrapper, VW valueWrapper) {
return QNameUtil.match(ExpressionType.COMPLEX_TYPE, wrapper.getTypeName());
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,21 +7,14 @@
package com.evolveum.midpoint.gui.impl.factory.panel;

import com.evolveum.midpoint.gui.api.component.autocomplete.AutoCompleteTextPanel;
import com.evolveum.midpoint.gui.api.component.path.ItemPathDto;
import com.evolveum.midpoint.gui.api.component.path.ItemPathPanel;
import com.evolveum.midpoint.gui.api.factory.AbstractGuiComponentFactory;
import com.evolveum.midpoint.gui.api.prism.wrapper.ItemWrapper;
import com.evolveum.midpoint.gui.api.prism.wrapper.PrismContainerValueWrapper;
import com.evolveum.midpoint.gui.api.prism.wrapper.PrismPropertyWrapper;
import com.evolveum.midpoint.gui.api.registry.GuiComponentRegistry;
import com.evolveum.midpoint.gui.api.prism.wrapper.PrismValueWrapper;
import com.evolveum.midpoint.gui.impl.component.input.SourceMappingProvider;
import com.evolveum.midpoint.gui.impl.util.GuiDisplayNameUtil;
import com.evolveum.midpoint.prism.PrismContext;
import com.evolveum.midpoint.prism.path.ItemPath;
import com.evolveum.midpoint.schema.constants.ExpressionConstants;
import com.evolveum.midpoint.util.QNameUtil;
import com.evolveum.midpoint.web.component.input.DropDownChoicePanel;
import com.evolveum.midpoint.web.component.input.QNameObjectTypeChoiceRenderer;
import com.evolveum.midpoint.web.page.admin.configuration.component.EmptyOnBlurAjaxFormUpdatingBehaviour;
import com.evolveum.midpoint.web.page.admin.configuration.component.EmptyOnChangeAjaxFormUpdatingBehavior;
import com.evolveum.midpoint.xml.ns._public.common.common_3.*;
Expand All @@ -35,7 +28,7 @@
import org.springframework.stereotype.Component;

import jakarta.annotation.PostConstruct;
import javax.xml.namespace.QName;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Iterator;
Expand All @@ -50,7 +43,7 @@ public class CorrelatorItemRefPanelFactory extends ItemPathPanelFactory implemen
private static final long serialVersionUID = 1L;

@Override
public <IW extends ItemWrapper<?, ?>> boolean match(IW wrapper) {
public <IW extends ItemWrapper<?, ?>, VW extends PrismValueWrapper<?>> boolean match(IW wrapper, VW valueWrapper) {
return ItemPathType.COMPLEX_TYPE.equals(wrapper.getTypeName())
&& (wrapper.getPath().namedSegmentsOnly().equivalent(ItemPath.create(
ResourceType.F_SCHEMA_HANDLING,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@
*/
package com.evolveum.midpoint.gui.impl.factory.panel;

import com.evolveum.midpoint.gui.api.prism.wrapper.PrismValueWrapper;

import jakarta.annotation.PostConstruct;
import javax.xml.datatype.XMLGregorianCalendar;

Expand Down Expand Up @@ -40,7 +42,7 @@ public void register() {
}

@Override
public <IW extends ItemWrapper<?, ?>> boolean match(IW wrapper) {
public <IW extends ItemWrapper<?, ?>, VW extends PrismValueWrapper<?>> boolean match(IW wrapper, VW valueWrapper) {
return DOMUtil.XSD_DATETIME.equals(wrapper.getTypeName());
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@
*/
package com.evolveum.midpoint.gui.impl.factory.panel;

import com.evolveum.midpoint.gui.api.prism.wrapper.PrismValueWrapper;

import jakarta.annotation.PostConstruct;

import org.springframework.beans.factory.annotation.Autowired;
Expand All @@ -30,7 +32,7 @@ public void register() {
}

@Override
public <IW extends ItemWrapper<?, ?>> boolean match(IW wrapper) {
public <IW extends ItemWrapper<?, ?>, VW extends PrismValueWrapper<?>> boolean match(IW wrapper, VW valueWrapper) {
return wrapper instanceof PrismContainerWrapper && !wrapper.isMetadata();
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,9 @@
package com.evolveum.midpoint.gui.impl.factory.panel;

import java.util.List;

import com.evolveum.midpoint.gui.api.prism.wrapper.PrismValueWrapper;

import jakarta.annotation.PostConstruct;
import javax.xml.namespace.QName;

Expand Down Expand Up @@ -36,7 +39,7 @@ public void register() {
}

@Override
public <IW extends ItemWrapper<?, ?>> boolean match(IW wrapper) {
public <IW extends ItemWrapper<?, ?>, VW extends PrismValueWrapper<?>> boolean match(IW wrapper, VW valueWrapper) {
return AssignmentType.F_FOCUS_TYPE.equals(wrapper.getItemName()) || DOMUtil.XSD_QNAME.equals(wrapper.getTypeName());
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
package com.evolveum.midpoint.gui.impl.factory.panel;

import com.evolveum.midpoint.gui.api.prism.wrapper.ItemWrapper;
import com.evolveum.midpoint.gui.api.prism.wrapper.PrismValueWrapper;
import com.evolveum.midpoint.util.DOMUtil;
import com.evolveum.midpoint.web.component.input.DurationPanel;
import com.evolveum.midpoint.web.component.input.TextPanel;
Expand All @@ -29,7 +30,7 @@ public void register() {
}

@Override
public <IW extends ItemWrapper<?, ?>> boolean match(IW wrapper) {
public <IW extends ItemWrapper<?, ?>, VW extends PrismValueWrapper<?>> boolean match(IW wrapper, VW valueWrapper) {
QName type = wrapper.getTypeName();
return DOMUtil.XSD_DURATION.equals(type);
}
Expand Down

0 comments on commit c036131

Please sign in to comment.