Skip to content

Commit

Permalink
member panel for services/orgs
Browse files Browse the repository at this point in the history
  • Loading branch information
katkav committed Dec 6, 2016
1 parent 9e2ac4c commit d59c8b8
Show file tree
Hide file tree
Showing 8 changed files with 133 additions and 23 deletions.
Expand Up @@ -21,24 +21,32 @@
import com.evolveum.midpoint.gui.api.util.FocusTabVisibleBehavior;
import org.apache.wicket.extensions.markup.html.tabs.ITab;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.model.Model;

import com.evolveum.midpoint.gui.api.component.MainObjectListPanel;
import com.evolveum.midpoint.gui.api.component.tabs.CountablePanelTab;
import com.evolveum.midpoint.gui.api.component.tabs.PanelTab;
import com.evolveum.midpoint.gui.api.model.LoadableModel;
import com.evolveum.midpoint.web.component.assignment.AssignmentEditorDto;
import com.evolveum.midpoint.web.component.assignment.AssignmentTablePanel;
import com.evolveum.midpoint.web.component.prism.ContainerStatus;
import com.evolveum.midpoint.web.component.prism.ObjectWrapper;
import com.evolveum.midpoint.web.page.admin.PageAdminFocus;
import com.evolveum.midpoint.web.page.admin.PageAdminObjectDetails;
import com.evolveum.midpoint.web.page.admin.roles.RoleMemberPanel;
import com.evolveum.midpoint.web.page.admin.users.component.AbstractRoleMemberPanel;
import com.evolveum.midpoint.web.page.admin.users.dto.FocusSubwrapperDto;
import com.evolveum.midpoint.xml.ns._public.common.common_3.AbstractRoleType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.AssignmentType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ObjectType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.RoleType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ShadowType;

/**
* @author semancik
*
*/
public class AbstractRoleMainPanel<R extends AbstractRoleType> extends FocusMainPanel<R> {
public abstract class AbstractRoleMainPanel<R extends AbstractRoleType> extends FocusMainPanel<R> {
private static final long serialVersionUID = 1L;

private LoadableModel<List<AssignmentEditorDto>> inducementsModel;
Expand Down Expand Up @@ -84,6 +92,24 @@ public String getCount() {
}
});

tabs.add(new PanelTab(parentPage.createStringResource("pageRole.members"), authorization) {

private static final long serialVersionUID = 1L;

@Override
public WebMarkupContainer createPanel(String panelId) {
return createMemberPanel(panelId);
}

@Override
public boolean isVisible() {
return getObjectWrapper().getStatus() != ContainerStatus.ADDING;
}
});

return tabs;
}

public abstract AbstractRoleMemberPanel<R> createMemberPanel(String panelId);

}
Expand Up @@ -32,6 +32,7 @@
import com.evolveum.midpoint.web.page.admin.PageAdminObjectDetails;
import com.evolveum.midpoint.web.page.admin.roles.RoleMemberPanel;
import com.evolveum.midpoint.web.page.admin.roles.RolePolicyPanel;
import com.evolveum.midpoint.web.page.admin.users.component.AbstractRoleMemberPanel;
import com.evolveum.midpoint.web.page.admin.users.dto.FocusSubwrapperDto;
import com.evolveum.midpoint.xml.ns._public.common.common_3.RoleType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ShadowType;
Expand Down Expand Up @@ -70,23 +71,28 @@ public WebMarkupContainer createPanel(String panelId) {
authorization = new FocusTabVisibleBehavior(unwrapModel(),
ComponentConstants.UI_FOCUS_TAB_MEMBERS_URL);

tabs.add(new PanelTab(parentPage.createStringResource("pageRole.members"), authorization) {

private static final long serialVersionUID = 1L;

@Override
public WebMarkupContainer createPanel(String panelId) {
return new RoleMemberPanel(panelId, new Model<RoleType>(getObject().asObjectable()), getDetailsPage());
}

@Override
public boolean isVisible() {
return getObjectWrapper().getStatus() != ContainerStatus.ADDING;
}
});
// tabs.add(new PanelTab(parentPage.createStringResource("pageRole.members"), authorization) {
//
// private static final long serialVersionUID = 1L;
//
// @Override
// public WebMarkupContainer createPanel(String panelId) {
// return new RoleMemberPanel(panelId, new Model<RoleType>(getObject().asObjectable()), getDetailsPage());
// }
//
// @Override
// public boolean isVisible() {
// return getObjectWrapper().getStatus() != ContainerStatus.ADDING;
// }
// });

return tabs;
}

@Override
public AbstractRoleMemberPanel<RoleType> createMemberPanel(String panelId) {
return new RoleMemberPanel(panelId, new Model<RoleType>(getObject().asObjectable()), getDetailsPage());
}



Expand Down
Expand Up @@ -62,15 +62,18 @@
import com.evolveum.midpoint.web.component.data.column.CheckBoxPanel;
import com.evolveum.midpoint.web.component.input.ObjectTypeChoiceRenderer;
import com.evolveum.midpoint.web.component.input.QNameChoiceRenderer;
import com.evolveum.midpoint.web.component.util.VisibleEnableBehaviour;
import com.evolveum.midpoint.web.page.admin.users.component.AbstractRoleMemberPanel;
import com.evolveum.midpoint.web.session.UserProfileStorage.TableId;
import com.evolveum.midpoint.xml.ns._public.common.common_3.AbstractRoleType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.AssignmentType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.FocusType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ObjectType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.OrgType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.RoleType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.UserType;

public class RoleMemberPanel extends AbstractRoleMemberPanel<RoleType> {
public class RoleMemberPanel<T extends AbstractRoleType> extends AbstractRoleMemberPanel<T> {

private static final long serialVersionUID = 1L;

Expand All @@ -81,10 +84,14 @@ public class RoleMemberPanel extends AbstractRoleMemberPanel<RoleType> {
private static String ID_PROJECT = "project";
private static String ID_INDIRECT_MEMBERS = "indirectMembers";

public RoleMemberPanel(String id, IModel<RoleType> model, PageBase pageBase) {
public RoleMemberPanel(String id, IModel<T> model, PageBase pageBase) {
super(id, TableId.ROLE_MEMEBER_PANEL, model, pageBase);

}

protected boolean isRole() {
return true;
}

private PrismContext getPrismContext() {
return getPageBase().getPrismContext();
Expand Down Expand Up @@ -218,15 +225,29 @@ protected void initSearch(Form form) {
DropDownChoice<QName> typeSelect = createDropDown(ID_OBJECT_TYPE, Model.of(FocusType.COMPLEX_TYPE),
allowedTypes, new QNameChoiceRenderer());
add(typeSelect);


DropDownChoice<OrgType> tenant = createDropDown(ID_TENANT, new Model(),
createTenantList(), new ObjectTypeChoiceRenderer<OrgType>());
add(tenant);

tenant.add(new VisibleEnableBehaviour() {
@Override
public boolean isVisible() {
return isRole();
}
});

DropDownChoice<OrgType> project = createDropDown(ID_PROJECT, new Model(),
createProjectList(), new ObjectTypeChoiceRenderer<OrgType>());
add(project);

project.add(new VisibleEnableBehaviour() {
@Override
public boolean isVisible() {
return isRole();
}
});

CheckBoxPanel includeIndirectMembers = new CheckBoxPanel(ID_INDIRECT_MEMBERS, new Model<Boolean>(false)) {
private static final long serialVersionUID = 1L;

Expand All @@ -236,6 +257,13 @@ public void onUpdate(AjaxRequestTarget target) {
};
add(includeIndirectMembers);

includeIndirectMembers.add(new VisibleEnableBehaviour() {
@Override
public boolean isVisible() {
return isRole();
}
});


}

Expand Down
@@ -1,5 +1,6 @@
package com.evolveum.midpoint.web.page.admin.services;

import org.apache.wicket.model.Model;
import org.apache.wicket.request.mapper.parameter.PageParameters;

import com.evolveum.midpoint.prism.PrismObject;
Expand All @@ -13,6 +14,8 @@
import com.evolveum.midpoint.web.component.objectdetails.AbstractRoleMainPanel;
import com.evolveum.midpoint.web.component.progress.ProgressReportingAwarePage;
import com.evolveum.midpoint.web.page.admin.PageAdminAbstractRole;
import com.evolveum.midpoint.web.page.admin.users.component.AbstractRoleMemberPanel;
import com.evolveum.midpoint.web.page.admin.users.component.ServiceMemberPanel;
import com.evolveum.midpoint.web.page.admin.users.component.ServiceSummaryPanel;
import com.evolveum.midpoint.web.util.OnePageParameterEncoder;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ServiceType;
Expand All @@ -22,7 +25,7 @@
@AuthorizationAction(actionUri = AuthorizationConstants.AUTZ_UI_SERVICE_URL, label = "PageService.auth.role.label", description = "PageService.auth.role.description") })
public class PageService extends PageAdminAbstractRole<ServiceType> implements ProgressReportingAwarePage{

private static final Trace LOGGER = TraceManager.getTrace(PageService.class);
private static final long serialVersionUID = 1L;

public PageService() {
initialize(null);
Expand Down Expand Up @@ -59,7 +62,14 @@ protected FocusSummaryPanel<ServiceType> createSummaryPanel() {

@Override
protected AbstractObjectMainPanel<ServiceType> createMainPanel(String id) {
return new AbstractRoleMainPanel<ServiceType>(id, getObjectModel(), getAssignmentsModel(), getProjectionModel(), getInducementsModel(), this);
return new AbstractRoleMainPanel<ServiceType>(id, getObjectModel(), getAssignmentsModel(), getProjectionModel(), getInducementsModel(), this) {
private static final long serialVersionUID = 1L;

@Override
public AbstractRoleMemberPanel<ServiceType> createMemberPanel(String panelId) {
return new ServiceMemberPanel(panelId, Model.of(getObject().asObjectable()), PageService.this);
}
};
}

}
Expand Up @@ -15,6 +15,7 @@
*/
package com.evolveum.midpoint.web.page.admin.users;

import org.apache.wicket.model.Model;
import org.apache.wicket.request.mapper.parameter.PageParameters;

import com.evolveum.midpoint.prism.PrismObject;
Expand All @@ -28,6 +29,8 @@
import com.evolveum.midpoint.web.component.objectdetails.AbstractRoleMainPanel;
import com.evolveum.midpoint.web.component.progress.ProgressReportingAwarePage;
import com.evolveum.midpoint.web.page.admin.PageAdminAbstractRole;
import com.evolveum.midpoint.web.page.admin.users.component.AbstractRoleMemberPanel;
import com.evolveum.midpoint.web.page.admin.users.component.OrgMemberPanel;
import com.evolveum.midpoint.web.page.admin.users.component.OrgSummaryPanel;
import com.evolveum.midpoint.web.util.OnePageParameterEncoder;
import com.evolveum.midpoint.xml.ns._public.common.common_3.OrgType;
Expand Down Expand Up @@ -77,6 +80,13 @@ protected FocusSummaryPanel<OrgType> createSummaryPanel() {

@Override
protected AbstractObjectMainPanel<OrgType> createMainPanel(String id) {
return new AbstractRoleMainPanel<OrgType>(id, getObjectModel(), getAssignmentsModel(), getProjectionModel(), getInducementsModel(), this);
return new AbstractRoleMainPanel<OrgType>(id, getObjectModel(), getAssignmentsModel(), getProjectionModel(), getInducementsModel(), this) {

@Override
public AbstractRoleMemberPanel<OrgType> createMemberPanel(String panelId) {
return new OrgMemberPanel(panelId, Model.of(getObject().asObjectable()), PageOrgUnit.this);
}
};
}

}
Expand Up @@ -469,5 +469,10 @@ protected String getTaskName(String operation, QueryScope scope, boolean manager
protected String getTaskName(String operation, QueryScope scope) {
return getTaskName(operation, scope, false);
}

// public <F extends ObjectType> MainObjectListPanel<F> getMemberTable() {
// return (MainObjectListPanel<F>) get(
// createComponentPath(ID_FORM, ID_CONTAINER_MEMBER, ID_MEMBER_TABLE));
// }

}
Expand Up @@ -440,8 +440,8 @@ protected void refreshTable(AjaxRequestTarget target) {
ObjectTypes type = typeChoice.getModelObject();
target.add(get(createComponentPath(ID_FORM, ID_SEARCH_SCOPE)));
getMemberTable().clearCache();
getMemberTable().refreshTable((Class<ObjectType>) WebComponentUtil
.qnameToClass(getPageBase().getPrismContext(), type.getTypeQName()), target);
getMemberTable().refreshTable(WebComponentUtil
.qnameToClass(getPageBase().getPrismContext(), type.getTypeQName(), ObjectType.class), target);
}

private MainObjectListPanel<ObjectType> getMemberTable() {
Expand Down
@@ -0,0 +1,25 @@
package com.evolveum.midpoint.web.page.admin.users.component;

import org.apache.wicket.model.IModel;

import com.evolveum.midpoint.gui.api.page.PageBase;
import com.evolveum.midpoint.web.page.admin.roles.RoleMemberPanel;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ServiceType;

public class ServiceMemberPanel extends RoleMemberPanel<ServiceType>{


private static final long serialVersionUID = 1L;


public ServiceMemberPanel(String id, IModel<ServiceType> model, PageBase pageBase) {
super(id, model, pageBase);
}

@Override
protected boolean isRole() {
return false;
}


}

0 comments on commit d59c8b8

Please sign in to comment.