Skip to content

Commit

Permalink
Object History tab is added to focus details page
Browse files Browse the repository at this point in the history
  • Loading branch information
KaterynaHonchar committed Oct 25, 2016
1 parent 1c39bbe commit 38b3a89
Show file tree
Hide file tree
Showing 8 changed files with 126 additions and 6 deletions.
Expand Up @@ -44,6 +44,9 @@ public class ComponentConstants {
public static final QName UI_FOCUS_TAB_REQUEST_ROLE = new QName(NS_COMPONENTS_PREFIX, "focusTabRequestRole");
public static final String UI_FOCUS_TAB_REQUEST_ROLE_URL = QNameUtil.qNameToUri(UI_FOCUS_TAB_REQUEST_ROLE);

public static final QName UI_FOCUS_TAB_OBJECT_HISTORY = new QName(NS_COMPONENTS_PREFIX, "focusTabObjectHistory");
public static final String UI_FOCUS_TAB_OBJECT_HISTORY_URL = QNameUtil.qNameToUri(UI_FOCUS_TAB_OBJECT_HISTORY);

public static final QName UI_FOCUS_TAB_INDUCEMENTS = new QName(NS_COMPONENTS_PREFIX, "focusTabInducements");
public static final String UI_FOCUS_TAB_INDUCEMENTS_URL = QNameUtil.qNameToUri(UI_FOCUS_TAB_INDUCEMENTS);

Expand Down
Expand Up @@ -33,6 +33,7 @@
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.reports.component.AuditLogViewerPanel;
import com.evolveum.midpoint.web.page.admin.server.dto.TaskDtoProvider;
import com.evolveum.midpoint.web.page.admin.server.dto.TaskDtoProviderOptions;
import com.evolveum.midpoint.web.page.admin.users.dto.FocusSubwrapperDto;
Expand Down Expand Up @@ -211,6 +212,10 @@ protected WebMarkupContainer createRequestAssignmentTabPanel(String panelId, Pag
return new RequestAssignmentTabPanel<F>(panelId, getMainForm(), getObjectModel(), assignmentsModel, parentPage);
}

protected WebMarkupContainer createObjectHistoryTabPanel(String panelId, PageAdminObjectDetails<F> parentPage) {
return new ObjectHistoryTabPanel<>(panelId, getMainForm(), getObjectModel(), parentPage);
}

protected IModel<PrismObject<F>> unwrapModel() {
return new AbstractReadOnlyModel<PrismObject<F>>() {

Expand Down Expand Up @@ -300,6 +305,17 @@ public WebMarkupContainer createPanel(String panelId) {
}
});
}
authorization = new FocusTabVisibleBehavior(unwrapModel(), ComponentConstants.UI_FOCUS_TAB_OBJECT_HISTORY_URL);
tabs.add(
new PanelTab(parentPage.createStringResource("pageAdminFocus.objectHistory"), authorization) {

private static final long serialVersionUID = 1L;

@Override
public WebMarkupContainer createPanel(String panelId) {
return createObjectHistoryTabPanel(panelId, parentPage);
}
});
}

}
@@ -0,0 +1,26 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
~ Copyright (c) 2010-2016 Evolveum
~
~ Licensed under the Apache License, Version 2.0 (the "License");
~ you may not use this file except in compliance with the License.
~ You may obtain a copy of the License at
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ Unless required by applicable law or agreed to in writing, software
~ distributed under the License is distributed on an "AS IS" BASIS,
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
~ See the License for the specific language governing permissions and
~ limitations under the License.
-->

<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:wicket="http://wicket.apache.org">
<body>
<wicket:panel>
<div wicket:id="mainPanel"/>
</wicket:panel>
</body>
</html>

@@ -0,0 +1,45 @@
/*
* Copyright (c) 2016 Evolveum
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.evolveum.midpoint.web.component.objectdetails;

import com.evolveum.midpoint.gui.api.model.LoadableModel;
import com.evolveum.midpoint.gui.api.page.PageBase;
import com.evolveum.midpoint.web.component.form.Form;
import com.evolveum.midpoint.web.component.prism.ObjectWrapper;
import com.evolveum.midpoint.web.page.admin.reports.component.AuditLogViewerPanel;
import com.evolveum.midpoint.xml.ns._public.common.common_3.FocusType;

/**
* Created by honchar.
*/
public class ObjectHistoryTabPanel<F extends FocusType> extends AbstractObjectTabPanel<F> {
private static final String ID_MAIN_PANEL = "mainPanel";

public ObjectHistoryTabPanel(String id, Form mainForm, LoadableModel<ObjectWrapper<F>> focusWrapperModel,
PageBase page) {
super(id, mainForm, focusWrapperModel, page);
initLayout(focusWrapperModel, page);
}

private void initLayout(LoadableModel<ObjectWrapper<F>> focusWrapperModel, PageBase page) {
AuditLogViewerPanel panel = new AuditLogViewerPanel(ID_MAIN_PANEL, page, focusWrapperModel.getObject().getOid());
panel.setOutputMarkupId(true);
add(panel);
}



}
Expand Up @@ -70,6 +70,7 @@
@AuthorizationAction(actionUri = AuthorizationConstants.AUTZ_UI_AUDIT_LOG_VIEWER_URL, label = "PageAuditLogViewer.auth.auditLogViewer.label", description = "PageAuditLogViewer.auth.auditLogViewer.description") })
public class PageAuditLogViewer extends PageBase {

private static final long serialVersionUID = 1L;
private static final String ID_PANEL = "auditLogViewerPanel";
public PageAuditLogViewer() {
initLayout();
Expand Down
Expand Up @@ -28,7 +28,7 @@
<div class=".col-ms-3" wicket:id="fromField"/>
<label class=".col-ms-1"><wicket:message key="PageAuditLogViewer.toLabel" /></label>
<div class=".col-ms-3" wicket:id="toField" />
<label><wicket:message key="PageAuditLogViewer.targetNameLabel" /></label>
<label wicket:id="targetNameLabel"></label>
<div class="col-ms-3" wicket:id="targetNameField" />
<label><wicket:message key="PageAuditLogViewer.targetOwnerNameLabel" /></label>
<div class="col-ms-3" wicket:id="targetOwnerNameField" />
Expand Down
Expand Up @@ -12,12 +12,12 @@
import com.evolveum.midpoint.web.component.AjaxSubmitButton;
import com.evolveum.midpoint.web.component.data.BoxedTablePanel;
import com.evolveum.midpoint.web.component.data.column.LinkColumn;
import com.evolveum.midpoint.web.component.form.ValueChoosePanel;
import com.evolveum.midpoint.web.component.form.ValueChooseWrapperPanel;
import com.evolveum.midpoint.web.component.input.DatePanel;
import com.evolveum.midpoint.web.component.input.DropDownChoicePanel;
import com.evolveum.midpoint.web.component.input.QNameChoiceRenderer;
import com.evolveum.midpoint.web.component.input.TextPanel;
import com.evolveum.midpoint.web.component.util.VisibleEnableBehaviour;
import com.evolveum.midpoint.web.page.admin.configuration.component.EmptyOnBlurAjaxFormUpdatingBehaviour;
import com.evolveum.midpoint.web.page.admin.configuration.component.EmptyOnChangeAjaxFormUpdatingBehavior;
import com.evolveum.midpoint.web.page.admin.reports.PageAuditLogDetails;
Expand All @@ -32,6 +32,7 @@
import com.evolveum.midpoint.xml.ns._public.common.common_3.ObjectType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.OperationResultStatusType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.UserType;
import org.apache.commons.lang3.StringUtils;
import org.apache.wicket.AttributeModifier;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.extensions.markup.html.repeater.data.grid.ICellPopulator;
Expand Down Expand Up @@ -66,12 +67,10 @@ public class AuditLogViewerPanel extends BasePanel{
private static final String ID_TO = "toField";
private static final String ID_INITIATOR_NAME = "initiatorNameField";
private static final String ID_TARGET_NAME = "targetNameField";
private static final String ID_TARGET_NAME_LABEL = "targetNameLabel";
private static final String ID_TARGET_OWNER_NAME = "targetOwnerNameField";
private static final String ID_CHANNEL = "channelField";
private static final String ID_HOST_IDENTIFIER = "hostIdentifierField";
// private static final String ID_TARGET_NAME = "targetNameField";
// private static final String ID_TARGET_OWNER_NAME =
// "targetOwnerNameField";
private static final String ID_EVENT_TYPE = "eventTypeField";
private static final String ID_EVENT_STAGE = "eventStageField";
private static final String ID_OUTCOME = "outcomeField";
Expand All @@ -85,14 +84,29 @@ public class AuditLogViewerPanel extends BasePanel{

private IModel<AuditSearchDto> auditSearchDto;
private PageBase pageBase;
private String targetObjectOid;

public AuditLogViewerPanel(String id, PageBase pageBase){
this(id, pageBase, null);
}

public AuditLogViewerPanel(String id, PageBase pageBase, String targetObjectOid){
super(id);
this.pageBase = pageBase;
auditSearchDto = new Model<AuditSearchDto>(new AuditSearchDto());
this.targetObjectOid = targetObjectOid;
initAuditSearchModel();
initLayout();
}

private void initAuditSearchModel(){
AuditSearchDto searchDto = new AuditSearchDto();
ObjectReferenceType ort = new ObjectReferenceType();
ort.setOid(targetObjectOid);
searchDto.setTargetName(ort);
auditSearchDto = new Model<AuditSearchDto>(searchDto);

}

private void initLayout() {
Form mainForm = new Form(ID_MAIN_FORM);
mainForm.setOutputMarkupId(true);
Expand Down Expand Up @@ -232,6 +246,14 @@ protected void replaceIfEmpty(ObjectType object) {
};
parametersPanel.add(chooseTargerOwnerPanel);

Label targetNameLabel = new Label(ID_TARGET_NAME_LABEL, pageBase.createStringResource("PageAuditLogViewer.targetNameLabel"));
targetNameLabel.add(new VisibleEnableBehaviour(){
@Override
public boolean isVisible(){
return StringUtils.isEmpty(targetObjectOid);
}
});
parametersPanel.add(targetNameLabel);
Collection<Class<? extends ObjectType>> allowedClassesAll = new ArrayList<>();
allowedClassesAll.addAll(ObjectTypes.getAllObjectTypes());
ValueChooseWrapperPanel<ObjectReferenceType, ObjectType> chooseTargetPanel = new ValueChooseWrapperPanel<ObjectReferenceType, ObjectType>(
Expand All @@ -245,6 +267,12 @@ protected void replaceIfEmpty(ObjectType object) {
getModel().setObject(ort);
}
};
chooseTargetPanel.add(new VisibleEnableBehaviour(){
@Override
public boolean isVisible(){
return StringUtils.isEmpty(targetObjectOid);
}
});
parametersPanel.add(chooseTargetPanel);

AjaxSubmitButton ajaxButton = new AjaxSubmitButton(ID_SEARCH_BUTTON,
Expand Down
Expand Up @@ -2040,6 +2040,7 @@ pageUser.assignment.active=Active
pageUser.assignment.name=Name
pageUser.assignments=Assignments
pageAdminFocus.request=Request a role
pageAdminFocus.objectHistory=History
pageUser.assignment.type=Type
pageUser.button.abort=Abort
pageUser.button.addAccount=Add account
Expand Down

0 comments on commit 38b3a89

Please sign in to comment.