Skip to content

Commit

Permalink
"Show campaigns" now shows campaings having given definition only.
Browse files Browse the repository at this point in the history
Removed ugly "parameters" handling code.
  • Loading branch information
mederly committed Jun 1, 2015
1 parent 275d3ab commit 1551489
Show file tree
Hide file tree
Showing 8 changed files with 76 additions and 46 deletions.
Expand Up @@ -17,13 +17,22 @@
package com.evolveum.midpoint.web.page.admin.certification;

import com.evolveum.midpoint.certification.api.CertificationManager;
import com.evolveum.midpoint.prism.PrismObject;
import com.evolveum.midpoint.prism.path.ItemPath;
import com.evolveum.midpoint.prism.query.EqualFilter;
import com.evolveum.midpoint.prism.query.ObjectFilter;
import com.evolveum.midpoint.prism.query.ObjectQuery;
import com.evolveum.midpoint.prism.query.RefFilter;
import com.evolveum.midpoint.prism.xml.XmlTypeConverter;
import com.evolveum.midpoint.schema.GetOperationOptions;
import com.evolveum.midpoint.schema.SelectorOptions;
import com.evolveum.midpoint.schema.constants.ObjectTypes;
import com.evolveum.midpoint.schema.result.OperationResult;
import com.evolveum.midpoint.schema.util.CertCampaignTypeUtil;
import com.evolveum.midpoint.schema.util.ObjectTypeUtil;
import com.evolveum.midpoint.task.api.Task;
import com.evolveum.midpoint.util.exception.SchemaException;
import com.evolveum.midpoint.util.exception.SystemException;
import com.evolveum.midpoint.util.logging.Trace;
import com.evolveum.midpoint.util.logging.TraceManager;
import com.evolveum.midpoint.web.application.AuthorizationAction;
Expand All @@ -36,9 +45,12 @@
import com.evolveum.midpoint.web.component.data.column.LinkColumn;
import com.evolveum.midpoint.web.component.util.SelectableBean;
import com.evolveum.midpoint.web.util.OnePageParameterEncoder;
import com.evolveum.midpoint.web.util.WebModelUtils;
import com.evolveum.midpoint.xml.ns._public.common.common_3.AccessCertificationCampaignStateType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.AccessCertificationCampaignType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.AccessCertificationDefinitionType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.AccessCertificationStageType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ObjectReferenceType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ReportType;
import org.apache.commons.lang.time.DurationFormatUtils;
import org.apache.wicket.ajax.AjaxRequestTarget;
Expand All @@ -54,6 +66,7 @@
import org.apache.wicket.model.Model;
import org.apache.wicket.model.StringResourceModel;
import org.apache.wicket.request.mapper.parameter.PageParameters;
import org.apache.wicket.util.string.StringValue;

import javax.xml.datatype.XMLGregorianCalendar;
import java.util.ArrayList;
Expand All @@ -63,7 +76,7 @@
/**
* @author mederly
*/
@PageDescriptor(url = "/admin/certificationCampaigns", action = {
@PageDescriptor(url = "/admin/certificationCampaigns", encoder = OnePageParameterEncoder.class, action = {
@AuthorizationAction(actionUri = PageAdminCertification.AUTH_CERTIFICATION_ALL,
label = PageAdminCertification.AUTH_CERTIFICATION_ALL_LABEL,
description = PageAdminCertification.AUTH_CERTIFICATION_ALL_DESCRIPTION)
Expand All @@ -86,10 +99,31 @@ public class PageCertCampaigns extends PageAdminCertification {
public static final String OP_OPEN_NEXT_STAGE = "PageCertCampaigns.button.openNextStage";
public static final String OP_START_REMEDIATION = "PageCertCampaigns.button.startRemediation";

public PageCertCampaigns() {
public PageCertCampaigns(PageParameters parameters) {
getPageParameters().overwriteWith(parameters);
initLayout();
}

@Override
protected IModel<String> createPageSubTitleModel(){
return new AbstractReadOnlyModel<String>() {
@Override
public String getObject() {
String definitionOid = getDefinitionOid();
if (definitionOid == null) {
return null;
}
PrismObject<AccessCertificationDefinitionType> definitionPrismObject =
WebModelUtils.loadObject(AccessCertificationDefinitionType.class, definitionOid, new OperationResult("dummy"), PageCertCampaigns.this);
if (definitionPrismObject == null) {
return null;
}
return definitionPrismObject.asObjectable().getName().getOrig();
}
};
}


private void initLayout() {
Form mainForm = new Form(ID_MAIN_FORM);
add(mainForm);
Expand Down Expand Up @@ -379,6 +413,23 @@ private TablePanel getCampaignsTable() {
private ObjectQuery createQuery() {
// TODO filtering based on e.g. campaign state/stage (not started, active, finished)
ObjectQuery query = new ObjectQuery();
String definitionOid = getDefinitionOid();
if (definitionOid != null) {
ObjectReferenceType ref = ObjectTypeUtil.createObjectRef(definitionOid, ObjectTypes.ACCESS_CERTIFICATION_DEFINITION);
ObjectFilter filter = null;
try {
filter = RefFilter.createReferenceEqual(new ItemPath(AccessCertificationCampaignType.F_DEFINITION_REF),
AccessCertificationCampaignType.class, getPrismContext(), ref.asReferenceValue());
} catch (SchemaException e) {
throw new SystemException("Unexpected schema exception: " + e.getMessage(), e);
}
query = ObjectQuery.createObjectQuery(filter);
}
return query;
}

private String getDefinitionOid() {
StringValue definitionOid = getPageParameters().get(OnePageParameterEncoder.PARAMETER);
return definitionOid != null ? definitionOid.toString() : null;
}
}
Expand Up @@ -40,6 +40,8 @@ PageCertDecisions.menu.reduceSelected=Reduce selected
PageCertDecisions.menu.notDecidedSelected=Mark selected as Not decided
PageCertDecisions.menu.delegateSelected=Delegate selected
PageCertDecisions.menu.noResponseSelected=Mark selected as No response
#PageCertDecisions.menu.showCommentField=Show comment field
#PageCertDecisions.menu.hideCommentField=Hide comment field

PageCertDecisions.message.noItemSelected=No item selected

Expand Down
Expand Up @@ -108,16 +108,14 @@ public class PageResource extends PageAdminResources {
private static final String ID_BUTTON_IMPORT_ACCOUNTS = "importAccounts";
private static final String ID_BUTTON_DELETE_SYNC_TOKEN = "deleteSyncToken";

private PageParameters parameters;
private IModel<ResourceDto> model;

public PageResource() {
parameters = super.getPageParameters();
initialize();
}

public PageResource(PageParameters parameters, PageTemplate previousPage) {
this.parameters = parameters;
getPageParameters().overwriteWith(parameters);
setPreviousPage(previousPage);
initialize();
}
Expand All @@ -133,13 +131,6 @@ protected ResourceDto load() {
initLayout();
}

// this is quite a hack - we construct this page (also) by explicitly passing 'parameters' value
// So, in order for methods using getPageParameters() to work, we override it here.
@Override
public PageParameters getPageParameters() {
return parameters;
}

private ResourceDto loadResourceDto() {
if (!isResourceOidAvailable()) {
getSession().error(getString("pageResource.message.oidNotDefined"));
Expand Down
Expand Up @@ -140,7 +140,6 @@ public class PageRole extends PageAdminRoles implements ProgressReportingAwarePa
private IModel<List<MultiplicityPolicyConstraintType>> maxAssignmentsModel;
private ObjectWrapper roleWrapper;

private PageParameters parameters;
private ProgressReporter progressReporter;

private LoadableModel<ExecuteChangeOptionsDto> executeOptionsModel
Expand All @@ -152,20 +151,12 @@ protected ExecuteChangeOptionsDto load() {
}
};

// this is quite a hack - we construct this page (also) by explicitly passing 'parameters' value
// So, in order for methods using getPageParameters() to work, we override it here.
@Override
public PageParameters getPageParameters() {
return parameters;
}

public PageRole() {
parameters = super.getPageParameters();
initialize();
}

public PageRole(PageParameters parameters, PageTemplate previousPage) {
this.parameters = parameters;
getPageParameters().overwriteWith(parameters);
setPreviousPage(previousPage);
initialize();
}
Expand Down
Expand Up @@ -130,7 +130,6 @@ public class PageOrgUnit extends PageAdminUsers implements ProgressReportingAwar
private IModel<ContainerWrapper> extensionModel;
private ObjectWrapper orgWrapper;

private PageParameters parameters;
private ProgressReporter progressReporter;
private ObjectDelta delta;

Expand All @@ -143,26 +142,17 @@ protected ExecuteChangeOptionsDto load() {
}
};

// this is quite a hack - we construct this page (also) by explicitly passing 'parameters' value
// So, in order for methods using getPageParameters() to work, we override it here.
@Override
public PageParameters getPageParameters() {
return parameters;
}

public PageOrgUnit() {
parameters = super.getPageParameters();
initialize(null);
}

//todo improve [erik]
public PageOrgUnit(final PrismObject<OrgType> unitToEdit) {
parameters = super.getPageParameters();
initialize(unitToEdit);
}

public PageOrgUnit(PageParameters parameters, PageTemplate previousPage) {
this.parameters = parameters;
getPageParameters().overwriteWith(parameters);
setPreviousPage(previousPage);
initialize(null);
}
Expand Down
Expand Up @@ -195,33 +195,23 @@ protected ExecuteChangeOptionsDto load() {
}
};

private PageParameters parameters;
private ProgressReporter progressReporter;
private ObjectDelta delta; // used to determine whether to leave this page or stay on it (after operation finishing)

public PageUser() {
parameters = super.getPageParameters();
initialize(null);
}

public PageUser(PageParameters parameters, PageTemplate previousPage) {
this.parameters = parameters;
getPageParameters().overwriteWith(parameters);
setPreviousPage(previousPage);
initialize(null);
}

public PageUser(final PrismObject<UserType> userToEdit) {
parameters = super.getPageParameters();
initialize(userToEdit);
}

// this is quite a hack - we construct this page (also) by explicitly passing 'parameters' value
// So, in order for methods using getPageParameters() to work, we override it here.
@Override
public PageParameters getPageParameters() {
return parameters;
}

protected void initialize(final PrismObject<UserType> userToEdit) {
userModel = new LoadableModel<ObjectWrapper>(false) {

Expand Down
Expand Up @@ -52,6 +52,7 @@
import com.evolveum.midpoint.web.component.util.SimplePanel;
import com.evolveum.midpoint.web.component.util.VisibleEnableBehaviour;
import com.evolveum.midpoint.web.page.PageBase;
import com.evolveum.midpoint.web.page.PageTemplate;
import com.evolveum.midpoint.web.page.admin.configuration.component.HeaderMenuAction;
import com.evolveum.midpoint.web.page.admin.users.PageOrgUnit;
import com.evolveum.midpoint.web.page.admin.users.PageUser;
Expand Down Expand Up @@ -616,7 +617,7 @@ public void onClick(AjaxRequestTarget target, IModel<OrgTableDto> rowModel) {
OrgTableDto dto = rowModel.getObject();
PageParameters parameters = new PageParameters();
parameters.add(OnePageParameterEncoder.PARAMETER, dto.getOid());
setResponsePage(PageUser.class, parameters);
setResponsePage(new PageUser(parameters, (PageTemplate) target.getPage()));
}
});
columns.add(new PropertyColumn<OrgTableDto, String>(createStringResource("UserType.givenName"),
Expand Down
Expand Up @@ -17,6 +17,7 @@
package com.evolveum.midpoint.repo.sql.data.common;

import com.evolveum.midpoint.prism.PrismContext;
import com.evolveum.midpoint.repo.sql.data.common.embedded.REmbeddedReference;
import com.evolveum.midpoint.repo.sql.data.common.embedded.RPolyString;
import com.evolveum.midpoint.repo.sql.util.DtoTranslationException;
import com.evolveum.midpoint.repo.sql.util.IdGeneratorResult;
Expand All @@ -38,6 +39,7 @@
public class RAccessCertificationCampaign extends RObject<AccessCertificationCampaignType> {

private RPolyString name;
private REmbeddedReference definitionRef;

@Embedded
public RPolyString getName() {
Expand All @@ -48,6 +50,15 @@ public void setName(RPolyString name) {
this.name = name;
}

@Embedded
public REmbeddedReference getDefinitionRef() {
return definitionRef;
}

public void setDefinitionRef(REmbeddedReference definitionRef) {
this.definitionRef = definitionRef;
}

@Override
public boolean equals(Object o) {
if (this == o) return true;
Expand All @@ -58,13 +69,16 @@ public boolean equals(Object o) {

if (name != null ? !name.equals(rACR.name) : rACR.name != null)
return false;
if (definitionRef != null ? !definitionRef.equals(rACR.definitionRef) : rACR.definitionRef != null)
return false;
return true;
}

@Override
public int hashCode() {
int result = super.hashCode();
result = 31 * result + (name != null ? name.hashCode() : 0);
// TODO definitionRef ?
return result;
}

Expand All @@ -73,8 +87,8 @@ public static void copyFromJAXB(AccessCertificationCampaignType jaxb, RAccessCer
throws DtoTranslationException {

RObject.copyFromJAXB(jaxb, repo, prismContext, generatorResult);

repo.setName(RPolyString.copyFromJAXB(jaxb.getName()));
repo.setDefinitionRef(RUtil.jaxbRefToEmbeddedRepoRef(jaxb.getDefinitionRef(), prismContext));
}

@Override
Expand Down

0 comments on commit 1551489

Please sign in to comment.