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 Aug 17, 2023
2 parents ce4b0c6 + 87bb542 commit 44d2544
Show file tree
Hide file tree
Showing 14 changed files with 230 additions and 160 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -24,20 +24,6 @@
import javax.xml.datatype.XMLGregorianCalendar;
import javax.xml.namespace.QName;

import com.evolveum.midpoint.gui.api.prism.ItemStatus;
import com.evolveum.midpoint.gui.impl.page.admin.org.PageOrgHistory;
import com.evolveum.midpoint.gui.impl.page.admin.role.PageRoleHistory;
import com.evolveum.midpoint.gui.impl.page.admin.service.PageServiceHistory;

import com.evolveum.midpoint.gui.impl.page.admin.user.PageUserHistory;

import com.evolveum.midpoint.gui.impl.page.login.PageLogin;
import com.evolveum.midpoint.model.api.ActivityCustomization;
import com.evolveum.midpoint.prism.delta.*;
import com.evolveum.midpoint.prism.query.ObjectQuery;
import com.evolveum.midpoint.web.security.MidPointAuthWebSession;
import com.evolveum.midpoint.web.component.dialog.Popupable;

import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.BooleanUtils;
import org.apache.commons.lang3.StringUtils;
Expand Down Expand Up @@ -99,6 +85,7 @@
import com.evolveum.midpoint.gui.api.model.ReadOnlyModel;
import com.evolveum.midpoint.gui.api.page.PageAdminLTE;
import com.evolveum.midpoint.gui.api.page.PageBase;
import com.evolveum.midpoint.gui.api.prism.ItemStatus;
import com.evolveum.midpoint.gui.api.prism.wrapper.*;
import com.evolveum.midpoint.gui.impl.GuiChannel;
import com.evolveum.midpoint.gui.impl.component.data.provider.BaseSortableDataProvider;
Expand All @@ -120,14 +107,19 @@
import com.evolveum.midpoint.gui.impl.page.admin.objectcollection.PageObjectCollection;
import com.evolveum.midpoint.gui.impl.page.admin.objecttemplate.PageObjectTemplate;
import com.evolveum.midpoint.gui.impl.page.admin.org.PageOrg;
import com.evolveum.midpoint.gui.impl.page.admin.org.PageOrgHistory;
import com.evolveum.midpoint.gui.impl.page.admin.report.PageReport;
import com.evolveum.midpoint.gui.impl.page.admin.resource.PageResource;
import com.evolveum.midpoint.gui.impl.page.admin.resource.PageShadow;
import com.evolveum.midpoint.gui.impl.page.admin.role.PageRole;
import com.evolveum.midpoint.gui.impl.page.admin.role.PageRoleHistory;
import com.evolveum.midpoint.gui.impl.page.admin.service.PageService;
import com.evolveum.midpoint.gui.impl.page.admin.service.PageServiceHistory;
import com.evolveum.midpoint.gui.impl.page.admin.simulation.PageSimulationResult;
import com.evolveum.midpoint.gui.impl.page.admin.task.PageTask;
import com.evolveum.midpoint.gui.impl.page.admin.user.PageUser;
import com.evolveum.midpoint.gui.impl.page.admin.user.PageUserHistory;
import com.evolveum.midpoint.gui.impl.page.login.PageLogin;
import com.evolveum.midpoint.gui.impl.page.self.PageOrgSelfProfile;
import com.evolveum.midpoint.gui.impl.page.self.PageRoleSelfProfile;
import com.evolveum.midpoint.gui.impl.page.self.PageServiceSelfProfile;
Expand All @@ -143,6 +135,10 @@
import com.evolveum.midpoint.prism.*;
import com.evolveum.midpoint.prism.crypto.EncryptionException;
import com.evolveum.midpoint.prism.crypto.Protector;
import com.evolveum.midpoint.prism.delta.ChangeType;
import com.evolveum.midpoint.prism.delta.ItemDelta;
import com.evolveum.midpoint.prism.delta.ObjectDelta;
import com.evolveum.midpoint.prism.delta.PropertyDelta;
import com.evolveum.midpoint.prism.path.ItemName;
import com.evolveum.midpoint.prism.path.ItemPath;
import com.evolveum.midpoint.prism.path.ItemPathCollectionsUtil;
Expand Down Expand Up @@ -186,6 +182,7 @@
import com.evolveum.midpoint.web.component.data.SelectableDataTable;
import com.evolveum.midpoint.web.component.data.Table;
import com.evolveum.midpoint.web.component.data.column.ColumnMenuAction;
import com.evolveum.midpoint.web.component.dialog.Popupable;
import com.evolveum.midpoint.web.component.input.DisplayableValueChoiceRenderer;
import com.evolveum.midpoint.web.component.input.DropDownChoicePanel;
import com.evolveum.midpoint.web.component.menu.cog.InlineMenuItem;
Expand All @@ -208,6 +205,7 @@
import com.evolveum.midpoint.web.page.admin.users.PageUsers;
import com.evolveum.midpoint.web.page.admin.workflow.dto.EvaluatedTriggerGroupDto;
import com.evolveum.midpoint.web.security.MidPointApplication;
import com.evolveum.midpoint.web.security.MidPointAuthWebSession;
import com.evolveum.midpoint.web.session.SessionStorage;
import com.evolveum.midpoint.web.util.DateValidator;
import com.evolveum.midpoint.web.util.InfoTooltipBehavior;
Expand All @@ -231,6 +229,8 @@ public final class WebComponentUtil {

private static final Trace LOGGER = TraceManager.getTrace(WebComponentUtil.class);

private static final String DEFAULT_RELATION_ICON = "fa-solid fa-user";

private static final String KEY_BOOLEAN_NULL = "Boolean.NULL";
private static final String KEY_BOOLEAN_TRUE = "Boolean.TRUE";
private static final String KEY_BOOLEAN_FALSE = "Boolean.FALSE";
Expand Down Expand Up @@ -2106,6 +2106,68 @@ private static PolyStringType getRelationLabel(RelationDefinitionType definition
return displayType.getLabel();
}

public static RelationDefinitionType getRelationDefinition(QName relation, List<RelationDefinitionType> relations) {
if (relations == null) {
return null;
}

for (RelationDefinitionType rel : relations) {
if (relation.equals(rel.getRef())) {
return rel;
}
}

return null;
}

public static String getRelationIcon(QName relation, List<RelationDefinitionType> relations) {
final String defaultIcon = getDefaultRelationIcon(relation);

RelationDefinitionType rel = getRelationDefinition(relation, relations);
if (rel == null || rel.getDisplay() == null) {
return defaultIcon;
}

DisplayType display = rel.getDisplay();

IconType it = display.getIcon();
if (it == null || it.getCssClass() == null) {
return defaultIcon;
}

return it.getCssClass();
}

public static PolyString getRelationLabel(QName relation, List<RelationDefinitionType> relations) {
final PolyString defaultLabel = new PolyString(relation.getLocalPart());

RelationDefinitionType rel = getRelationDefinition(relation, relations);
if (rel == null) {
return defaultLabel;
}

DisplayType display = rel.getDisplay();
if (display == null || display.getLabel() == null) {
return defaultLabel;
}

return display.getLabel().toPolyString();
}

public static String getDefaultRelationIcon(QName name) {
if (SchemaConstants.ORG_DEFAULT.equals(name)) {
return "fa-solid fa-user";
} else if (SchemaConstants.ORG_MANAGER.equals(name)) {
return "fa-solid fa-user-tie";
} else if (SchemaConstants.ORG_APPROVER.equals(name)) {
return "fa-solid fa-clipboard-check";
} else if (SchemaConstants.ORG_OWNER.equals(name)) {
return "fa-solid fa-crown";
}

return DEFAULT_RELATION_ICON;
}

public static String createUserIcon(PrismObject<UserType> object) {
UserType user = object.asObjectable();

Expand Down Expand Up @@ -2661,6 +2723,7 @@ public static Class<? extends PageBase> getNewlyCreatedObjectPage(Class<? extend
public static Class<? extends PageBase> getObjectListPage(Class<? extends ObjectType> type) {
return OBJECT_LIST_PAGE_MAP.get(type);
}

public static Class<? extends PageBase> getPageHistoryDetailsPage(Class<?> page) {
return OBJECT_HISTORY_PAGE_MAP.get(page);
}
Expand Down Expand Up @@ -5674,7 +5737,7 @@ public static String createMappingIcon(PrismContainerValueWrapper<? extends Cont

if (object.getParentContainerValue(ResourceActivationDefinitionType.class) != null
|| object.getParentContainerValue(ResourcePasswordDefinitionType.class) != null) {
if (QNameUtil.match(def.getTypeName(), MappingType.COMPLEX_TYPE)){
if (QNameUtil.match(def.getTypeName(), MappingType.COMPLEX_TYPE)) {

PrismContainerValueWrapper parent =
object.getParentContainerValue(ResourceBidirectionalMappingType.class);
Expand Down Expand Up @@ -5730,7 +5793,7 @@ public static LookupTableType loadLookupTable(String lookupTableOid, PageBase pa
PrismObject<LookupTableType> prismLookupTable =
WebModelServiceUtils.loadObject(LookupTableType.class, lookupTableOid, options, pageBase, task, result);
if (prismLookupTable != null) {
return prismLookupTable.asObjectable();
return prismLookupTable.asObjectable();
}
return null;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@
import org.apache.wicket.markup.html.panel.Fragment;
import org.apache.wicket.markup.repeater.Item;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.LoadableDetachableModel;
import org.apache.wicket.model.Model;
import org.apache.wicket.model.PropertyModel;
import org.apache.wicket.request.mapper.parameter.PageParameters;
Expand All @@ -42,13 +43,15 @@
import com.evolveum.midpoint.gui.api.component.wizard.WizardModel;
import com.evolveum.midpoint.gui.api.model.LoadableModel;
import com.evolveum.midpoint.gui.api.page.PageBase;
import com.evolveum.midpoint.gui.api.util.LocalizationUtil;
import com.evolveum.midpoint.gui.api.util.WebComponentUtil;
import com.evolveum.midpoint.gui.api.util.WebModelServiceUtils;
import com.evolveum.midpoint.gui.impl.component.data.provider.ListDataProvider;
import com.evolveum.midpoint.gui.impl.page.self.PageRequestAccess;
import com.evolveum.midpoint.prism.PrismObject;
import com.evolveum.midpoint.prism.xml.XmlTypeConverter;
import com.evolveum.midpoint.schema.GetOperationOptions;
import com.evolveum.midpoint.schema.RelationRegistry;
import com.evolveum.midpoint.schema.SelectorOptions;
import com.evolveum.midpoint.schema.constants.ObjectTypes;
import com.evolveum.midpoint.schema.result.OperationResult;
Expand All @@ -60,6 +63,7 @@
import com.evolveum.midpoint.web.component.form.MidpointForm;
import com.evolveum.midpoint.web.component.util.EnableBehaviour;
import com.evolveum.midpoint.web.component.util.VisibleBehaviour;
import com.evolveum.midpoint.web.security.MidPointApplication;
import com.evolveum.midpoint.web.util.TooltipBehavior;
import com.evolveum.midpoint.xml.ns._public.common.common_3.*;

Expand Down Expand Up @@ -91,15 +95,29 @@ public class CartSummaryPanel extends BasePanel<RequestAccess> implements Access

private final WizardModel wizard;

private IModel<List<RelationDefinitionType>> systemRelations;

public CartSummaryPanel(String id, WizardModel wizard, IModel<RequestAccess> model, PageBase page) {
super(id, model);

this.wizard = wizard;
this.page = page;

initModels();
initLayout();
}

private void initModels() {
systemRelations = new LoadableDetachableModel<>() {

@Override
protected List<RelationDefinitionType> load() {
RelationRegistry registry = MidPointApplication.get().getRelationRegistry();
return registry.getRelationDefinitions();
}
};
}

@Override
protected void onConfigure() {
super.onConfigure();
Expand Down Expand Up @@ -402,7 +420,17 @@ protected IResource load() {

@Override
public void populateItem(Item<ICellPopulator<ShoppingCartItem>> item, String id, IModel<ShoppingCartItem> model) {
item.add(new Label(id, () -> model.getObject().getName()));
item.add(new Label(id, () -> {
ShoppingCartItem cartItem = model.getObject();

List<RelationDefinitionType> systemRelations = CartSummaryPanel.this.systemRelations.getObject();
String relation = LocalizationUtil.translatePolyString(
WebComponentUtil.getRelationLabel(cartItem.getRelation(), systemRelations));

return LocalizationUtil.translate(
"ShoppingCartPanel.accessNameValue", new Object[] {
cartItem.getName(), relation });
}));
}
});
columns.add(new AbstractColumn<>(createStringResource("ShoppingCartPanel.selectedUsers")) {
Expand Down

0 comments on commit 44d2544

Please sign in to comment.