Skip to content

Commit

Permalink
Merge branch 'access-certification' of github.com:Evolveum/midpoint i…
Browse files Browse the repository at this point in the history
…nto access-certification
  • Loading branch information
mederly committed Dec 14, 2015
2 parents 508be0a + 79fd71d commit 41cbf08
Show file tree
Hide file tree
Showing 6 changed files with 225 additions and 31 deletions.
Expand Up @@ -22,11 +22,19 @@
<table class="table table-striped">
<tr>
<td><wicket:message key="PageCertDefinition.scopeName"/></td>
<td>TODO</td> <!-- TODO make editable -->
<td>
<div class="col-md-6">
<input type="text" class="form-control input-sm" wicket:id="name"/>
</div>
</td>
</tr>
<tr>
<td><wicket:message key="PageCertDefinition.scopeDescription"/></td>
<td>TODO</td> <!-- TODO make editable -->
<td>
<div class="col-md-6">
<input type="text" class="form-control input-sm" wicket:id="description"/>
</div>
</td>
</tr>
<tr>
<td><wicket:message key="PageCertDefinition.scopeObjectType"/></td>
Expand Down
Expand Up @@ -18,23 +18,49 @@

import com.evolveum.midpoint.web.component.AceEditor;
import com.evolveum.midpoint.web.component.util.SimplePanel;
import com.evolveum.midpoint.web.component.util.VisibleEnableBehaviour;
import com.evolveum.midpoint.web.page.admin.certification.dto.CertDefinitionDto;
import com.evolveum.midpoint.web.page.admin.certification.dto.DefinitionScopeDto;
import com.evolveum.midpoint.xml.ns._public.common.common_3.AccessCertificationScopeType;
import org.apache.wicket.markup.html.form.TextArea;
import org.apache.wicket.markup.html.form.TextField;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.PropertyModel;

/**
* @author mederly
*/

public class DefinitionScopePanel extends SimplePanel<CertDefinitionDto> {
public class DefinitionScopePanel extends SimplePanel<DefinitionScopeDto> {

public DefinitionScopePanel(String id, IModel<CertDefinitionDto> model) {
IModel<DefinitionScopeDto> model;
private static final String ID_NAME = "name";
private static final String ID_DESCRIPTION = "description";

public DefinitionScopePanel(String id, IModel<DefinitionScopeDto> model) {
super(id, model);
this.model = model;
}

@Override
protected void initLayout() {
// AceEditor editor = new AceEditor(ID_ACE_EDITOR, new PropertyModel<String>(getModel(), CertDefinitionDto.F_XML));
// add(editor);
final TextField nameField = new TextField(ID_NAME, new PropertyModel<>(getModel(), DefinitionScopeDto.F_NAME));
nameField.add(new VisibleEnableBehaviour() {
@Override
public boolean isEnabled() {
return true;
}
});
add(nameField);

final TextArea descriptionField = new TextArea(ID_DESCRIPTION, new PropertyModel<>(getModel(), DefinitionScopeDto.F_DESCRIPTION));
descriptionField.add(new VisibleEnableBehaviour() {
@Override
public boolean isEnabled() {
return true;
}
});
add(descriptionField);

}
}
Expand Up @@ -26,49 +26,49 @@ <h3 class="box-title"><wicket:message key="PageCertDefinition.basicInformation"/
<div class="box-body no-padding">
<table class="table table-striped">
<tr>
<td><wicket:message key="PageCertDefinition.name"/></td>
<td><wicket:message key="PageCertDefinition.name" class="col-md-3"/></td>
<td>
<div class="col-md-6">
<input type="text" class="form-control input-sm" wicket:id="name"/>
</div>
</td>
</tr>
<tr>
<td><wicket:message key="PageCertDefinition.description"/></td>
<td><wicket:message key="PageCertDefinition.description" class="col-md-3"/></td>
<td>
<div class="col-md-6">
<input type="text" class="form-control input-sm" wicket:id="description"/>
</div>
</td>
</tr>
<tr>
<td><wicket:message key="PageCertDefinition.owner"/></td>
<td><wicket:message key="PageCertDefinition.owner" class="col-md-3"/></td>
<td>
<div class="col-md-6">
<div wicket:id="owner"/>
</div>
</td>
</tr>
<tr>
<td><wicket:message key="PageCertDefinition.numberOfStages"/></td>
<td><div wicket:id="numberOfStages" /></td>
<td><wicket:message key="PageCertDefinition.numberOfStages" class="col-md-3"/></td>
<td><div wicket:id="numberOfStages" class="col-md-6"/></td>
</tr>
<!-- TODO visually separate definition and current status -->
<tr> <!-- TODO do this in some "compressed" form to save space -->
<td><wicket:message key="PageCertDefinition.campaignsInReviewStage"/></td>
<td><div wicket:id="campaignsInReviewStage" /></td>
<td><wicket:message key="PageCertDefinition.campaignsInReviewStage" class="col-md-3"/></td>
<td><div wicket:id="campaignsInReviewStage" class="col-md-6"/></td>
</tr>
<tr>
<td><wicket:message key="PageCertDefinition.campaignsTotal"/></td>
<td><div wicket:id="campaignsTotal" /></td>
<td><wicket:message key="PageCertDefinition.campaignsTotal" class="col-md-3"/></td>
<td><div wicket:id="campaignsTotal" class="col-md-6"/></td>
</tr>
<tr>
<td><wicket:message key="PageCertDefinition.campaignLastStarted"/></td>
<td><div wicket:id="campaignLastStarted" /></td>
<td><wicket:message key="PageCertDefinition.campaignLastStarted" class="col-md-3"/></td>
<td><div wicket:id="campaignLastStarted" class="col-md-6"/></td>
</tr>
<tr>
<td><wicket:message key="PageCertDefinition.campaignLastClosed"/></td>
<td><div wicket:id="campaignLastClosed" /></td>
<td><wicket:message key="PageCertDefinition.campaignLastClosed" class="col-md-3"/></td>
<td><div wicket:id="campaignLastClosed" class="col-md-6"/></td>
</tr>
</table>
</div>
Expand Down
Expand Up @@ -36,20 +36,22 @@
import com.evolveum.midpoint.web.component.AjaxSubmitButton;
import com.evolveum.midpoint.web.component.TabbedPanel;
import com.evolveum.midpoint.web.component.form.ValueChoosePanel;
import com.evolveum.midpoint.web.component.form.multivalue.GenericMultiValueLabelEditPanel;
import com.evolveum.midpoint.web.component.util.LoadableModel;
import com.evolveum.midpoint.web.component.util.VisibleEnableBehaviour;
import com.evolveum.midpoint.web.page.PageTemplate;
import com.evolveum.midpoint.web.page.admin.certification.dto.CertDefinitionDto;
import com.evolveum.midpoint.web.page.admin.certification.dto.DefinitionScopeDto;
import com.evolveum.midpoint.web.page.admin.roles.component.MultiplicityPolicyDialog;
import com.evolveum.midpoint.web.util.OnePageParameterEncoder;
import com.evolveum.midpoint.web.util.WebMiscUtil;
import com.evolveum.midpoint.web.util.WebModelUtils;
import com.evolveum.midpoint.xml.ns._public.common.common_3.AccessCertificationDefinitionType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ObjectReferenceType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ObjectType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.UserType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.*;
import org.apache.commons.lang.StringUtils;
import org.apache.wicket.Component;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.ajax.markup.html.form.AjaxSubmitLink;
import org.apache.wicket.extensions.ajax.markup.html.modal.ModalWindow;
import org.apache.wicket.extensions.markup.html.tabs.AbstractTab;
import org.apache.wicket.extensions.markup.html.tabs.ITab;
import org.apache.wicket.markup.html.WebMarkupContainer;
Expand Down Expand Up @@ -169,7 +171,7 @@ private void initTabs(Form mainForm) {
tabs.add(new AbstractTab(createStringResource("PageCertDefinition.scopeDefinition")) {
@Override
public WebMarkupContainer getPanel(String panelId) {
return new DefinitionScopePanel(panelId, definitionModel);
return new DefinitionScopePanel(panelId, new PropertyModel<DefinitionScopeDto>(definitionModel, CertDefinitionDto.F_SCOPE_DEFINITION));
}
});
tabs.add(new AbstractTab(createStringResource("PageCertDefinition.stagesDefinition")) {
Expand Down Expand Up @@ -235,7 +237,7 @@ public boolean isEnabled() {
});
mainForm.add(nameField);

final TextField descriptionField = new TextField(ID_DESCRIPTION, new PropertyModel<>(definitionModel, CertDefinitionDto.F_DESCRIPTION));
final TextArea descriptionField = new TextArea(ID_DESCRIPTION, new PropertyModel<>(definitionModel, CertDefinitionDto.F_DESCRIPTION));
descriptionField.add(new VisibleEnableBehaviour() {
@Override
public boolean isEnabled() {
Expand All @@ -251,13 +253,22 @@ public boolean isEnabled() {


final ValueChoosePanel ownerNameField = new ValueChoosePanel(ID_OWNER, ownerModel,
values,false, UserType.class);
null,false, UserType.class){
@Override
protected void choosePerformed(AjaxRequestTarget target, ObjectType object) {
super.choosePerformed(target, object);

Component comp = this.get("textWrapper").get("text");
target.add(comp);
}
};
ownerNameField.add(new VisibleEnableBehaviour() {
@Override
public boolean isEnabled() {
return true;
}
});
ownerNameField.setOutputMarkupId(true);
mainForm.add(ownerNameField);

mainForm.add(new Label(ID_NUMBER_OF_STAGES, new PropertyModel<>(definitionModel, CertDefinitionDto.F_NUMBER_OF_STAGES)));
Expand Down
Expand Up @@ -16,6 +16,7 @@

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

import com.evolveum.midpoint.prism.PrismContainerValue;
import com.evolveum.midpoint.prism.PrismContext;
import com.evolveum.midpoint.prism.PrismReferenceValue;
import com.evolveum.midpoint.prism.polystring.PolyString;
Expand All @@ -27,10 +28,7 @@
import com.evolveum.midpoint.util.exception.SystemException;
import com.evolveum.midpoint.web.page.PageBase;
import com.evolveum.midpoint.web.util.WebMiscUtil;
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.ObjectReferenceType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ObjectType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.*;
import com.evolveum.prism.xml.ns._public.types_3.PolyStringType;

import java.io.Serializable;
Expand All @@ -46,8 +44,10 @@ public class CertDefinitionDto implements Serializable {
public static final String F_NUMBER_OF_STAGES = "numberOfStages";
public static final String F_XML = "xml";
public static final String F_OWNER= "owner";
public static final String F_SCOPE_DEFINITION = "scopeDefinition";

private AccessCertificationDefinitionType definition; // TODO consider replacing this by constituent primitive data items
private DefinitionScopeDto definitionScopeDto = null;
private String ownerName;
private String xml;
private PrismReferenceValue owner;
Expand Down Expand Up @@ -107,12 +107,48 @@ public void setDescription(String description){
}

public PrismReferenceValue getOwner() {
return definition.getOwnerRef().asReferenceValue();
return definition.getOwnerRef() != null ? definition.getOwnerRef().asReferenceValue() : null;
}

public void setOwner(PrismReferenceValue owner) {
ObjectReferenceType ownerRef = new ObjectReferenceType();
ownerRef.setupReferenceValue(owner);
definition.setOwnerRef(ownerRef);
}

public DefinitionScopeDto getScopeDefinition() {
if (definitionScopeDto == null){
AccessCertificationAssignmentReviewScopeType scopeTypeObj = (AccessCertificationAssignmentReviewScopeType)definition.getScopeDefinition();
if (scopeTypeObj != null){
definitionScopeDto = new DefinitionScopeDto();
definitionScopeDto.setName(scopeTypeObj.getName());
definitionScopeDto.setDescription(scopeTypeObj.getDescription());
definitionScopeDto.setObjectType(scopeTypeObj.getObjectType());
definitionScopeDto.setSearchFilter(scopeTypeObj.getSearchFilter());
definitionScopeDto.setIncludeAssignments(scopeTypeObj.isIncludeAssignments() == null ? false : scopeTypeObj.isIncludeAssignments());
definitionScopeDto.setIncludeInducements(scopeTypeObj.isIncludeInducements() == null ? false : scopeTypeObj.isIncludeInducements());
definitionScopeDto.setIncludeResources(scopeTypeObj.isIncludeResources() == null ? false : scopeTypeObj.isIncludeResources());
definitionScopeDto.setIncludeOrgs(scopeTypeObj.isIncludeOrgs() == null ? false : scopeTypeObj.isIncludeOrgs());
definitionScopeDto.setEnabledItemsOnly(scopeTypeObj.isEnabledItemsOnly() == null ? false : scopeTypeObj.isEnabledItemsOnly());
}
}
return definitionScopeDto == null ? new DefinitionScopeDto() : definitionScopeDto;
}

public void setScopeDefinition(DefinitionScopeDto scopeType) {
AccessCertificationAssignmentReviewScopeType scopeTypeObj = null;
if (scopeType != null){
scopeTypeObj = new AccessCertificationAssignmentReviewScopeType();
scopeTypeObj.setName(definitionScopeDto.getName());
scopeTypeObj.setDescription(definitionScopeDto.getDescription());
scopeTypeObj.setObjectType(definitionScopeDto.getObjectType());
scopeTypeObj.setSearchFilter(definitionScopeDto.getSearchFilter());
scopeTypeObj.setIncludeAssignments(definitionScopeDto.isIncludeAssignments());
scopeTypeObj.setIncludeInducements(definitionScopeDto.isIncludeInducements());
scopeTypeObj.setIncludeResources(definitionScopeDto.isIncludeResources());
scopeTypeObj.setIncludeOrgs(definitionScopeDto.isIncludeOrgs());
scopeTypeObj.setEnabledItemsOnly(definitionScopeDto.isEnabledItemsOnly());
}
definition.setScopeDefinition(scopeTypeObj);
}
}

0 comments on commit 41cbf08

Please sign in to comment.