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 fb5de99bef6..29acee60ba2 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 @@ -93,4 +93,37 @@ public class ComponentConstants { public static final QName UI_CASE_TAB_OVERVIEW_APPROVAL = new QName(NS_COMPONENTS_PREFIX, "caseTabOverviewApproval"); public static final String UI_CASE_TAB_OVERVIEW_APPROVAL_URL = QNameUtil.qNameToUri(UI_CASE_TAB_OVERVIEW_APPROVAL); + public static final QName UI_TASK_TAB_BASIC = new QName(NS_COMPONENTS_PREFIX, "taskTabBasic"); + public static final String UI_TASK_TAB_BASIC_URL = QNameUtil.qNameToUri(UI_TASK_TAB_BASIC); + + public static final QName UI_TASK_TAB_SCHEDULE = new QName(NS_COMPONENTS_PREFIX, "taskTabSchedule"); + public static final String UI_TASK_TAB_SCHEDULE_URL = QNameUtil.qNameToUri(UI_TASK_TAB_SCHEDULE); + + public static final QName UI_TASK_TAB_WORK_MANAGEMENT = new QName(NS_COMPONENTS_PREFIX, "taskTabWorkManagement"); + public static final String UI_TASK_TAB_WORK_MANAGEMENT_URL = QNameUtil.qNameToUri(UI_TASK_TAB_WORK_MANAGEMENT); + + public static final QName UI_TASK_TAB_CLEANUP_POLICIES = new QName(NS_COMPONENTS_PREFIX, "taskTabCleanupPolicies"); + public static final String UI_TASK_TAB_CLEANUP_POLICIES_URL = QNameUtil.qNameToUri(UI_TASK_TAB_CLEANUP_POLICIES); + + public static final QName UI_TASK_TAB_SUBTASKS = new QName(NS_COMPONENTS_PREFIX, "taskTabSubtasks"); + public static final String UI_TASK_TAB_SUBTASKS_URL = QNameUtil.qNameToUri(UI_TASK_TAB_SUBTASKS); + + public static final QName UI_TASK_TAB_OPERATION_STATISTICS = new QName(NS_COMPONENTS_PREFIX, "taskTabOperationStatistics"); + public static final String UI_TASK_TAB_OPERATION_STATISTICS_URL = QNameUtil.qNameToUri(UI_TASK_TAB_OPERATION_STATISTICS); + + public static final QName UI_TASK_TAB_ENVIRONMENTAL_PERFORMANCE = new QName(NS_COMPONENTS_PREFIX, "taskTabEnvironmentalPerformance"); + public static final String UI_TASK_TAB_ENVIRONMENTAL_PERFORMANCE_URL = QNameUtil.qNameToUri(UI_TASK_TAB_ENVIRONMENTAL_PERFORMANCE); + + public static final QName UI_TASK_TAB_OPERATION = new QName(NS_COMPONENTS_PREFIX, "taskTabOperation"); + public static final String UI_TASK_TAB_OPERATION_URL = QNameUtil.qNameToUri(UI_TASK_TAB_OPERATION); + + public static final QName UI_TASK_TAB_INTERNAL_PERFORMANCE = new QName(NS_COMPONENTS_PREFIX, "taskTabInternalPerformance"); + public static final String UI_TASK_TAB_INTERNAL_PERFORMANCE_URL = QNameUtil.qNameToUri(UI_TASK_TAB_INTERNAL_PERFORMANCE); + + public static final QName UI_TASK_TAB_RESULT = new QName(NS_COMPONENTS_PREFIX, "taskTabResult"); + public static final String UI_TASK_TAB_RESULT_URL = QNameUtil.qNameToUri(UI_TASK_TAB_RESULT); + + public static final QName UI_TASK_TAB_ERRORS = new QName(NS_COMPONENTS_PREFIX, "taskTabErrors"); + public static final String UI_TASK_TAB_ERRORS_URL = QNameUtil.qNameToUri(UI_TASK_TAB_ERRORS); + } diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/server/TaskMainPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/server/TaskMainPanel.java index 9f9d328c427..36961d08fb2 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/server/TaskMainPanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/server/TaskMainPanel.java @@ -6,6 +6,7 @@ */ package com.evolveum.midpoint.web.page.admin.server; +import com.evolveum.midpoint.gui.api.ComponentConstants; import com.evolveum.midpoint.gui.api.component.tabs.PanelTab; import com.evolveum.midpoint.gui.api.model.LoadableModel; import com.evolveum.midpoint.gui.api.prism.ItemStatus; @@ -24,6 +25,7 @@ import com.evolveum.midpoint.util.logging.TraceManager; import com.evolveum.midpoint.web.component.AjaxSubmitButton; import com.evolveum.midpoint.web.component.objectdetails.AbstractObjectMainPanel; +import com.evolveum.midpoint.web.component.objectdetails.AssignmentHolderTypeMainPanel; import com.evolveum.midpoint.web.component.prism.ItemVisibility; import com.evolveum.midpoint.web.component.util.VisibleEnableBehaviour; import com.evolveum.midpoint.web.model.PrismContainerWrapperModel; @@ -41,7 +43,7 @@ import java.util.ArrayList; import java.util.List; -public class TaskMainPanel extends AbstractObjectMainPanel { +public class TaskMainPanel extends AssignmentHolderTypeMainPanel { private static final transient Trace LOGGER = TraceManager.getTrace(TaskMainPanel.class); @@ -70,13 +72,13 @@ protected List createTabs(PageAdminObjectDetails parentPage) { taskTabsVisibility.computeAll((PageTask) parentPage, getObjectWrapper()); ObjectTabVisibleBehavior basicTabVisibility = new ObjectTabVisibleBehavior - (Model.of(getObjectWrapper().getObject()), "", (PageTask) parentPage){ + (Model.of(getObjectWrapper().getObject()), ComponentConstants.UI_TASK_TAB_BASIC_URL, (PageTask) parentPage){ private static final long serialVersionUID = 1L; @Override public boolean isVisible(){ - return taskTabsVisibility.isBasicVisible(); + return super.isVisible() && taskTabsVisibility.isBasicVisible(); } }; tabs.add(new PanelTab(parentPage.createStringResource("pageTask.basic.title"), basicTabVisibility) { @@ -90,13 +92,13 @@ public WebMarkupContainer createPanel(String panelId) { }); ObjectTabVisibleBehavior scheduleTabVisibility = new ObjectTabVisibleBehavior - (Model.of(getObjectWrapper().getObject()), "", parentPage){ + (Model.of(getObjectWrapper().getObject()), ComponentConstants.UI_TASK_TAB_SCHEDULE_URL, parentPage){ private static final long serialVersionUID = 1L; @Override public boolean isVisible(){ - return taskTabsVisibility.isSchedulingVisible(); + return super.isVisible() && taskTabsVisibility.isSchedulingVisible(); } }; tabs.add(new PanelTab(parentPage.createStringResource("pageTask.schedule.title"), scheduleTabVisibility) { @@ -110,13 +112,13 @@ public WebMarkupContainer createPanel(String panelId) { }); ObjectTabVisibleBehavior workManagementTabVisibility = new ObjectTabVisibleBehavior - (Model.of(getObjectWrapper().getObject()), "", parentPage){ + (Model.of(getObjectWrapper().getObject()), ComponentConstants.UI_CASE_TAB_WORKITEMS_URL, parentPage){ private static final long serialVersionUID = 1L; @Override public boolean isVisible(){ - return taskTabsVisibility.isWorkManagementVisible(); + return super.isVisible() && taskTabsVisibility.isWorkManagementVisible(); } }; tabs.add(new PanelTab(parentPage.createStringResource("pageTask.workManagement.title"), workManagementTabVisibility) { @@ -130,13 +132,13 @@ public WebMarkupContainer createPanel(String panelId) { }); ObjectTabVisibleBehavior cleanupPoliciesTabVisibility = new ObjectTabVisibleBehavior - (Model.of(getObjectWrapper().getObject()), "", parentPage){ + (Model.of(getObjectWrapper().getObject()), ComponentConstants.UI_TASK_TAB_CLEANUP_POLICIES_URL, parentPage){ private static final long serialVersionUID = 1L; @Override public boolean isVisible(){ - return taskTabsVisibility.isCleanupPolicyVisible(); + return super.isVisible() && taskTabsVisibility.isCleanupPolicyVisible(); } }; tabs.add(new PanelTab(parentPage.createStringResource("pageTask.cleanupPolicies.title"), cleanupPoliciesTabVisibility) { @@ -150,13 +152,13 @@ public WebMarkupContainer createPanel(String panelId) { }); ObjectTabVisibleBehavior subtasksTabVisibility = new ObjectTabVisibleBehavior - (Model.of(getObjectWrapper().getObject()), "", parentPage){ + (Model.of(getObjectWrapper().getObject()), ComponentConstants.UI_TASK_TAB_SUBTASKS_URL, parentPage){ private static final long serialVersionUID = 1L; @Override public boolean isVisible(){ - return taskTabsVisibility.isSubtasksAndThreadsVisible(); + return super.isVisible() && taskTabsVisibility.isSubtasksAndThreadsVisible(); } }; tabs.add(new PanelTab(parentPage.createStringResource("pageTask.subtasks.title"), subtasksTabVisibility) { @@ -170,13 +172,13 @@ public WebMarkupContainer createPanel(String panelId) { }); ObjectTabVisibleBehavior operationStatsAndInternalPerfTabsVisibility = new ObjectTabVisibleBehavior - (Model.of(getObjectWrapper().getObject()), "", parentPage){ + (Model.of(getObjectWrapper().getObject()), ComponentConstants.UI_TASK_TAB_OPERATION_STATISTICS_URL, parentPage){ private static final long serialVersionUID = 1L; @Override public boolean isVisible(){ - return taskTabsVisibility.isInternalPerformanceVisible(); + return super.isVisible() && taskTabsVisibility.isInternalPerformanceVisible(); } }; tabs.add(new PanelTab(parentPage.createStringResource("pageTask.operationStats.title"), operationStatsAndInternalPerfTabsVisibility) { @@ -190,13 +192,13 @@ public WebMarkupContainer createPanel(String panelId) { }); ObjectTabVisibleBehavior envPerfTabVisibility = new ObjectTabVisibleBehavior - (Model.of(getObjectWrapper().getObject()), "", parentPage){ + (Model.of(getObjectWrapper().getObject()), ComponentConstants.UI_TASK_TAB_ENVIRONMENTAL_PERFORMANCE_URL, parentPage){ private static final long serialVersionUID = 1L; @Override public boolean isVisible(){ - return taskTabsVisibility.isEnvironmentalPerformanceVisible(); + return super.isVisible() && taskTabsVisibility.isEnvironmentalPerformanceVisible(); } }; tabs.add(new PanelTab(parentPage.createStringResource("pageTask.environmentalPerformance.title"), envPerfTabVisibility) { @@ -210,13 +212,13 @@ public WebMarkupContainer createPanel(String panelId) { }); ObjectTabVisibleBehavior operationTabVisibility = new ObjectTabVisibleBehavior - (Model.of(getObjectWrapper().getObject()), "", parentPage){ + (Model.of(getObjectWrapper().getObject()), ComponentConstants.UI_TASK_TAB_OPERATION_URL, parentPage){ private static final long serialVersionUID = 1L; @Override public boolean isVisible(){ - return taskTabsVisibility.isOperationVisible(); + return super.isVisible() && taskTabsVisibility.isOperationVisible(); } }; tabs.add(new PanelTab(parentPage.createStringResource("pageTaskEdit.operation"), operationTabVisibility) { @@ -228,7 +230,17 @@ public WebMarkupContainer createPanel(String panelId) { } }); - tabs.add(new PanelTab(parentPage.createStringResource("pageTask.internalPerformance.title"), operationStatsAndInternalPerfTabsVisibility) { + ObjectTabVisibleBehavior internalPerfTabsVisibility = new ObjectTabVisibleBehavior + (Model.of(getObjectWrapper().getObject()), ComponentConstants.UI_TASK_TAB_INTERNAL_PERFORMANCE_URL, parentPage){ + + private static final long serialVersionUID = 1L; + + @Override + public boolean isVisible(){ + return super.isVisible() && taskTabsVisibility.isInternalPerformanceVisible(); + } + }; + tabs.add(new PanelTab(parentPage.createStringResource("pageTask.internalPerformance.title"), internalPerfTabsVisibility) { private static final long serialVersionUID = 1L; @Override @@ -238,13 +250,13 @@ public WebMarkupContainer createPanel(String panelId) { }); ObjectTabVisibleBehavior resultTabVisibility = new ObjectTabVisibleBehavior - (Model.of(getObjectWrapper().getObject()), "", parentPage){ + (Model.of(getObjectWrapper().getObject()), ComponentConstants.UI_TASK_TAB_RESULT_URL, parentPage){ private static final long serialVersionUID = 1L; @Override public boolean isVisible(){ - return taskTabsVisibility.isResultVisible(); + return super.isVisible() && taskTabsVisibility.isResultVisible(); } }; tabs.add(new PanelTab(parentPage.createStringResource("pageTask.result.title"), resultTabVisibility) { @@ -258,13 +270,13 @@ public WebMarkupContainer createPanel(String panelId) { ObjectTabVisibleBehavior errorsTabVisibility = new ObjectTabVisibleBehavior - (Model.of(getObjectWrapper().getObject()), "", parentPage){ + (Model.of(getObjectWrapper().getObject()), ComponentConstants.UI_TASK_TAB_ERRORS_URL, parentPage){ private static final long serialVersionUID = 1L; @Override public boolean isVisible(){ - return taskTabsVisibility.isErrorsVisible(); + return super.isVisible() && taskTabsVisibility.isErrorsVisible(); } }; tabs.add(new PanelTab(parentPage.createStringResource("pageTask.errors.title"), errorsTabVisibility) { diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/server/TaskTabsVisibility.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/server/TaskTabsVisibility.java index dbcb2242ac4..aa55f9b6a81 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/server/TaskTabsVisibility.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/server/TaskTabsVisibility.java @@ -89,18 +89,11 @@ public boolean configuresWorkerThreads(TaskType task) { public boolean computeEnvironmentalPerformanceVisible(PageTask parentPage, PrismObjectWrapper taskWrapper) { final OperationStatsType operationStats = taskWrapper.getObject().asObjectable().getOperationStats(); environmentalPerformanceVisible = parentPage.isEditingFocus(); - //todo does it make sense to check operationStats? it may be null for partitioned task -// && isTaskItemReadable(taskWrapper, TaskType.F_OPERATION_STATS) -// && operationStats != null -// && !StatisticsUtil.isEmpty(operationStats.getEnvironmentalPerformanceInformation()); return environmentalPerformanceVisible; } public boolean computeInternalPerformanceVisible(PageTask parentPage, PrismObjectWrapper taskWrapper) { internalPerformanceVisible = parentPage.isEditingFocus(); - //todo doea it make sense to check operationStats? it may be null for partitioned task -// && isTaskItemReadable(taskWrapper, TaskType.F_OPERATION_STATS) -// && taskWrapper.getObject().asObjectable().getOperationStats() != null; return internalPerformanceVisible; }