Skip to content

Commit

Permalink
adding page for object collections
Browse files Browse the repository at this point in the history
  • Loading branch information
skublik committed Jun 5, 2020
1 parent 7c4b1bf commit ecaf76b
Show file tree
Hide file tree
Showing 18 changed files with 875 additions and 138 deletions.
Expand Up @@ -67,6 +67,8 @@ public class GuiStyleConstants {
public static final String CLASS_OBJECT_CERT_CAMPAIGN_ICON = "fa fa-gavel";
public static final String CLASS_OBJECT_CERT_CAMPAIGN_ICON_COLORED = CLASS_OBJECT_CERT_CAMPAIGN_ICON + " object-task-color"; // TODO

public static final String CLASS_OBJECT_COLLECTION_CAMPAIGN_ICON = "fa fa-filter";

public static final String CLASS_ICON_STYLE = "icon-style-"; //some icon styles start with this string
public static final String CLASS_ICON_STYLE_NORMAL = "icon-style-normal";
public static final String CLASS_ICON_STYLE_DISABLED = "icon-style-disabled";
Expand Down

Large diffs are not rendered by default.

Expand Up @@ -1783,6 +1783,8 @@ public static <T extends ObjectType> String createDefaultIcon(PrismObject<T> obj
return createResourceIcon((PrismObject<ResourceType>) object);
} else if (type == ShadowType.class) {
return createShadowIcon((PrismObject<ShadowType>) object);
} else if (type == ObjectCollectionType.class) {
return createObjectColletionIcon();
}

return "";
Expand Down Expand Up @@ -2096,6 +2098,10 @@ public static String createShadowIcon(PrismObject<ShadowType> object) {
return GuiStyleConstants.CLASS_SHADOW_ICON_UNKNOWN;
}

public static String createObjectColletionIcon() {
return getObjectNormalIconStyle(GuiStyleConstants.CLASS_OBJECT_COLLECTION_CAMPAIGN_ICON);
}

public static <AHT extends AssignmentHolderType> void initNewObjectWithReference(PageBase pageBase, QName type, List<ObjectReferenceType> newReferences) throws SchemaException {
PrismContext prismContext = pageBase.getPrismContext();
PrismObjectDefinition<AHT> def = prismContext.getSchemaRegistry().findObjectDefinitionByType(type);
Expand Down
Expand Up @@ -53,6 +53,7 @@ public final class DescriptorLoader implements DebugDumpable {
"com.evolveum.midpoint.web.page.admin.valuePolicy",
"com.evolveum.midpoint.web.page.admin.cases",
"com.evolveum.midpoint.web.page.admin.archetype",
"com.evolveum.midpoint.web.page.admin.objectCollection",
"com.evolveum.midpoint.web.page.login",
"com.evolveum.midpoint.web.page.error",
"com.evolveum.midpoint.web.page.forgetpassword",
Expand Down
@@ -0,0 +1,19 @@
<!--
~ Copyright (c) 2010-2013 Evolveum
~
~ This work is dual-licensed under the Apache License 2.0
~ and European Union Public License. See LICENSE file for details.
-->

<!DOCTYPE html>
<html xmlns:wicket="http://wicket.apache.org">
<wicket:panel>
<div class="row">
<div class="col-md-12">
<div class="top-level-prism-container">
<div wicket:id="basicObjectContainer" />
</div>
</div>
</div>
</wicket:panel>
</html>
@@ -0,0 +1,70 @@
/*
* Copyright (c) 2018 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.web.component;

import com.evolveum.midpoint.gui.api.component.BasePanel;
import com.evolveum.midpoint.gui.api.prism.wrapper.ItemWrapper;
import com.evolveum.midpoint.gui.api.prism.wrapper.PrismObjectWrapper;
import com.evolveum.midpoint.gui.impl.prism.panel.ItemPanelSettingsBuilder;
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.prism.ItemVisibility;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ObjectType;

import org.apache.wicket.markup.html.panel.Panel;
import org.apache.wicket.model.IModel;

import javax.xml.namespace.QName;

/**
* @author skublik
*/
public class ObjectBasicPanel<O extends ObjectType> extends BasePanel<PrismObjectWrapper<O>> {

private static final long serialVersionUID = 1L;

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

private static final String ID_BASIC_CONTAINER = "basicObjectContainer";


public ObjectBasicPanel(String id, IModel<PrismObjectWrapper<O>> model) {
super(id, model);

setOutputMarkupId(true);

}

@Override
protected void onInitialize() {
super.onInitialize();

initLayout();
}

protected void initLayout() {
try {
ItemPanelSettingsBuilder builder = new ItemPanelSettingsBuilder().visibilityHandler(this::getBasicTabVisibility);
Panel panel = getPageBase().initItemPanel(ID_BASIC_CONTAINER, getType(), getModel(), builder.build());
add(panel);
} catch (SchemaException e) {
LOGGER.error("Cannot create basic panel for system configuration.");
getSession().error("Cannot create basic panel for system configuration.");
}

}

protected QName getType() {
return ObjectType.COMPLEX_TYPE;
}

protected ItemVisibility getBasicTabVisibility(ItemWrapper<?, ?> itemWrapper) {
return ItemVisibility.AUTO;
}
}
Expand Up @@ -393,6 +393,16 @@ public static <T extends ObjectType> List<IColumn<SelectableBean<T>, String>> ge
return columns;
}

public static List<IColumn<SelectableBean<ObjectCollectionType>, String>> getDefaultObjectColumns() {
List<ColumnTypeDto<String>> columnsDefs = Arrays.asList(
new ColumnTypeDto<String>("ObjectType.description",
null,
SelectableBeanImpl.F_VALUE + ".description", false)
);
List<IColumn<SelectableBean<ObjectCollectionType>, String>> columns = createColumns(columnsDefs);
return columns;
}


public static <T extends AbstractRoleType> List<IColumn<SelectableBean<T>, String>> getDefaultAbstractRoleColumns(boolean showAccounts) {

Expand Down
Expand Up @@ -8,6 +8,8 @@

import java.util.List;

import com.evolveum.midpoint.web.page.admin.configuration.PageAdminConfiguration;

import org.apache.wicket.Page;
import org.apache.wicket.extensions.markup.html.tabs.ITab;
import org.apache.wicket.markup.html.WebMarkupContainer;
Expand Down Expand Up @@ -37,6 +39,9 @@
url = "/admin/archetype",
encoder = OnePageParameterEncoder.class,
action = {
@AuthorizationAction(actionUri = PageAdminConfiguration.AUTH_CONFIGURATION_ALL,
label = PageAdminConfiguration.AUTH_CONFIGURATION_ALL_LABEL,
description = PageAdminConfiguration.AUTH_CONFIGURATION_ALL_DESCRIPTION),
@AuthorizationAction(actionUri = AuthorizationConstants.AUTZ_UI_ARCHETYPES_ALL_URL,
label = "PageArchetypes.auth.archetypesAll.label",
description = "PageArchetypes.auth.archetypesAll.description"),
Expand Down
Expand Up @@ -10,6 +10,8 @@
import java.util.List;

import com.evolveum.midpoint.web.component.util.SelectableBean;
import com.evolveum.midpoint.web.page.admin.configuration.PageAdminConfiguration;

import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn;
import org.apache.wicket.request.mapper.parameter.PageParameters;
Expand All @@ -27,6 +29,9 @@

@PageDescriptor(
url = "/admin/archetypes", action = {
@AuthorizationAction(actionUri = PageAdminConfiguration.AUTH_CONFIGURATION_ALL,
label = PageAdminConfiguration.AUTH_CONFIGURATION_ALL_LABEL,
description = PageAdminConfiguration.AUTH_CONFIGURATION_ALL_DESCRIPTION),
@AuthorizationAction(actionUri = AuthorizationConstants.AUTZ_UI_ARCHETYPES_ALL_URL,
label = "PageArchetypes.auth.archetypesAll.label",
description = "PageArchetypes.auth.archetypesAll.description"),
Expand Down
@@ -0,0 +1,40 @@
/*
* Copyright (c) 2010-2019 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.web.page.admin.objectCollection;

import com.evolveum.midpoint.gui.api.GuiStyleConstants;
import com.evolveum.midpoint.gui.api.util.ModelServiceLocator;
import com.evolveum.midpoint.web.component.ObjectSummaryPanel;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ObjectCollectionType;

import org.apache.wicket.model.IModel;

/**
* @author skublik
*/

public class ObjectCollectionSummaryPanel extends ObjectSummaryPanel<ObjectCollectionType> {

public ObjectCollectionSummaryPanel(String id, IModel<ObjectCollectionType> model, ModelServiceLocator serviceLocator) {
super(id, ObjectCollectionType.class, model, serviceLocator);
}

@Override
protected String getIconCssClass() {
return GuiStyleConstants.CLASS_OBJECT_COLLECTION_CAMPAIGN_ICON;
}

@Override
protected String getIconBoxAdditionalCssClass() {
return "summary-panel-shadow";
}

@Override
protected String getBoxAdditionalCssClass() {
return "summary-panel-shadow";
}
}
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
~ Copyright (c) 2010-2013 Evolveum
~
~ This work is dual-licensed under the Apache License 2.0
~ and European Union Public License. See LICENSE file for details.
-->

<html xmlns="http://www.w3.org/1999/xhtml" xmlns:wicket="http://wicket.apache.org">
<body>
<wicket:extend>
<wicket:child />
</wicket:extend>
</body>
</html>

0 comments on commit ecaf76b

Please sign in to comment.