Skip to content

Commit

Permalink
Add Case Work Item search form and authorizations
Browse files Browse the repository at this point in the history
  • Loading branch information
bpowers1215 committed Oct 24, 2017
1 parent 3f54f5f commit 03cb8cb
Show file tree
Hide file tree
Showing 14 changed files with 181 additions and 106 deletions.
Expand Up @@ -1206,6 +1206,7 @@ protected List<SideBarMenuItem> createMenuItems() {
if (WebComponentUtil.isAuthorized(AuthorizationConstants.AUTZ_UI_MY_WORK_ITEMS_URL,
AuthorizationConstants.AUTZ_UI_APPROVALS_ALL_URL,
AuthorizationConstants.AUTZ_UI_CASES_ALLOCATED_TO_ME_URL, AuthorizationConstants.AUTZ_UI_CASES_ALL_URL,
AuthorizationConstants.AUTZ_UI_CASE_WORK_ITEMS_ALLOCATED_TO_ME_URL, AuthorizationConstants.AUTZ_UI_CASE_WORK_ITEMS_ALL_URL,
AuthorizationConstants.AUTZ_GUI_ALL_URL, AuthorizationConstants.AUTZ_GUI_ALL_DEPRECATED_URL)) {
if (getWorkflowManager().isEnabled()) {
items.add(createWorkItemsItems());
Expand Down
Expand Up @@ -25,7 +25,10 @@
*/
public class PageAdminCaseWorkItems extends PageAdmin {

public static final String AUTH_CASE_WORK_ITEMS_ALL = AuthorizationConstants.AUTZ_UI_ALL_CASE_WORK_ITEMS_URL;
public static final String AUTH_CASE_WORK_ITEMS_ALL_LABEL = "PageAdminCaseWorkItems.auth.casesAll.label";
public static final String AUTH_CASE_WORK_ITEMS_ALL_DESCRIPTION = "PageAdminCaseWorkItems.auth.casesAll.description";
public static final String AUTH_CASE_WORK_ITEMS_ALL = AuthorizationConstants.AUTZ_UI_CASE_WORK_ITEMS_ALL_URL;
public static final String AUTH_CASE_WORK_ITEMS_ALL_LABEL = "PageAdminCaseWorkItems.auth.caseWorkItemsAll.label";
public static final String AUTH_CASE_WORK_ITEMS_ALL_DESCRIPTION = "PageAdminCaseWorkItems.auth.caseWorkItemsAll.description";
public static final String AUTH_CASE_WORK_ITEMS_ALLOCATED_TO_ME = AuthorizationConstants.AUTZ_UI_CASE_WORK_ITEMS_ALLOCATED_TO_ME_URL;
public static final String AUTH_CASE_WORK_ITEMS_ALLOCATED_TO_ME_LABEL = "PageAdminCaseWorkItems.auth.caseWorkItemsAllocatedToMe.label";
public static final String AUTH_CASE_WORK_ITEMS_ALLOCATED_TO_ME_DESCRIPTION = "PageAdminCaseWorkItems.auth.caseWorkItemsAllocatedToMe.description";
}
Expand Up @@ -18,17 +18,23 @@
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:wicket="http://wicket.apache.org">
<body>
<wicket:extend>
<form wicket:id="mainForm" class="form-inline">
<div wicket:id="caseWorkItemsTable"/>
</form>

<div wicket:id="caseWorkItemsTable"/>

<wicket:fragment wicket:id="tableHeader">
<form class="form-inline pull-right search-form" wicket:id="searchForm">
<form class="form-inline search-form" wicket:id="searchFilterForm">
<div class="form-group">
<label><wicket:message key="PageCaseWorkItems.search.resource" /></label>
<span wicket:id="filterResource" />
</div>
<div class="form-group">
<label><wicket:message key="PageCaseWorkItems.search.includeClosedCases" /></label>
<span wicket:id="filterIncludeClosedCases" />
</div>
</form>
</wicket:fragment>

<div class="main-button-bar" style="padding-top: 15px">
<a class="btn btn-default" wicket:id="backButton" />
<a class="btn btn-success" wicket:id="createCaseButton"/>
</div>
</wicket:extend>
Expand Down

Large diffs are not rendered by default.

Expand Up @@ -27,9 +27,9 @@
@AuthorizationAction(actionUri = PageAdminCaseWorkItems.AUTH_CASE_WORK_ITEMS_ALL,
label = PageAdminCaseWorkItems.AUTH_CASE_WORK_ITEMS_ALL_LABEL,
description = PageAdminCaseWorkItems.AUTH_CASE_WORK_ITEMS_ALL_DESCRIPTION),
@AuthorizationAction(actionUri = AuthorizationConstants.AUTZ_UI_ALL_CASE_WORK_ITEMS_URL,
label = "PageCaseWorkItemsAll.auth.allCaseWorkItems.label",
description = "PageCaseWorkItemsAll.auth.allCaseWorkItems.description")})
@AuthorizationAction(actionUri = AuthorizationConstants.AUTZ_UI_CASE_WORK_ITEMS_ALL_URL,
label = "PageCaseWorkItems.auth.caseWorkItemsAll.label",
description = "PageCaseWorkItems.auth.caseWorkItemsAll.description")})
public class PageCaseWorkItemsAll extends PageCaseWorkItems {

public PageCaseWorkItemsAll() {
Expand Down
Expand Up @@ -24,12 +24,12 @@
* @author bpowers
*/
@PageDescriptor(url = "/admin/caseWorkItemsAllocatedToMe", action = {
@AuthorizationAction(actionUri = PageAdminCaseWorkItems.AUTH_CASE_WORK_ITEMS_ALL,
label = PageAdminCaseWorkItems.AUTH_CASE_WORK_ITEMS_ALL_LABEL,
description = PageAdminCaseWorkItems.AUTH_CASE_WORK_ITEMS_ALL_DESCRIPTION),
@AuthorizationAction(actionUri = AuthorizationConstants.AUTZ_UI_MY_WORK_ITEMS_URL,
label = "PageCaseWorkItemsAllocatedToMe.auth.myCaseWorkItems.label",
description = "PageCaseWorkItemsAllocatedToMe.auth.myCaseWorkItems.description")})
@AuthorizationAction(actionUri = PageAdminCaseWorkItems.AUTH_CASE_WORK_ITEMS_ALLOCATED_TO_ME,
label = PageAdminCaseWorkItems.AUTH_CASE_WORK_ITEMS_ALLOCATED_TO_ME_LABEL,
description = PageAdminCaseWorkItems.AUTH_CASE_WORK_ITEMS_ALLOCATED_TO_ME_DESCRIPTION),
@AuthorizationAction(actionUri = AuthorizationConstants.AUTZ_UI_CASE_WORK_ITEMS_ALLOCATED_TO_ME_URL,
label = "PageCaseWorkItems.auth.caseWorkItemsAllocatedToMe.label",
description = "PageCaseWorkItems.auth.caseWorkItemsAllocatedToMe.description")})
public class PageCaseWorkItemsAllocatedToMe extends PageCaseWorkItems {

public PageCaseWorkItemsAllocatedToMe() {
Expand Down
Expand Up @@ -127,7 +127,7 @@ public String getObject() {
};
columns.add(column);

column = new AbstractColumn<SelectableBean<CaseType>, String>(createStringResource("pageCases.table.actors"), "workItem.assigneeRef"){
column = new AbstractColumn<SelectableBean<CaseType>, String>(createStringResource("pageCases.table.actors")){
@Override
public void populateItem(Item<ICellPopulator<SelectableBean<CaseType>>> item, String componentId, IModel<SelectableBean<CaseType>> rowModel) {
item.add(new Label(componentId, new AbstractReadOnlyModel<String>() {
Expand Down Expand Up @@ -158,7 +158,7 @@ public String getObject() {

column = new AbstractColumn<SelectableBean<CaseType>, String>(
createStringResource("pageCases.table.openTimestamp"),
"createTimestamp") {
MetadataType.F_CREATE_TIMESTAMP.getLocalPart()) {

private static final long serialVersionUID = 1L;

Expand Down Expand Up @@ -186,7 +186,7 @@ public String getObject() {
};
columns.add(column);

column = new PropertyColumn<SelectableBean<CaseType>, String>(createStringResource("pageCases.table.closeTimestamp"), "value.closeTimestamp") {
column = new PropertyColumn<SelectableBean<CaseType>, String>(createStringResource("pageCases.table.closeTimestamp"), CaseType.F_CLOSE_TIMESTAMP.getLocalPart(), "value.closeTimestamp") {
@Override
public void populateItem(Item<ICellPopulator<SelectableBean<CaseType>>> cellItem,
String componentId, final IModel<SelectableBean<CaseType>> rowModel) {
Expand All @@ -210,7 +210,7 @@ public String getObject() {
};
columns.add(column);

column = new PropertyColumn(createStringResource("pageCases.table.state"), "value.state");
column = new PropertyColumn<SelectableBean<CaseType>, String>(createStringResource("pageCases.table.state"), CaseType.F_STATE.getLocalPart(), "value.state");
columns.add(column);

return columns;
Expand Down
Expand Up @@ -16,14 +16,12 @@

package com.evolveum.midpoint.web.page.admin.cases.dto;

import com.evolveum.midpoint.util.DebugUtil;
import com.evolveum.midpoint.util.logging.Trace;
import com.evolveum.midpoint.util.logging.TraceManager;
import com.evolveum.midpoint.web.component.util.Selectable;
import com.evolveum.midpoint.xml.ns._public.common.common_3.CaseType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.CaseWorkItemType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ObjectReferenceType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ShadowType;
import com.evolveum.prism.xml.ns._public.types_3.ObjectDeltaType;
import org.jetbrains.annotations.NotNull;

Expand Down
Expand Up @@ -16,11 +16,8 @@

package com.evolveum.midpoint.web.page.admin.cases.dto;

import com.evolveum.midpoint.certification.api.OutcomeUtils;
import com.evolveum.midpoint.gui.api.page.PageBase;
import com.evolveum.midpoint.gui.api.util.WebComponentUtil;
import com.evolveum.midpoint.schema.util.CaseWorkItemUtil;
import com.evolveum.midpoint.schema.util.WfContextUtil;
import com.evolveum.midpoint.schema.util.WorkItemTypeUtil;
import com.evolveum.midpoint.web.component.util.Selectable;
import com.evolveum.midpoint.xml.ns._public.common.common_3.AbstractWorkItemOutputType;
Expand All @@ -31,10 +28,6 @@

import javax.xml.datatype.XMLGregorianCalendar;
import javax.xml.namespace.QName;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;

/**
* DTO representing a particular CaseWorkItem.
Expand Down
Expand Up @@ -53,8 +53,6 @@ public class CaseWorkItemDtoProvider extends BaseSortableDataProvider<CaseWorkIt
private static final String OPERATION_SEARCH_OBJECTS = DOT_CLASS + "searchObjects";
private static final String OPERATION_COUNT_OBJECTS = DOT_CLASS + "countObjects";

private boolean notDecidedOnly;

public CaseWorkItemDtoProvider(Component component) {
super(component, false); // TODO make this cache-able
}
Expand All @@ -81,8 +79,8 @@ public Iterator<CaseWorkItemDto> internalIterator(long first, long count) {
getAvailableData().add(new CaseWorkItemDto(workItem));
}
} catch (Exception ex) {
result.recordFatalError("Couldn't list decisions.", ex);
LoggingUtils.logUnexpectedException(LOGGER, "Couldn't list decisions", ex);
result.recordFatalError("Couldn't list case work items.", ex);
LoggingUtils.logUnexpectedException(LOGGER, "Couldn't list case work items", ex);
} finally {
result.computeStatusIfUnknown();
}
Expand Down Expand Up @@ -127,15 +125,6 @@ protected int internalSize() {
return count;
}

@SuppressWarnings("unused")
public boolean isNotDecidedOnly() {
return notDecidedOnly;
}

public void setNotDecidedOnly(boolean notDecidedOnly) {
this.notDecidedOnly = notDecidedOnly;
}

@NotNull
@Override
protected List<ObjectOrdering> createObjectOrderings(SortParam<String> sortParam) {
Expand Down
Expand Up @@ -17,9 +17,6 @@
import java.util.List;

import static com.evolveum.midpoint.prism.PrismConstants.T_PARENT;
import static com.evolveum.midpoint.prism.PrismConstants.T_PARENT_LOCAL_PART;
import static com.evolveum.midpoint.prism.PrismConstants.A_PROPERTY_CONTAINER;
import static com.evolveum.midpoint.prism.PrismConstants.NS_TYPES;

/**
* TODO better class name
Expand Down
Expand Up @@ -101,7 +101,7 @@ protected PrismContext getPrismContext() {
return getPageBase().getPrismContext();
}

private <V> DropDownChoice<V> createDropDown(String id, IModel<V> defaultModel, final List<V> values,
private <V> DropDownChoice<V> createDropDown(String id, IModel<V> defaultModel, final List<V> values,
IChoiceRenderer<V> renderer) {
DropDownChoice<V> listSelect = new DropDownChoice<V>(id, defaultModel,
new AbstractReadOnlyModel<List<V>>() {
Expand Down
Expand Up @@ -1086,9 +1086,9 @@ PageAdmin.menu.top.workItems.listProcessInstancesAll=All requests
PageAdmin.menu.top.workItems.listProcessInstancesRequestedBy=My requests
PageAdmin.menu.top.workItems.listProcessInstancesRequestedFor=Requests about me
PageAdmin.menu.top.workItems=Work items
PageAdmin.menu.top.caseWorkItems.list=My cases work items
PageAdmin.menu.top.caseWorkItems.listAll=All cases
PageAdmin.menu.top.caseWorkItems.view=View case
PageAdmin.menu.top.caseWorkItems.list=My case work items
PageAdmin.menu.top.caseWorkItems.listAll=All case work items
PageAdmin.menu.top.caseWorkItems.view=View case work item
PageAdmin.menu.top.case.new=New case
PageAdmin.menu.top.cases.list=My cases
PageAdmin.menu.top.cases.listAll=All cases
Expand Down Expand Up @@ -1499,6 +1499,8 @@ PageCaseWorkItems.table.openTimestamp=Created
PageCaseWorkItems.table.closeTimestamp=Closed
PageCaseWorkItems.table.deadline=Deadline
PageCaseWorkItems.table.state=State
PageCaseWorkItems.search.resource=Resource
PageCaseWorkItems.search.includeClosedCases=Include closed cases
PageDashboard.accounts=My accounts
PageDashboard.activeTasks=Active Tasks
PageDashboard.activeUsers=Active Users
Expand Down
Expand Up @@ -269,8 +269,11 @@ public class AuthorizationConstants {
public static final QName AUTZ_UI_CASE_DETAILS_QNAME = new QName(NS_AUTHORIZATION_UI, "caseDetails");
public static final String AUTZ_UI_CASE_DETAILS_URL = NS_AUTHORIZATION_UI + "#caseDetails";

public static final String AUTZ_UI_MY_CASE_WORK_ITEMS_URL = NS_AUTHORIZATION_UI + "#myCaseWorkItems";
public static final String AUTZ_UI_ALL_CASE_WORK_ITEMS_URL = NS_AUTHORIZATION_UI + "#allCaseWorkItems";
public static final QName AUTZ_UI_CASE_WORK_ITEMS_ALLOCATED_TO_ME_QNAME = new QName(NS_AUTHORIZATION_UI, "caseWorkItemsAllocatedToMe");
public static final String AUTZ_UI_CASE_WORK_ITEMS_ALLOCATED_TO_ME_URL = NS_AUTHORIZATION_UI + "#caseWorkItemsAllocatedToMe";

public static final QName AUTZ_UI_CASE_WORK_ITEMS_ALL_QNAME = new QName(NS_AUTHORIZATION_UI, "caseWorkItemsAll");
public static final String AUTZ_UI_CASE_WORK_ITEMS_ALL_URL = NS_AUTHORIZATION_UI + "#caseWorkItemsAll";
public static final String AUTZ_UI_CASE_WORK_ITEM_URL = NS_AUTHORIZATION_UI + "#caseWorkItem";


Expand Down

0 comments on commit 03cb8cb

Please sign in to comment.