Skip to content

Commit

Permalink
MID-8842 ninja - additionalPanels processor + test
Browse files Browse the repository at this point in the history
(cherry picked from commit 9113d36)
  • Loading branch information
1azyman committed Sep 6, 2023
1 parent 56de54d commit 285a4e8
Show file tree
Hide file tree
Showing 4 changed files with 144 additions and 2 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
/*
* Copyright (C) 2010-2023 Evolveum and contributors
*
* This work is dual-licensed under the Apache License 2.0
* and European Union Public License. See LICENSE file for details.
*/

package com.evolveum.midpoint.schema.validator.processor;

import com.evolveum.midpoint.prism.PrismObject;
import com.evolveum.midpoint.prism.path.ItemPath;
import com.evolveum.midpoint.schema.validator.UpgradeObjectProcessor;
import com.evolveum.midpoint.schema.validator.UpgradePhase;
import com.evolveum.midpoint.schema.validator.UpgradePriority;
import com.evolveum.midpoint.schema.validator.UpgradeType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.*;

@SuppressWarnings("unused")
public class AdditionalPanelsProcessor implements UpgradeObjectProcessor<ObjectType> {

@Override
public UpgradePhase getPhase() {
return UpgradePhase.BEFORE;
}

@Override
public UpgradePriority getPriority() {
return UpgradePriority.NECESSARY;
}

@Override
public UpgradeType getType() {
return UpgradeType.PREVIEW;
}

@Override
public boolean isApplicable(PrismObject<?> object, ItemPath path) {
return matchParentTypeAndItemName(object, path, GuiObjectListViewType.class, GuiObjectListViewType.F_ADDITIONAL_PANELS);
}

@Override
public boolean process(PrismObject<ObjectType> object, ItemPath path) throws Exception {
GuiObjectListViewType view = getItemParent(object, path);

GuiObjectListViewAdditionalPanelsType additionalPanels = view.getAdditionalPanels();
if (additionalPanels.getMemberPanel() == null) {
view.setAdditionalPanels(null);
return true;
}

GuiObjectListPanelConfigurationType memberPanel = additionalPanels.getMemberPanel();

GuiObjectDetailsPageType objectDetailsPage = new GuiObjectDetailsPageType();
objectDetailsPage.setType(view.getType());

ContainerPanelConfigurationType panel = new ContainerPanelConfigurationType();
panel.setIdentifier("orgMembers"); //view.getIdentifier();
objectDetailsPage.getPanel().add(panel);

GuiObjectListViewType listView = new GuiObjectListViewType();
panel.setListView(listView);

listView.setSearchBoxConfiguration(memberPanel.getSearchBoxConfiguration().clone());

ItemPath objectCollectionViewsPath = path.allUpToIncluding(path.size() - 4);
AdminGuiConfigurationType adminGuiConfiguration = getItemParent(object, objectCollectionViewsPath);
GuiObjectDetailsSetType objectDetails = adminGuiConfiguration.getObjectDetails();
if (objectDetails == null) {
objectDetails = new GuiObjectDetailsSetType();
adminGuiConfiguration.setObjectDetails(objectDetails);
}

objectDetails.getObjectDetailsPage().add(objectDetailsPage);


view.setAdditionalPanels(null);
return true;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,8 @@ private void assertUpgrade(String file, UpgradeValidationResult result) {

String msg = "EXPECTED:\n" + PrismTestUtil.serializeObjectToString(expected) +
"\nUPDATED:\n" + PrismTestUtil.serializeObjectToString(updated) +
"\nORIGINAL:\n" + PrismTestUtil.serializeObjectToString(original);
"\nORIGINAL:\n" + PrismTestUtil.serializeObjectToString(original) +
"\nDELTA:\n" + updated.diff(expected).debugDump();

LOGGER.info(msg);

Expand Down Expand Up @@ -165,7 +166,7 @@ private String getProcessorIdentifier(Class<?> processorClass) {
@Test
public void test30TestSystemConfig() throws Exception {
testUpgradeValidator("system-configuration.xml", result -> {
Assertions.assertThat(result.getItems()).hasSize(11);
Assertions.assertThat(result.getItems()).hasSize(12);
});
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,10 @@
</searchItems>
</searchBoxConfiguration>
</objectCollectionView>
<objectCollectionView id="15">
<identifier>orgMember</identifier>
<type>OrgType</type>
</objectCollectionView>
</objectCollectionViews>
<objectDetails>
<objectDetailsPage id="10">
Expand All @@ -111,6 +115,35 @@
<identifier>123</identifier>
</container>
</objectDetailsPage>
<objectDetailsPage>
<type>OrgType</type>
<panel>
<identifier>orgMembers</identifier>
<listView>
<searchBoxConfiguration>
<scopeConfiguration>
<display>
<label>Custom Scope</label>
<help>Help scope text</help>
</display>
<defaultValue>subtree</defaultValue>
</scopeConfiguration>
<objectTypeConfiguration>
<display>
<label>Custom Type</label>
</display>
<defaultValue>OrgType</defaultValue>
<supportedTypes>OrgType</supportedTypes>
<supportedTypes>UserType</supportedTypes>
<supportedTypes>ServiceType</supportedTypes>
</objectTypeConfiguration>
<indirectConfiguration>
<visibility>hidden</visibility>
</indirectConfiguration>
</searchBoxConfiguration>
</listView>
</panel>
</objectDetailsPage>
</objectDetails>
</adminGuiConfiguration>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,35 @@
</searchItems>
</searchBoxConfiguration>
</objectCollectionView>
<objectCollectionView id="15">
<identifier>orgMember</identifier>
<type>OrgType</type>
<additionalPanels>
<memberPanel>
<searchBoxConfiguration>
<scopeConfiguration>
<display>
<label>Custom Scope</label>
<help>Help scope text</help>
</display>
<defaultValue>subtree</defaultValue>
</scopeConfiguration>
<objectTypeConfiguration>
<display>
<label>Custom Type</label>
</display>
<defaultValue>OrgType</defaultValue>
<supportedTypes>OrgType</supportedTypes>
<supportedTypes>UserType</supportedTypes>
<supportedTypes>ServiceType</supportedTypes>
</objectTypeConfiguration>
<indirectConfiguration>
<visibility>hidden</visibility>
</indirectConfiguration>
</searchBoxConfiguration>
</memberPanel>
</additionalPanels>
</objectCollectionView>
</objectCollectionViews>
<objectDetails>
<objectDetailsPage id="10">
Expand Down

0 comments on commit 285a4e8

Please sign in to comment.