diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/ComponentConstants.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/ComponentConstants.java index 57934e9df2f..25758465af6 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/ComponentConstants.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/ComponentConstants.java @@ -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); diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/objectdetails/FocusMainPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/objectdetails/FocusMainPanel.java index 53a915f0d0b..3a925b7dbb8 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/objectdetails/FocusMainPanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/objectdetails/FocusMainPanel.java @@ -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; @@ -211,6 +212,10 @@ protected WebMarkupContainer createRequestAssignmentTabPanel(String panelId, Pag return new RequestAssignmentTabPanel(panelId, getMainForm(), getObjectModel(), assignmentsModel, parentPage); } + protected WebMarkupContainer createObjectHistoryTabPanel(String panelId, PageAdminObjectDetails parentPage) { + return new ObjectHistoryTabPanel<>(panelId, getMainForm(), getObjectModel(), parentPage); + } + protected IModel> unwrapModel() { return new AbstractReadOnlyModel>() { @@ -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); + } + }); } } diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/objectdetails/ObjectHistoryTabPanel.html b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/objectdetails/ObjectHistoryTabPanel.html new file mode 100644 index 00000000000..baa84f4946b --- /dev/null +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/objectdetails/ObjectHistoryTabPanel.html @@ -0,0 +1,26 @@ + + + + + + +
+ + + + diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/objectdetails/ObjectHistoryTabPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/objectdetails/ObjectHistoryTabPanel.java new file mode 100644 index 00000000000..29dc667d1c6 --- /dev/null +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/objectdetails/ObjectHistoryTabPanel.java @@ -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 extends AbstractObjectTabPanel { + private static final String ID_MAIN_PANEL = "mainPanel"; + + public ObjectHistoryTabPanel(String id, Form mainForm, LoadableModel> focusWrapperModel, + PageBase page) { + super(id, mainForm, focusWrapperModel, page); + initLayout(focusWrapperModel, page); + } + + private void initLayout(LoadableModel> focusWrapperModel, PageBase page) { + AuditLogViewerPanel panel = new AuditLogViewerPanel(ID_MAIN_PANEL, page, focusWrapperModel.getObject().getOid()); + panel.setOutputMarkupId(true); + add(panel); + } + + + +} diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/reports/PageAuditLogViewer.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/reports/PageAuditLogViewer.java index 649caa51446..f49588242ed 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/reports/PageAuditLogViewer.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/reports/PageAuditLogViewer.java @@ -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(); diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/reports/component/AuditLogViewerPanel.html b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/reports/component/AuditLogViewerPanel.html index 2191d310096..3f077e32d5b 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/reports/component/AuditLogViewerPanel.html +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/reports/component/AuditLogViewerPanel.html @@ -28,7 +28,7 @@
- +
diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/reports/component/AuditLogViewerPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/reports/component/AuditLogViewerPanel.java index 86b690651fe..7b93a521693 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/reports/component/AuditLogViewerPanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/reports/component/AuditLogViewerPanel.java @@ -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; @@ -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; @@ -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"; @@ -85,14 +84,29 @@ public class AuditLogViewerPanel extends BasePanel{ private IModel 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(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(searchDto); + + } + private void initLayout() { Form mainForm = new Form(ID_MAIN_FORM); mainForm.setOutputMarkupId(true); @@ -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> allowedClassesAll = new ArrayList<>(); allowedClassesAll.addAll(ObjectTypes.getAllObjectTypes()); ValueChooseWrapperPanel chooseTargetPanel = new ValueChooseWrapperPanel( @@ -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, diff --git a/gui/admin-gui/src/main/resources/localization/Midpoint.properties b/gui/admin-gui/src/main/resources/localization/Midpoint.properties index e57bb85b28e..b4b468d8fb5 100644 --- a/gui/admin-gui/src/main/resources/localization/Midpoint.properties +++ b/gui/admin-gui/src/main/resources/localization/Midpoint.properties @@ -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